<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-M74D8PB" height="0" width="0" style="display:none;visibility:hidden">
Loading
Skip to NavigationSkip to Main Content

Manage the GitHub Enterprise Roles Attribute at the Group Level in Okta

Okta Integration Network
Okta Classic Engine
Okta Identity Engine

Overview

GitHub Enterprise restricts the "Roles" attribute to individual users and prevents administrators from setting it for entire Okta groups. Using Okta Expression Language (OEL) to push the "Roles" attribute based on group membership resolves this limitation.

Applies To

  • Okta Identity Engine (OIE)
  • Okta Classic Engine
  • Okta Integration Network (OIN)
  • GitHub Enterprise Provisioning

Cause

The limitation occurs because GitHub Enterprise only allows the "Roles" attribute to be set for individual users, as described in the Configuring SCIM provisioning with Okta documentation.

Solution

How is the GitHub Enterprise Roles attribute managed at the group level?

Configure Okta groups for each separate role and use Okta Expression Language conditions to assign users based on their required role.

    1. Navigate to Directory > Profile Editor.
    2. Select the GitHub Enterprise User profile.
    3. Locate the Roles attribute and view the Attribute members to find the exact value for each role under the Value column.
    4. Use isMemberOfGroupName or isMemberOfGroup conditions in the attribute mapping to assign the roles.

 

NOTE: Group membership changes do not trigger mapping evaluation; the administrator will need to change another attribute so mappings are evaluated to trigger the downstream update.

 

What are examples of Okta Expression Language conditions for GitHub Enterprise roles?

Review the following Okta Expression Language examples to understand how to check for group membership and push the corresponding role downstream into GitHub Enterprise.

    • Check for all users assigned to the Billing Group and push the billing role downstream into GitHub Enterprise for the matching users.
      isMemberOfGroupName("Billing") ? "billing" : null
    • Achieve the same functionality using the Okta group ID instead of the group name.
      isMemberOfGroup("<group_id>") ? "billing" : null
    • Build complex expressions to account for all GitHub Enterprise roles based on the conditioning rules.
      isMemberOfGroupName("<group_1>") ? "user" : isMemberOfGroupName("<group_2>") ? "owner" : isMemberOfGroupName("<group_3>") ? "manager" : isMemberOfGroupName("<group_4>") ? "collaborator" : null
Loading
Okta Support - Manage the GitHub Enterprise Roles Attribute at the Group Level in Okta