Integrate with GitHub Enterprise Cloud – Organization

Use JumpCloud SAML Single Sign On (SSO) to give your users convenient but secure access to all their web applications with a single set of credentials. Automatically provision, update and deprovision users in GitHub Enterprise Cloud - Organization from JumpCloud using the Identity Management (SCIM) integration. Leverage this integration to allow users to login with with one set of credentials and to centralize user lifecycle and user identity in JumpCloud for GitHub Enterprise Cloud - Organization. Save time and cost related to user account and password management. Avoid mistakes, as well as potential security risks, related to manually creating users.

Read this article to learn how to setup the GitHub Enterprise Cloud - Organization integration.

Prerequisites

  • A JumpCloud administrator account
  • JumpCloud SSO Package or higher or SSO à la carte option
  • A team admin (administrator) account on a GitHub Enterprise - Organization with personal accounts plan
    • Enterprise with managed users is NOT supported
    • You can switch your SAML configuration from an organization to an enterprise account
  • Your GitHub Enterprise Domain and ORG Name
  • Owner account access to the GitHub Organization you're integrating with SCIM

Important Considerations

  • SAML SSO must be configured and enabled at the Organization level, not the enterprise level, to use SCIM
  • To prevent account lockout, the owner account of your GitHub Organization must have an associated JumpCloud user account and that user account must be bound to your JumpCloud GitHub SSO application
  • Changes to user attributes made by JumpCloud are only reflected in the user's SCIM metadata; they aren't reflected in GitHub's UI
  • If you delete an integrated GitHub application from your Applications list, the application is removed from JumpCloud, but any previously bound users remain active in GitHub. These users will be able log in to GitHub with the password they used prior to enablement of SSO to the GitHub application from your JumpCloud account
  • If you deactivate the Identity Management on your GitHub application, previously bound users remain active in GitHub and able to authenticate using SSO. No further updates will be made to user accounts via the Identity Management integration
  • If you need to update your token, you must deactivate the IdM integration, update the token, and then reactivate the IdM integration
  • When users are provisioned, they aren’t automatically added to the Organization; an invitation is sent to users’ email addresses
  • When a user is deprovisioned using SCIM, they’re removed from the Organization and their external identity and associated :scim_user_id are deleted
  • GitHub doesn’t support password synchronization
  • Groups are not supported

Attribute Considerations

  • A default set of attributes are managed for users. See the Attribute Mappings section for more details

Creating a new JumpCloud Application Integration

  1. Log in to the JumpCloud Admin Portal.
  2. Go to USER AUTHENTICATION SSO Applications.
  3. Click + Add New Application.
  4. Type the name of the application in the Search field and select it.
  5. Click Next.
  6. Optionally, customize the display label, description and how the application displays:
    • Description - add a description that users will see in their user portal
    • User Portal Image - choose Logo or Color Indicator
    • Show in User Portal - enable this option for this to be visible in the user portal
  7. Optionally, customize the IdP URL:
    • Expand Advanced Settings and enter the name you want to use for the end of the SSO IdP URLhttps://sso.jumpcloud.com/saml2/{custom_value}

Warning:

The SSO IdP URL is not editable after the application is created. You will have to delete and recreate the connector if you need to edit this field at a later time.

  1. Click Save Application.
  2. If successful, click:
    • Configure Application and go to the next section
    • Close to configure your new application at a later time

Configuring the SSO Integration

To configure JumpCloud

  1. Create a new application or select it from the Configured Applications list.
  2. Select the SSO tab.
  3. Replace any instances of YOURDOMAIN or YOUR_GITHUB_ORG_NAME with your GitHub values.
  4. Add any additional attributes.
  5. Click save.

Download the certificate

  1. Find your application in the Configured Applications list and click anywhere in the row to reopen its configuration window.
  2. Click Actions > Download Certificate.

Tip:

The certificate.pem will download to your local Downloads folder.

