TrademarkTrademark
Ctrl k
Search docs...
Basics

Using Go IAM

Last update: November 14, 2025
Go IAM is designed with multi-tenancy at its core, using Projects to provide complete isolation between different applications and environments. This guide will walk you through the essential steps to get started with Go IAM. To use Go IAM effectively, you need to set up:
  • Project - Your isolated workspace
  • Client - Frontend or Backend application configuration
  • Auth Provider - External authentication integration
Everything in Go IAM operates within the context of a Project, ensuring complete data isolation and security
Projects are the foundation of Go IAM's multi-tenant architecture. Each project provides an isolated environment for your applications, users, roles, and resources. When Go IAM is first set up, a Default Project is automatically created. This project is intended for:
  • Administrative purposes - Managing Go IAM itself
  • System configuration - Initial setup and testing
💡 Best Practice: Create a separate project for each of your applications rather than using the Default Project for production workloads.
You can access projects through:
  • Navbar - Quick project switcher in the top navigation
  • Settings Menu - Full project management under Projects
  • Navigate to Projects
    • Go to SettingsProjects
    • Or use the navbar project selector
List projects Page
List Projects Page
  • Add New Project
    • Click the Add button in the top-right corner
    • Fill in the project details:
      • Name: Descriptive project name
      • Tags: Categorization labels
      • Description: Project purpose and details
  • Save Project
    • Click Save Changes button
    • Your new project is now ready to use
Create project Page
Create Project Widget
Text
Name: "My Production App"
Tags: "production,web-app"
Description: "Production environment for our main web application"
The Project Scope determines which project you're currently working with. All operations are scoped to the selected project.
📍 Location: Top-left corner of the navbar
  • Current Scope: Displays the currently selected project name
  • Project Dropdown: Click to see all available projects
  • Select Project: Choose the project you want to work with
Project Switcher in Navbar
Project Switcher in Navbar
When you select a project, the following are automatically scoped to that project:
Component
Description
UsersUser accounts and profiles
RolesPermission groups and access levels
ResourcesProtected items and endpoints
ClientsApplication configurations
Auth ProvidersExternal authentication settings
⚠️ Important: Always verify you're in the correct project scope before making changes.
Projects can be modified after creation (except for the Default Project).
  • Navigate to Projects
    • Go to SettingsProjects
  • Select Project to Edit
    • Find the project in the list
    • Click the Edit button on the right side
    • Note: Default Project cannot be edited
  • Modify Details
    • Update Name, Tags, or Description
    • Review your changes
  • Save Changes
    • Click Save Changes to apply updates
Update project Page
Update Project Widget
Field
Editable
Notes
Name✅ YesDisplay name for the project
Tags✅ YesCategorization labels
Description✅ YesProject details and purpose
Default Project❌ NoSystem project cannot be modified
  • One Project Per Environment - Separate dev, staging, production
  • Descriptive Naming - Clear project names and descriptions
  • Consistent Tagging - Use tags for categorization and filtering
This multi-tenant architecture ensures that your applications remain completely isolated while providing the flexibility to manage multiple environments and applications from a single Go IAM instance. After setting up your project, the next step is to configure a Client for your application. Go IAM supports both:
  • Frontend Applications - Single Page Apps, Mobile Apps
  • Backend Services - APIs, Microservices, Server Applications
👉 Continue to: Client Configuration Guide for setting up a client
Once you have clients configured, you can manage them through the admin interface.
  • Navigate to Clients
    • Go to SettingsClients
    • View all clients in the current project scope
Client List Page
Client List Page
  • Update Client Configuration
    • Click the Edit button next to any client
    • Modify client settings as needed
    • Save your changes
Client Update with Auth Provider Widget
Client Update with Auth Provider Widget
Client Update with Service Account Widget
Client Update with Service Account Widget
Common client management tasks include:
  • Updating credentials - Rotate client secrets
  • Configuring redirects - Update callback URLs
  • Managing Auth providers - Change the auth provider linked to the client (only applicable for non service account based clients)
If you have already setup an auth provider you can skip this. Currently the platform supports Google/Microsoft/GitHub any OpenID Connect Provider. Note that auth provider created under one project is not available to other projects. You can find Auth Providers page in Settings Menu.
  • Navigate to Auth Providers
    • Go to SettingsAuth Providers
  • Click on Add Button
List Auth Providers Page
List Auth Providers Page
  • Fill in the Auth Provider Details
    • Name: Descriptive name for the auth provider
    • Type: Select the type of auth provider (Google, Microsoft, GitHub, OIDC)
    • Client ID and Client Secret: Obtain these from the respective auth provider's developer console
  • Save Auth Provider
    • Click Save Changes button
Create Auth Provider Widget
Create Auth Provider Widget
To update an existing auth provider, follow these steps:
  • Navigate to Auth Providers
    • Go to SettingsAuth Providers
  • Select Auth Provider to Edit
    • Find the auth provider in the list
    • Click the Edit button on the right side
  • Modify Details
    • Update Name, Client ID, or Client Secret or Callback URL
  • Save Changes
    • Click Save Changes to apply updates
Update Auth Provider Widget
Update Auth Provider Widget
Once the setup is done, you can start using Go IAM by creating resources, roles, and users within your project. Refer to the following guides for detailed instructions on each component:
  • Resources - Anything that needs access control should be defined as a resource
  • Roles - Define permissions and assign them to users
  • Users - Manage user accounts, their access rights, policies
API documentation is also available for programmatic access to all Go IAM features. Also SDKs for various programming languages are provided to simplify integration. Resources represent any entity that requires access control within your application. This could be APIs, services, or specific data objects. We will see how to confgure this through the dashboard.
  • Navigate to Resources
    • Go to Resources in the sidebar under User Management
