About identity and access management with SAML single sign-on

If you centrally manage your users' identities and applications with an identity provider (IdP), you can configure Security Assertion Markup Language (SAML) single sign-on (SSO) to protect your organization's resources on GitHub.

SAML single sign-on is available with GitHub Enterprise Cloud. For more information, see "GitHub's products."

In this article

About SAML SSO

SAML SSO gives organization owners and enterprise owners on GitHub a way to control and secure access to organization resources like repositories, issues, and pull requests.

After you configure SAML SSO, members of your GitHub organization will continue to log into their user accounts on GitHub. When a member accesses resources within your organization that uses SAML SSO, GitHub redirects the member to your IdP to authenticate. After successful authentication, your IdP redirects the member back to GitHub, where the member can access your organization's resources.

Enterprise owners can also enforce SAML SSO for all organizations in an enterprise account. For more information, see "Enforcing security settings in your enterprise account."

Note: Outside collaborators aren't required to authenticate with an IdP to access the resources in an organization with SAML SSO. For more information on outside collaborators, see "Permission levels for an organization."

Before enabling SAML SSO for your organization, you'll need to connect your IdP to your organization. For more information, see "Connecting your identity provider to your organization."

For an organization, SAML SSO can be disabled, enabled but not enforced, or enabled and enforced. After you enable SAML SSO for your organization and your organization's members successfully authenticate with your IdP, you can enforce the SAML SSO configuration. For more information about enforcing SAML SSO for your GitHub organization, see "Enforcing SAML single sign-on for your organization."

Members must periodically authenticate with your IdP to authenticate and gain access to your organization's resources. The duration of this login period is specified by your IdP and is generally 24 hours. This periodic login requirement limits the length of access and requires users to re-identify themselves to continue.

To access the organization's protected resources using the API and Git on the command line, members must authorize and authenticate with a personal access token or SSH key. For more information, see "Authorizing a personal access token for use with SAML single sign-on" and "Authorizing an SSH key for use with SAML single sign-on."

The first time a member uses SAML SSO to access your organization, GitHub automatically creates a record that links your organization, the member's GitHub account, and the member's account on your IdP. You can view and revoke the linked SAML identity, active sessions, and authorized credentials for members of your organization or enterprise account. For more information, see "Viewing and managing a member's SAML access to your organization" and "Viewing and managing a user's SAML access to your enterprise account."

Organization members must also have an active SAML session to authorize an OAuth App. You can opt out of this requirement by contacting GitHub Support or GitHub Premium Support. GitHub does not recommend opting out of this requirement, which will expose your organization to a higher risk of account takeovers and potential data loss.

Supported SAML services

We offer limited support for all identity providers that implement the SAML 2.0 standard. We officially support these identity providers that have been internally tested:

  • Active Directory Federation Services (AD FS)
  • Azure Active Directory (Azure AD)
  • Okta
  • OneLogin
  • PingOne
  • Shibboleth

Some IdPs support provisioning access to a GitHub organization via SCIM. For more information, see "About SCIM."

Adding members to an organization using SAML SSO

After you enable SAML SSO, there are multiple ways you can add new members to your organization. Organization owners can invite new members manually on GitHub or using the API. For more information, see "Inviting users to join your organization" and "Members" on the GitHub Developer documentation.

You can use team synchronization to automatically add and remove team members in an organization through an identity provider. For more information, see "Synchronizing teams between your identity provider and GitHub."

To provision new users without an invitation from an organization owner, you can use the URL https://github.com/orgs/ORGANIZATION/sso/sign_up, replacing ORGANIZATION with the name of your organization. For example, you can configure your IdP so that anyone with access to the IdP can click a link on the IdP's dashboard to join your GitHub organization.

If your IdP supports SCIM, GitHub can automatically invite members to join your organization when you grant access on your IdP. If you remove a member's access to your GitHub organization on your SAML IdP, the member will be automatically removed from the GitHub organization. For more information, see "About SCIM."

GitHub does not support SAML Single Logout. To terminate an active SAML session, users should log out directly on your SAML IdP.

Further reading

Ask a human

Can't find what you're looking for?

Contact us