To configure GitHub

  1. Login to GitHub Enterprise Cloud - Organization as the administrator of the GitHub Organization.
  2. On the next screen, select Edit [GitHub Organization Name] settings.
  3. Navigate to SecuritySAML single sign-on and enter the following information:
    • Select Enable SAML authentication
    • Sign on URL - copy and paste the JumpCloud IDP URL
    • Issuer - copy and paste the JumpCloud IdP Entity ID
    • Public Certificate - copy and paste the contents of the certificate you downloaded in the previous section
  4. Click Save.

Authorizing User SSO Access

Users are implicitly denied access to applications. After you connect an application to JumpCloud, you need to authorize user access to that application. You can authorize user access from the Applications, Users List or User Groups page. 

To authorize user access from the Application’s page

  1. Log in to the JumpCloud Admin Portal.
  2. Go to USER AUTHENTICATION > SSO Applications, then select the application to which you want to authorize user access.
  3. Select the User Groups tab. If you need to create a new group of users, see Get Started: User Groups.
  4. Select the check box next to the desired group of users to which you want to give access.
  5. Click Save

To learn how to authorize user access from the Users or User Groups pages, see Authorize Users to an SSO Application.

Validating SSO user authentication workflow(s)

IdP-initiated user workflow

  • Access the JumpCloud User Console
  • Go to Applications and click an application tile to launch it
  • JumpCloud asserts the user's identity to the SP and is authenticated without the user having to log in to the application

SP-initiated user workflow

  • Go to the SP application login - generally, there is either a special link or an adaptive username field that detects the user is authenticated through SSO

Note:

This varies by SP.

  • Login redirects the user to JumpCloud where the user enters their JumpCloud credentials
  • After the user is logged in successfully, they are redirected back to the SP and automatically logged in

Using JIT Provisioning

Additional attributes are required to use JIT provisioning. JIT required attributes are prepopulated and are on by default to enable JIT provisioning. You can’t edit the JIT required service provider attributes. You can customize the JumpCloud attribute name and the constant value for JIT required attributes. Toggle off the attributes to opt out of sending the attributes in the SAML assertion.

To complete the provisioning process

  1. Authorize a user’s access to the application in JumpCloud.  
  2. Have the user log in to the application using SSO. The SAML assertion passes from JumpCloud to the service provider, and gives the service provider the information it needs to create the user account.

Configuring the Identity Management Integration

To configure GitHub Enterprise Cloud

  1. Login to GitHub Enterprise Cloud - Organization as the administrator of the GitHub Organization.
  2. On the next screen, select Edit [GitHub Organization Name] settings.
  3. Navigate to Organizations > Applications.
    • Select Authorized OAuth Apps.
    • Under Organization access, click Grant.
    • A green checkmark shows to the right of JumpCloud under Organization access.

To configure JumpCloud

Important:

For the integration to succeed, you need to have an open and active GitHub session in another browser tab. Otherwise the integration will fail at step 6.

  1. Log in to the JumpCloud Admin Portal.
  2. Go to USER AUTHENTICATION > SSO Applications.
  3. Search for GitHub Enterprise Cloud and select it.
  4. Select the Identity Management tab.
  5. Click Configure.
  6. You're prompted to authorize JumpCloud to your GitHub Organization. First, click Grant to give access to your GitHub Organization, then click Authorize JumpCloud
  7. You're redirected to JumpCloud and receive a confirmation of a successful integration. 

Attribute Mappings

The Export Attributes Mapping table lists the Required and Optional Mappings that JumpCloud sends to the Service Provider. See Attribute Considerations for more information regarding attribute mapping considerations. 

Learn about JumpCloud Properties and how they work with system users in our API

Modifying User Attributes

Important:

It's highly recommended you use all optional mappings. This creates a more complete user profile, enabling better automation and more accurate access management within the application.

