Skip to main content

About Enterprise Managed Users

You can centrally manage identity and access for your enterprise members on GitHub from your identity provider.

About Enterprise Managed Users

With Enterprise Managed Users, you can control the user accounts of your enterprise members through your identity provider (IdP). Users assigned to the GitHub Enterprise Managed User application in your IdP are provisioned as new user accounts on GitHub and added to your enterprise. You control usernames, profile data, team membership, and repository access for the user accounts from your IdP.

In your IdP, you can give each managed user account the role of user, enterprise owner, or billing manager. Managed user accounts can own organizations within your enterprise and can add other managed user accounts to the organizations and teams within. For more information, see "Roles in an enterprise" and "About organizations."

Organization membership can be managed manually, or you can update membership automatically as managed user accounts are added to IdP groups that are connected to teams within the organization. When a managed user account is manually added to an organization, unassigning them from the GitHub Enterprise Managed User application on your IdP will suspend the user but not remove them from the organization. For more information about managing organization and team membership automatically, see "Managing team memberships with identity provider groups."

When your enterprise uses OIDC SSO, GitHub will automatically use your IdP's conditional access policy (CAP) IP conditions to validate user interactions with GitHub, when members change IP addresses, and each time a personal access token or SSH key is used. For more information, see "About support for your IdP's Conditional Access Policy."

You can grant managed user accounts access to and the ability to contribute to repositories within your enterprise, but managed user accounts cannot create public content or collaborate with other users, organizations, and enterprises on the rest of GitHub. For more information, see "Abilities and restrictions of managed user accounts."

The usernames of your enterprise's managed user accounts and their profile information, such as display names and email addresses, are set by through your IdP and cannot be changed by the users themselves. For more information, see "Usernames and profile information."

Managed user accounts cannot fork repositories from outside of the enterprise or fork internal repositories. Managed user accounts can fork private repositories owned by organizations in the enterprise into other organizations owned by the enterprise, or as a fork owned by the managed user account.

Enterprise owners can audit all of the managed user accounts' actions on GitHub. For more information, see "Audit log events for your enterprise."

To use Enterprise Managed Users, you need a separate type of enterprise account with Enterprise Managed Users enabled. For more information about creating this account, see "About enterprises with managed users."

Note: There are multiple options for identity and access management with GitHub Enterprise Cloud, and Enterprise Managed Users is not the best solution for every customer. For more information about whether Enterprise Managed Users is right for your enterprise, see "About authentication for your enterprise."

Identity provider support

Enterprise Managed Users supports the following IdPs and authentication methods:

SAMLOIDC (beta)
Azure Active Directory
Okta

Abilities and restrictions of managed user accounts

Managed user accounts can only contribute to private and internal repositories within their enterprise and private repositories owned by their user account. Managed user accounts have read-only access to the wider GitHub community. These visibility and access restrictions for users and content apply to all requests, including API requests.

  • Managed user accounts cannot be invited to organizations or repositories outside of the enterprise, nor can the managed user accounts be invited to other enterprises.
  • Outside collaborators are not supported by Enterprise Managed Users.
  • Managed user accounts cannot create issues or pull requests in, comment or add reactions to, nor star, watch, or fork repositories outside of the enterprise.
  • Managed user accounts can view all public repositories on GitHub.com, but cannot push code to repositories outside of the enterprise.
  • Managed user accounts and the content they create is only visible to other members of the enterprise.
  • Managed user accounts cannot follow users outside of the enterprise.
  • Managed user accounts cannot create gists or comment on gists.
  • Managed user accounts cannot install GitHub Apps on their user accounts.
  • Other GitHub users cannot see, mention, or invite a managed user account to collaborate.
  • Managed user accounts can only own private repositories and managed user accounts can only invite other enterprise members to collaborate on their owned repositories.
  • Managed user accounts cannot fork repositories from outside of the enterprise or fork internal repositories. Managed user accounts can fork private repositories owned by organizations in the enterprise into other organizations owned by the enterprise, or as a fork owned by the managed user account.
  • Only private and internal repositories can be created in organizations owned by an enterprise with managed users, depending on organization and enterprise repository visibility settings.
  • Managed user accounts are limited in their use of GitHub Pages. For more information, see "About GitHub Pages."

Getting started with Enterprise Managed Users

Before your developers can use GitHub Enterprise Cloud with Enterprise Managed Users, you must follow a series of configuration steps.

  1. To use Enterprise Managed Users, you need a separate type of enterprise account with Enterprise Managed Users enabled. To try out Enterprise Managed Users or to discuss options for migrating from your existing enterprise, please contact GitHub's Sales team.

    Your contact on the GitHub Sales team will work with you to create your new enterprise with managed users. You'll need to provide the email address for the user who will set up your enterprise and a short code that will be used as the suffix for your enterprise members' usernames. The short code must be unique to your enterprise, a three-to-eight character alphanumeric string, and contain no special characters. For more information, see "Usernames and profile information."

  2. After we create your enterprise, you will receive an email from GitHub inviting you to choose a password for your enterprise's setup user, which will be the first owner in the enterprise. Use an incognito or private browsing window when setting the password. The setup user is only used to configure single sign-on and SCIM provisioning integration for the enterprise. It will no longer have access to administer the enterprise account once SSO is successfully enabled. The setup user's username is your enterprise's shortcode suffixed with _admin.

    If you need to reset the password for your setup user, contact GitHub Support through the GitHub Support portal.

  3. After you log in as the setup user, we recommend enabling two-factor authentication. For more information, see "Configuring two-factor authentication."

  4. To get started, configure how your members will authenticate. If you are using Azure Active Directory as your identity provider, you can choose between OpenID Connect (OIDC) and Security Assertion Markup Language (SAML). Both options provide a seamless sign-in experience for your members, but only OIDC includes support for Conditional Access Policies (CAP). If you are using Okta as your identity provider, you can use SAML to authenticate your members.

    To get started, read the guide for your chosen authentication method.

  5. Once you have configured SSO, you can configure SCIM provisioning. SCIM is how your identity provider will provision and manage member accounts and teams on GitHub.com. For more information on configuring SCIM provisioning, see "Configuring SCIM provisioning for enterprise managed users."

  6. Once authentication and provisioning are configured, you can start provisioning members and managing teams. For more information, see "Managing team memberships with identity provider groups."

Authenticating as a managed user account

Managed user accounts must authenticate through their identity provider. To authenticate, a managed user account can visit their IdP application portal or use the login page on GitHub.com.

If a SAML configuration error or an issue with your identity provider (IdP) prevents you from using SAML SSO, you can use a recovery code to access your enterprise. For more information, see "Managing recovery codes for your enterprise."

Authenticating as a managed user account via GitHub.com

  1. Navigate to https://github.com/login.
  2. In the "Username or email address" text box, enter your username including the underscore and short code. Screenshot showing login form When the form recognizes your username, the form will update. You do not need to enter your password on this form.
  3. To continue to your identity provider, click Sign in with your identity provider. Screenshot showing "Sign in with your identity provider" button

Usernames and profile information

GitHub Enterprise Cloud automatically creates a username for each person by normalizing an identifier provided by your IdP. For more information, see "Username considerations for external authentication."

A conflict may occur when provisioning users if the unique parts of the identifier provided by your IdP are removed during normalization. If you're unable to provision a user due to a username conflict, you should modify the username provided by your IdP. For more information, see "Resolving username conflicts."

The profile name and email address of a managed user account is also provided by the IdP. Managed user accounts cannot change their profile name or email address on GitHub, and the IdP can only provide a single email address.