教程:Microsoft Entra SSO 与 GitHub Enterprise Cloud - Enterprise Account 的集成

本教程介绍了如何设置 Microsoft Entra SAML 与 GitHub Enterprise Cloud - Enterprise Account 的集成。 将 GitHub Enterprise Cloud - Enterprise Account 与 Microsoft Entra ID 集成后,可以:

  • 在 Microsoft Entra ID 中控制谁有权访问 GitHub Enterprise Account 及其中的任何组织。

先决条件

若要开始操作,需备齐以下项目:

方案描述

在本教程中,你将为 GitHub 企业帐户配置 SAML 集成,并测试企业帐户所有者和企业/组织成员的身份验证和访问权限。

注意

GitHub Enterprise Cloud - Enterprise Account 应用程序不支持启用 自动 SCIM 预配。 如果需要为 GitHub Enterprise Cloud 环境设置预配,则必须在组织级别配置 SAML,并且必须改用 GitHub Enterprise Cloud - Organization Microsoft Entra 应用程序。 如果要为企业设置为企业托管用户 (EMU) 启用的 SAML 和 SCIM 预配集成,则必须使用 GitHub Enterprise Managed User Microsoft Entra 应用程序进行 SAML/预配集成,或使用 GitHub Enterprise Managed User (OIDC) Microsoft Entra 应用程序进行 OIDC/预配集成。

  • GitHub Enterprise Cloud - 企业帐户支持 SP 和 IDP 发起的 SSO 。

若要配置 GitHub Enterprise Cloud - Enterprise Account 与 Microsoft Entra ID 的集成,需要从库中将 GitHub Enterprise Cloud - Enterprise Account 添加到托管 SaaS 应用列表。

  1. 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心
  2. 浏览至“标识”>“应用程序”>“企业应用程序”>“新建应用程序”。
  3. 在“从库中添加”部分的搜索框中,键入“GitHub Enterprise Cloud - 企业帐户” 。
  4. 从结果面板中选择“GitHub Enterprise Cloud - 企业帐户”,然后添加应用。 在该应用添加到租户时等待几秒钟。

或者,也可以使用企业应用配置向导。 在此向导中,可以将应用程序添加到租户,将用户/组添加到应用,分配角色,并逐步完成 SSO 配置。 详细了解 Microsoft 365 向导。

配置并测试 GitHub Enterprise Cloud - Enterprise Account 的 Microsoft Entra SSO

使用名为“B.Simon”的测试用户配置并测试 GitHub Enterprise Cloud - Enterprise Account 的 Microsoft Entra SSO。 若要正常使用 SSO,需要在 Microsoft Entra 用户与 GitHub Enterprise Cloud - Enterprise Account 中的相关用户之间建立链接关系。

若要配置并测试 GitHub Enterprise Cloud - Enterprise Account 的 Microsoft Entra SSO,请执行以下步骤:

  1. 配置 Microsoft Entra SSO - 使用户能够使用此功能。
    1. 创建 Microsoft Entra 测试用户 - 使用 B.Simon 测试 Microsoft Entra 单一登录。
    2. 将 Microsoft Entra 用户和测试用户帐户分配给 GitHub 应用 - 启用你的用户帐户和测试用户 B.Simon 以使用 Microsoft Entra 单一登录。
  2. 为企业帐户及其组织启用和测试 SAML - 在应用程序端配置单一登录设置。
    1. 使用另一个企业帐户所有者或组织成员帐户测试 SSO - 验证配置是否正常发挥作用。

配置 Microsoft Entra SSO

按照以下步骤启用 Microsoft Entra SSO。

  1. 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心

  2. 浏览到“标识”>“应用程序”>“企业应用程序”>“GitHub Enterprise Cloud - Enterprise Account”>“单一登录”。

  3. 在“选择单一登录方法”页上选择“SAML” 。

  4. 在“设置 SAML 单一登录”页面上,单击“基本 SAML 配置”旁边的铅笔图标以编辑设置 。

    Edit Basic SAML Configuration

  5. 在“基本 SAML 配置” 部分中,按照以下步骤操作:

    a. 在“标识符(实体 ID)”文本框中,使用以下模式键入 URL:https://github.com/enterprises/<ENTERPRISE-SLUG>

    b. 在“回复 URL”文本框中,使用以下模式键入 URL:https://github.com/enterprises/<ENTERPRISE-SLUG>/saml/consume

  6. 如果要在 SP 发起的模式下配置应用程序,请执行以下步骤:

    在“登录 URL”文本框中,使用以下模式键入 URL:

    注意

    <ENTERPRISE-SLUG> 替换为 GitHub 企业帐户的实际名称。

  7. 在“使用 SAML 设置单一登录”页的“SAML 签名证书”部分中,找到“证书(Base64)”,选择“下载”以下载该证书并将其保存到计算机上 。

    The Certificate download link

  8. 在“设置 GitHub Enterprise Cloud - 企业帐户”部分,根据要求复制相应的 URL。

    Copy configuration URLs

