Creating a GitHub EMU connection
Use a GitHub Enterprise Managed Users (EMU) connection to enable provisioning from PingOne to the GitHub EMU user directory.
Before you begin
Make sure that you have:
-
A GitHub EMU tenant
-
The Base URL for the GitHub EMU tenant, such as
https://api.github.com/scim/v2/enterprises/<enterprise_slug>
. Learn more in Creating an enterprise account in the GitHub documentation. -
The access token for the GitHub EMU tenant. Learn more in Getting a GitHub EMU access token.
Steps
-
In the PingOne admin console, go to Integrations > Provisioning.
-
Click and then click New Connection.
-
On the Identity Store line, click Select.
-
On the GitHub EMU tile, click Select. Click Next.
-
Enter a name and description for the provisioning connection.
Result:
The connection name appears in the provisioning list after you save the connection.
-
Click Next.
-
In the Configure Authentication section, enter the values for the following fields:
Field Value Base URL
The fully qualified URL to use for the connected application, such as
https://api.github.com/scim/v2/enterprises/<enterprise_slug>
. Learn more in Creating an enterprise account in the GitHub documentation.Access Token
The access token from GitHub EMU for the connected application. Learn more in Getting a GitHub EMU access token.
-
Click Test Connection to verify that PingOne can establish a connection to GitHub EMU.
Result:
If there are any issues with the connection, a Test Connection Failed modal opens. Click Next to resume the setup with an invalid connection.
You can’t use the connection for provisioning until you’ve established a valid connection to GitHub EMU. To retry, click Cancel in the Test Connection Failed modal and repeat step 7.
Troubleshooting:
Learn more about troubleshooting your connection in Troubleshooting Test Connections Failure.
-
In the Configure preferences and Actions sections, enter the following:
Field Description Group Membership Handling
Determines whether to update or replace target groups with PingOne memberships. Select Merge or Overwrite.
Merging or overwriting memberships only applies to SCIM, Slack, and GitHub EMU provisioning connections.
Allow Users to be Created
Determines whether to create a user in the GitHub EMU user directory when the user is created in the PingOne identity store.
Allow Users to be Updated
Determines whether to update user attributes in the GitHub EMU user directory when the user is updated in the PingOne identity store.
Allow Users to be Disabled
When a user is disabled in the PingOne identity store, PingOne disables the user in the GitHub EMU user directory.
Users who are disabled in PingOne are marked as suspended in the GitHub EMU identity store.
Allow Users to be Deprovisioned
Determines whether to deprovision a user in the GitHub EMU user directory when the user is deprovisioned in the PingOne identity store.
Remove Action
Determines the action to take when removing a user from the GitHub EMU user directory.
Disable: When a user is deprovisioned from the PingOne identity store, PingOne disables the user in the external identity store.
Delete: When a user is deprovisioned from the PingOne identity store, PingOne removes the user in the external identity store.
Deprovision on Rule Deletion
Determines whether to deprovision users that were provisioned using this rule if the rule is deleted.
-
Click Save.
-
To enable the connection, click the toggle at the top of the details panel to the right (blue).
You can disable the connection by clicking the toggle to the left (gray).
Result
The GitHub EMU provisioning connection is complete and added to the list of provisioning connections on the Provisioning page.
Next steps
Sync group members out of PingOne into a software as a service (SaaS) application. Learn more in Configuring outbound group provisioning.
GitHub EMU provisioning features
The GitHub EMU provisioner offers the following features.
-
Provision users from the PingOne identity store to GitHub EMU:
-
Create users
-
Update users
-
Deprovision users
-
-
Customize provisioning options:
-
Deprovision users with a disable or delete action
-
-
Outbound group provisioning
Getting a GitHub EMU access token
Go to the GitHub EMU admin console and get an access token. Ensure that you have administrator privileges for the GitHub EMU admin console.
Steps
-
Go to the GitHub EMU admin console at
https://api.github.com/scim/v2/enterprises/<enterprise_slug>
, where <enterprise_slug> is your tenant name. -
In the upper right, click your profile photo and then click Settings.
-
On the left, click Developer settings.
-
On the left, click Personal access tokens.
-
Click Generate new token. Select the
admin:enterprise
scope for the token. Click Generate token. Copy the token to a secure location. You’ll enter this value in PingOne when you create the GitHub EMU provisioning connection.
GitHub EMU attribute mapping
The following table lists common GitHub EMU attributes that can be mapped for user provisioning.
Attribute | Description | ||
---|---|---|---|
Username (required) |
The user’s GitHub EMU username. According to GitHub, a username, including underscore and short code, must not exceed 39 characters. For more information, see About usernames for managed user accounts in the GitHub documentation. |
||
Email (required) |
The user’s email address. |
||
External ID (required) |
Associates a user ID with a user account in the GitHub EMU user directory. |
||
First Name |
The user’s first name. |
||
Last Name |
The user’s last name. |
||
Active |
The status of the user account in the GitHub EMU user directory. |
||
Formatted Name |
The user’s full name, including all middle names, titles and suffixes, formatted for display. |
||
Display Name |
A human-readable name for a user. |
||
Roles |
A list of the user’s roles. For example, you could map the For more information about role values, see Provision a SCIM enterprise user in the GitHub documentation.
|
GitHub EMU provisioning known limitations
The following are known issues or limitations with GitHub EMU user provisioning.
-
GitHub does not support provisioning a user with an initial disabled state.
-
GitHub might enforce rate limiting for large numbers of users, such as more than 7000 users being provisioned at one time. For more information, see Rate limiting in the GitHub documentation.
-
If a group exists in Github with the same group name from provisioning, then syncing fails.