List Resources Page
List Resources Page
  • Click on Add Button
  • Fill in the Resource Details
    • Name: Descriptive name for the resource
    • Key: Unique identifier for the resource. Should not be changed after creation
    • Description: Brief description of the resource
  • Save Resource
    • Click Save Changes button
Create Resource Widget
Create Resource Widget
To update an existing resource, follow these steps:
  • Navigate to Resources
    • Go to Resources in the sidebar under User Management
  • Select Resource to Edit
    • Find the resource in the list
    • Click the Edit button on the right side
  • Modify Details
    • Update Name or Description
  • Save Changes
    • Click Save Changes to apply updates
Update Resource Widget
Update Resource Widget
To disable a resource, follow these steps:
  • Navigate to Resources
    • Go to Resources in the sidebar under User Management
  • Select Resource to Disable
    • Find the resource in the list
    • Click the Disable button on the right side
  • Confirm Disable
    • A confirmation dialog will appear
    • Click Disable Resource to permanently disable the resource
Disable Resource Confirmation Widget
Disable Resource Confirmation Widget
Roles define a set of permissions that can be assigned to users. They help manage access control efficiently by grouping permissions together.
  • Navigate to Roles
    • Go to Roles in the sidebar under User Management
List Roles Page
List Roles Page
  • Click on Add Button
  • Fill in the Role Details
    • Name: Descriptive name for the role
    • Description: Brief description of the role
Create Role Widget
Create Role Widget
  • Assign Resources
    • Select resources and define permissions for each
  • Save Role
    • Click Save Changes button
Assign Resources to Role Widget
Assign Resources to Role Widget
To update an existing role, follow these steps:
  • Navigate to Roles
    • Go to Roles in the sidebar under User Management
  • Select Role to Edit
    • Find the role in the list
    • Click the Edit button on the right side
  • Modify Details
    • Update Name, Description, or resource permissions
  • Save Changes
    • Click Save Changes to apply updates
Update Role Widget
Update Role Widget
To disable a role, follow these steps:
  • Navigate to Roles
    • Go to Roles in the sidebar under User Management
  • Select Role to Disable
    • Find the role in the list
    • Click the Disable button on the right side
  • Confirm Disable
    • A confirmation dialog will appear
    • Click Disable Role to permanently disable the role
Disable Role Confirmation Widget
Disable Role Confirmation Widget
Users are the individuals who will access your application. They can be assigned roles to define their permissions. When someone sign-up, their user is automatically created. Linked users will be automatically created when a client with service account is created. The email of the user will be specified in the client creation form.
  • Navigate to Users
    • Go to Users in the sidebar under User Management
List Users Page
List Users Page
  • Click on Add Button
  • Fill in the User Details
    • Email: User's email address
    • Name: User's full name
    • Phone: User's phone number (optional)
  • Save User
    • Click Save Changes button
Create User Widget
Create User Widget
To update an existing user, follow these steps:
  • Navigate to Users
    • Go to Users in the sidebar under User Management
  • Select User to Edit
    • Find the user in the list
    • Click the Edit button on the right side
  • Modify Details
    • Update Name, Phone, Email
  • Save Changes
    • Click Save Changes to apply updates
Update User Widget
Update User Widget
To disable a user, follow these steps:
  • Navigate to Users
    • Go to Users in the sidebar under User Management
  • Select User to Disable
    • Find the user in the list
    • Click the Disable button on the right side
  • Confirm Disable
    • A confirmation dialog will appear
    • Click Disable User to permanently disable the user
Disable User Confirmation Widget
Disable User Confirmation Widget
To update the roles assigned to a user, follow these steps:
  • Navigate to Users
    • Go to Users in the sidebar under User Management
  • Select User to Update Roles
    • Find the user in the list
    • Click the Edit Roles button on the right side
  • Modify Roles
    • Select or deselect roles to assign or remove them from the user
  • Save Changes
    • Click Save Changes to apply updates
Update User Roles Widget
Update User Roles Widget
Unline roles, resources the user get access via policies doesn't get removed if you remove a policy from a user. To update the policies assigned to a user, follow these steps:
  • Navigate to Users
    • Go to Users in the sidebar under User Management
  • Select User to Update Policies
    • Find the user in the list
    • Click the Edit Policies button on the right side
  • Modify Policies
    • Select the policies to assign to the user. Based on the policy you might have to select other user/roles to which the policy should be associated with the user
  • Save Changes
    • Click Save Changes to apply updates
Update User Policies Widget
Update User Policies Widget
To transfer ownership of a user to another user, follow these steps:
  • Navigate to Users
    • Go to Users in the sidebar under User Management
  • Select User to Transfer Ownership
    • Find the user in the list
    • Click the Transfer Ownership button on the right side
  • Select New Owner
    • Choose the user who will become the new owner
  • Confirm Transfer
    • Click Save Changes to complete the process
Transfer Ownership Confirmation Widget
Transfer Ownership Confirmation Widget
To copy resources from one user to another, follow these steps:
  • Navigate to Users
    • Go to Users in the sidebar under User Management
  • Select User to Copy Resources
    • Find the user in the list
    • Click the Copy Resources button on the right side
  • Select Target User
    • Choose the user who will receive the copied resources
  • Confirm Copy
    • Click Save Changes to complete the process
Copy User Resources Confirmation Widget
Copy User Resources Confirmation Widget
On this page
Docs
Blog
Community
GitHub
© 2025 Go IAM. Open source under Apache 2.0 License.