To add user attributes

  1. From your connector’s configuration page, select the Identity Management tab.
  2. Expand the Export Attribute Mapping section and click Edit. The Optional Mappings table will open.
  3. Scroll to the bottom of the table and click +Add Attribute.
  4. Select one of the mapping types:
    • Direct Mapping (JSON Path) - send the value from a user attribute in JumpCloud directly to an attribute in the service provider
      • From the JumpCloud Attribute dropdown, select the desired attribute
        • If you choose “Custom User Attribute” you must type the name of the attribute exactly as it on the user details page. To see the dropdown again, you must delete the attribute and add a new attribute
      • From the SCIM Attribute dropdown, select the corresponding (destination) attribute
    • Expression - transform or combine multiple user attributes into a single, custom value before sending it to the service provider
      • Enter the expression in the JumpCloud Attribute field
      • From the SCIM Attribute dropdown, select the corresponding (destination) attribute
    • Constant - send a fixed, predefined value—like a specific company name —for every user to the service provider
      • This is a free text field with no validation, e.g., the attribute must match exactly, including case, to the corresponding attribute in the user record. Once the custom attribute is added, you must delete it and readd a new custom attribute to see the dropdown again.
  5. Repeat these steps for additional attributes.
  6. Click Preview Mappings to review the User Schema.
    • If you do not select a specific user from the Preview Filter dropdown, the schema will default to the first user.
  1. Click Update.

Warning:

Updates to the user schema will not dynamically sync. To force a sync, you must modify the user group’s record in some way, like adding a space to the Description field.

To modify existing user attributes

Note:

This new functionality is in Private Preview. Contact your Account Manager to enable it. Your feedback helps us evolve this feature so share your suggestions at the bottom of the article. Learn More

This enhancement gives you complete control over the user attributes sent from JumpCloud to this application. You can now:

  • Fully control mappings - define which JumpCloud attribute or source data corresponds to an attribute in the SP's SCIM schema
  • Use a variety of source values - map data from the user's standard attributes, Manager field, custom attributes, or other data sources
  • Manipulate data with expressions - transform data, such as preferred first names and date format, using expressions before transmission to the SP. Learn more
  • Preview changes - review your new mappings to ensure accuracy before you save
  1. From your connector’s configuration page, select the Identity Management tab.
  2. Expand the Export Attribute Mapping section and click Edit.
  3. For the type of attribute you would like to modify:
    • Direct - select the new attribute from the dropdown(s)
    • Expression - click in the Expression field and make the desired edits. If necessary, select the new attribute from the SCIM Attribute dropdown
    • Custom - delete the existing values in either or both of the attribute fields and enter the new values
  4. Click Preview Mappings to review the updated User Schema.
  5. Click Update.

Important:

Updates to the user schema will not dynamically sync. To force a sync, you must modify the user group’s record in some way, like adding a space to the Description field.

To delete user attributes

  1. From your connector’s configuration page, select the Identity Management tab.
  2. In the Export Attribute Mapping section, click Edit. The Optional Mappings table will open.
  3. Click Delete (Delete icon) to remove any optional attributes.
  1. When finished, click Update.

Note:

Attributes that were initially included and populated in the user record and then deleted at a later time will not be modified or removed from the user record.

Tip:

To restore the default Optional Mappings, click Edit > Restore Defaults > Update.

GitHub Enterprise Cloud User Attributes

GitHub User Attribute JumpCloud User Attribute Notes
external_id id
userName username
name.givenName firstname
name.lastName lastname
emails[ type='work',primary=true ].Email email
active !suspended && !passwordExpired

Importing Users

This functionality is helpful if users have already been created in the application but have not been created in JumpCloud.

Important:

Users that are suspended in the application will not be created in JumpCloud.

  1. Log in to the JumpCloud Admin Portal.
  2. Go to USER AUTHENTICATION > SSO Applications.
  3. Search for the application and click to open its configuration panel. 
  4. Select the Identity Management tab.
  5. Click Manual Import.
  6. Select the users you want to create in JumpCloud from the application from the list of users that appear. Users in the list have two import statuses:
    • New - user has not been imported
    • Imported - user has been imported and has an account in JumpCloud

