Okta Group Nomenclature
Overview
Okta Groups are a fundamental component of access management. Standardized naming conventions allow us to discover, track, manage, and automate group operations efficiently. Clear naming makes it easier to audit access, understand a groups purpose, and correctly route provisioning requests.
Types of Okta Groups at GitLab
GitLab Okta groups fall into six categories:
- App Groups — Assigned to applications via the Okta Assignments tab for SSO, SCIM provisioning, group claims, and license assignment
- Push Groups — Synced to downstream applications via SCIM to manage group membership, permissions, roles, entitlements, or features in the target system
- Attribute Groups — Represent shared user characteristics (department, location, division, cost center)
- Policy Groups — Control Okta platform policies (MFA, session management, access reviews, authentication)
- Admin Groups - Used for assigning Okta users to admin roles and resource sets
- Other Groups — Group names that are may be dictated by the needs of external systems that don’t fit the above categories
Naming Conventions
Do:
- Use periods (.) as separators between logical components
- Use underscores (_) to replace spaces within component names
- Use lowercase for all group names
- Type out full words unless they are a very common term at GitLab (ex: people_ops instead of people_operations, or google_cloud instead of google_cloud_platform)
Avoid:
- Hyphens (-)
- UPPERCASE or camelCase
- Spaces
- Word contractions or acronyms unless they are widely recognized at GitLab or required due to system limitations (ex: Okta Group Rule names have a 55 character limit)
Group Types and Naming Conventions
App Groups
Syntax:
app.{system}.{environment_if_necessary}.{role_or_permission}
App Groups are assigned to applications in the Okta Assignments tab. They are used to manage access to external systems and applications through one or more of the following mechanisms:
- Assigning users to an app for SSO access
- Using SCIM user provisioning via app assignment (users get created/updated/deleted in the downstream app)
- Passing group claims (SAML/OIDC) to determine access, role, or permission at sign-in
- Assigning licenses through the app’s Assignments tab (ex: Figma, Lucidchart)
- Assigning Google OU, role, or license
Examples:
app.salesforce.users— Salesforce usersapp.greenhouse_recruiting.users— Greenhouse recruiting users
Push Groups
Syntax:
push.{system}.{environment_if_necessary}.{role_or_permission}
Push Groups are configured in the Okta Push Groups tab and are synced to downstream applications via SCIM provisioning. Push Groups manage group membership in the target system, where the application independently determines what that membership grants. Push Groups should be app-specific and never reused across multiple applications to avoid group dependencies and ensure isolation.
Push Groups are used to:
- Create/manage a Google Group in Google Workspace
- Grant permissions or roles to a downstream group (ex: Google Groups for access delegation)
- Push to app group membership (ex: Slack user groups for channel management)
- Grant feature flags or entitlements that the downstream app manages (ex: Tableau viewer license, Anthropic Console roles)
- Manage downstream group structures, hierarchies, or access control lists
Important: Never use the same group for both assignment and push operations. Okta requires separate groups to maintain consistent group membership between Okta and the downstream app.
Examples:
push.google.gemini_users— Creates a Group in Google Workspace, for providing access to the Gemini Apppush.google.systems_operations_friends@gitlab.com- Creates a Group in Google Workspace, for granting membership to the systems_operations_friends@gitlab.com email grouppush.slack.security_team— Slack user group for the security teampush.tableau.viewer_license— Tableau users with viewer license entitlementpush.figma.product_team— Figma group for product team file accesss
IGA Administration Groups
IGA Administration Groups are used for defining who should approve and provision specific applications.
Syntax:
corpsys.{function}.{system}
Examples:
corpsys.approver.salesforce— Approver group for requests to get access to Salesforcecorpsys.provisioner.tableau— Group of users who will provision access to Tableau once a request is approvedcorpsys.approver.claude.dev— Approver group for requests to join the Claude Dev environment
Attribute Groups
Syntax:
{attribute_name}.{attribute_value}
Attribute Groups are typically reference groups that represent shared attributes or characteristics of users. These groups are often used within Okta to make access decisions based on department, division, location, or other organizational attributes. They serve as a source of truth for specific user populations. No members should ever be manually assigned to these groups.
Examples:
dept.information_technology— All members of the Information Technology departmentcountry.ca— All team members in Canadadiv.engineering— All members of the Engineering division
Policy Groups
Syntax:
policy.{description}
Policy Groups are used to manage Okta platform policies, including Global Session Policies, MFA policies, and access policies. These groups determine how and when users can authenticate and access systems.
Examples:
policy.employee— Okta session policies, authentication policies, and MFA policies that apply to GitLab employeespolicy.privileged— For privileged, or Admin/Black accountspolicy.professional_services- Okta session policies, authentication policies, and MFA policies for Professional Services Partners team members
Admin Groups
Syntax:
admin.{role_name}
Examples:
admin.read-only_administrator- Grants the Read-only administrator role in Oktaadmin.organization_administrator- Grants the Organization administrator role in Oktaadmin.report_administrator- Grants the Reports administrator role in Okta
Other Groups
Use “Other Groups” only when an application or external system dictates a specific group name that cannot be aligned with the conventions above. These groups should be the exception, not the rule.
Before creating an Other Group, confirm that it does not fit into the App Groups, Attribute Groups, or Policy Groups categories. When an Other Group is necessary, document the reason it cannot conform to standard naming conventions in the associated issue. Note: Okta Push Groups can often be renamed in the downstream application so that we can maintain our naming conventions, while also providing the app with the group name they need.
Examples:
LookerAdmin— SaaS app “Looker” requires specific group names in OktaSaaSApp-BreakGlass-10dg91— Emergency access group required by incident response procedures
Edge Cases and Special Scenarios
Abbreviated Group Names
Group Names may be abbreviated using acronyms if a shorter form is widely understood within the organization. For example, you can use “app.aws.users” for all users in Amazon Web Services, where “AWS” is often more recognizable than the full name. Add more information in the group description, to ensure consistency across the organization and help new team members understand the naming conventions.
Vendor-Dictated Requirements
Some applications require specific group naming formats that conflict with these conventions. In such cases, create the group with the vendor-required name in the “Other Groups” category, and document the business justification in the group description field in Okta. Note that this should be very rare and often there are ways that we can abide by our naming conventions, while catering to the needs of the downstream app.
378d040d)