创建 Microsoft Entra 测试用户

在本部分中,将在 Azure 门户中创建一个名为 B.Simon 的测试用户。

  1. 至少以用户管理员身份登录到 Microsoft Entra 管理中心
  2. 浏览到“标识”>“用户”>“所有用户”。
  3. 选择屏幕顶部的“新建用户”>“创建新用户”。
  4. 在“用户”属性中执行以下步骤
    1. 在“显示名称”字段中输入 B.Simon
    2. 在“用户主体名称”字段中,输入 username@companydomain.extension。 例如 B.Simon@contoso.com
    3. 选中“显示密码”复选框,然后记下“密码”框中显示的值。
    4. 选择“查看 + 创建”。
  5. 选择“创建”。

将 Microsoft Entra 用户和测试用户帐户分配给 GitHub 应用

在本部分,你将向 B.Simon 和你的用户帐户授予访问 GitHub Enterprise Cloud - 企业帐户的权限,使其能够使用 Azure 单一登录。

  1. 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心
  2. 浏览到“标识”>“应用程序”>“企业应用程序”>“GitHub Enterprise Cloud - Enterprise Account”。
  3. 在应用的概述页中,找到“管理”部分,选择“用户和组” 。
  4. 选择“添加用户”,然后在“添加分配”对话框中选择“用户和组”。
  5. 在“用户和组”对话框中,从用户列表中选择 B.Simon 和你的用户账户,然后单击屏幕底部的“选择”按钮 。
  6. 如果你希望将某角色分配给用户,可以从“选择角色”下拉列表中选择该角色。 如果尚未为此应用设置任何角色,你将看到选择了“默认访问权限”角色。
  7. 在“添加分配”对话框中,单击“分配”按钮。

为企业帐户及其组织启用和测试 SAML

若要在“GitHub Enterprise Cloud - 企业帐户”端配置单一登录,请按照此 GitHub 文档中列出的步骤操作。

  1. 使用作为企业帐户所有者的用户帐户登录 GitHub.com。
  2. 复制应用中的 Login URL 字段中的值,并将其粘贴到 GitHub 企业帐户 SAML 设置的 Sign on URL 字段中。
  3. 复制应用中的 Azure AD Identifier 字段中的值,并将其粘贴到 GitHub 企业帐户 SAML 设置的 Issuer 字段中。
  4. 复制上述步骤中从 Azure 门户下载的“证书(Base64)”文件的内容,并将其粘贴到 GitHub 企业帐户 SAML 设置的相应字段中。
  5. 单击 Test SAML configuration,并确认你能够成功地从 GitHub 企业帐户向 Microsoft Entra 进行身份验证。
  6. 测试成功后,保存设置。
  7. 在首次通过 SAML 从 GitHub 企业帐户进行身份验证后,将在 GitHub 企业帐户中创建一个链接的外部标识,它将已登录的 GitHub 用户帐户与 Microsoft Entra 用户帐户相关联。

为 GitHub 企业帐户启用 SAML SSO 后,默认情况下将为企业帐户拥有的所有组织启用 SAML SSO。 所有成员都需要使用 SAML SSO 进行身份验证,以获得对其所属组织的访问权限,而企业所有者在访问企业帐户时将需要使用 SAML SSO 进行身份验证。

使用另一个企业帐户所有者或组织成员帐户测试 SSO

为 GitHub 企业帐户设置 SAML 集成后(也适用于企业帐户中的 GitHub 组织),分配给 Microsoft Entra 中的应用的其他企业帐户所有者应该能够导航到 GitHub 企业帐户 URL (https://github.com/enterprises/<enterprise account>),通过 SAML 进行身份验证,并访问 GitHub 企业帐户下的策略和设置。

企业帐户中组织的所有者应该能够邀请用户加入其 GitHub 组织。 使用组织所有者帐户登录 GitHub.com,然后按照本文中的步骤邀请 B.Simon 加入组织。 如果还没有 GitHub 用户帐户,则需要为 B.Simon 创建一个。

若要使用 B.Simon 测试用户帐户在企业帐户下测试 GitHub 组织访问权限:

  1. 邀请 B.Simon 作为组织所有者加入企业帐户下的组织。
  2. 使用要关联到 B.Simon Microsoft Entra 用户帐户的用户帐户登录 GitHub.com。
  3. 使用 B.Simon 用户帐户登录到 Microsoft Entra ID。
  4. 转到 GitHub 组织。 系统应会提示用户通过 SAML 进行身份验证。 SAML 身份验证成功之后,B.Simon 应该能够访问组织资源。

后续步骤

配置 GitHub Enterprise Cloud - 企业帐户后,可以强制实施会话控制,从而实时防止组织的敏感数据外泄和渗透。 会话控制从条件访问扩展而来。 了解如何通过 Microsoft Defender for Cloud Apps 强制实施会话控制