Tip: Try using the New Users-only filter when selecting users to import. This will move all of your new users to the top of the list, making them easier to identify and select.

  1. Click Import.
    • If you are importing less than 100 users, your import results will display in real time and you can continue onboarding your users 
    • If you have more than 100 users being imported, JumpCloud will send you an email when your import is complete
  1. You can now connect and grant users access to all their JumpCloud resources. Learn more in the Authorize Users to an Application and Connecting Users to Resources articles.

Warning: Imported users must be members of a user group bound to an application for JumpCloud to manage their identity in, and access to, the application.

SCIM Directory Insights Events

The following Directory Insights (DI) events provide visibility into failures and detailed information about the user and group data being added or updated from HR or other external solutions to JumpCloud.

Note:

Customers with no package or the Device Management Package will need to add the Directory Insights à la carte option. Directory Insights is included in all other packages.

SCIM DI Integration Events

Event Name Event Description
idm_integration_activate Logged when an IT admin attempts to activated new SCIM Identity Management integration.
idm_integration_update Logged when an IT admin attempts to update a configured and activated SCIM Identity Management integration.
idm_integration_reauth Logged when an IT admin attempts to change the credentials for an activated SCIM Identity Management integration.
idm_integration_delete Logged when an IT admin attempts to deactivate an activated SCIM Identity Management integration.

SCIM DI User Events

Event Name Event Description
user_create_provision Logged when JumpCloud tries to create a new user in service provider application.
user_update_provision Logged when JumpCloud tries to update an existing user in service provider application.
user_deprovision Logged when JumpCloud tries to change an existing user to inactive in the service provider application.
user_delete_provision Logged when JumpCloud tries to delete an existing user in service provider application.
user_lookup_provision Logged when JumpCloud encounters an issue when trying to lookup a user to determine if the user needs to be created or updated.

SCIM DI Group Events

Important:

These DI events will only be present if SCIM Groups are supported.

Event Name Event Description
group_create_provision Logged when JumpCloud tries to create a new group in service provider application.
group_update_provision Logged when JumpCloud tries to update an existing group in service provider application.
group_delete_provision Logged when JumpCloud tries to delete an existing group in service provider application.

Removing the Integration

Important:

These are steps for removing the integration in JumpCloud. Consult your SP's documentation for any additional steps needed to remove the integration in the SP. Failure to remove the integration successfully for both the SP and JumpCloud may result in users losing access to the application.

To deactivate the IdM Integration

  1. Log in to the JumpCloud Admin Portal.
  2. Go to USER AUTHENTICATION > SSO Applications.
  3. Search for the application that you’d like to deactivate and click to open its details panel. 
  4. Under the company name and logo on the left hand panel, click the Deactivate IdM connection link.
  5. Click confirm
  6. If successful, you will receive a confirmation message.

To deactivate the SSO Integration or Bookmark

  1. Log in to the JumpCloud Admin Portal.
  2. Go to USER AUTHENTICATION > SSO Applications.
  3. Search for the application that you’d like to deactivate and click to open its details panel. 
  4. Select the SSO or Bookmark tab.
  5. Scroll to the bottom of the configuration.
  6. Click Deactivate SSO or Deactivate Bookmark
  7. Click save
  8. If successful, you will receive a confirmation message.

To delete the application

  1. Log in to the JumpCloud Admin Portal.
  2. Go to USER AUTHENTICATION > SSO Applications.
  3. Search for the application that you’d like to delete.
  4. Check the box next to the application to select it.
  5. Click Delete.
  6. Enter the number of the applications you are deleting
  7. Click Delete Application.
  8. If successful, you will see an application deletion confirmation notification.
Back to Top

List IconIn this Article

Still Have Questions?

If you cannot find an answer to your question in our FAQ, you can always contact us.

Submit a Case