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

本教程介绍如何将 GitHub Enterprise Cloud Organization 与 Microsoft Entra ID 相集成。 将 GitHub Enterprise Cloud Organization 与 Microsoft Entra ID 集成后,可以:

  • 在 Microsoft Entra ID 中控制谁有权访问 GitHub Enterprise Cloud Organization。
  • 在一个集中位置管理对 GitHub Enterprise Cloud Organization 的访问。

先决条件

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

方案描述

在本教程中,你将在测试环境中配置并测试 Microsoft Entra 单一登录。

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

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

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

配置并测试 GitHub 的 Microsoft Entra SSO

使用名为 B.Simon 的测试用户配置并测试 GitHub 的 Microsoft Entra SSO。 若要使 SSO 正常工作,需要在 Microsoft Entra 用户与 GitHub 中的相关用户之间建立关联。

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

  1. 配置 Microsoft Entra SSO - 使用户能够使用此功能。
    1. 创建 Microsoft Entra 测试用户 - 使用 B.Simon 测试 Microsoft Entra 单一登录。
    2. 分配 Microsoft Entra 测试用户 - 使 B.Simon 能够使用 Microsoft Entra 单一登录。
  2. 配置 GitHub SSO - 在应用程序端配置单一登录设置。
    1. 创建 GitHub 测试用户 - 在 GitHub 中创建 B.Simon 的对应用户,并将其链接到该用户的 Microsoft Entra 表示形式。
  3. 测试 SSO - 验证配置是否正常工作。

配置 Microsoft Entra SSO

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

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

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

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

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

    编辑基本 SAML 配置

  5. 在“基本 SAML 配置”部分,输入以下字段的值:

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

    b. 在“回复 URL”文本框中,使用以下模式键入 URL:

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

    注意

    请注意,这些不是实际值。 必须使用实际标识符、回复 URL 和登录 URL 更新这些值。 此处我们建议在“标识符”中使用字符串的唯一值。 转到“GitHub 管理”部分检索这些值。

  6. GitHub 应用程序需要特定格式的 SAML 断言,这要求向 SAML 令牌属性配置添加自定义属性映射。 以下屏幕截图显示了默认属性的列表,其中“唯一用户标识符(名称 ID)”通过 user.userprincipalname 进行映射。 GitHub 应用程序要求通过 user.mail 对“唯一用户标识符(名称 ID)”进行映射,因此需单击“编辑”图标对属性映射进行编辑,然后更改属性映射 。

    显示“用户属性”部分的屏幕截图,其中已选择“编辑”图标。

  7. 在“使用 SAML 设置单一登录” 页上,在“SAML 签名证书” 部分中,单击“下载” 以根据要求从给定的选项下载证书(Base64) 并将其保存在计算机上。

    证书下载链接

  8. 在“设置 GitHub”部分中,根据要求复制相应的 URL。

    复制配置 URL

创建 Microsoft Entra 测试用户

在本部分,你将创建名为 B.Simon 的测试用户。

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

分配 Microsoft Entra 测试用户

在本部分,你将通过授予 B.Simon 访问 GitHub 的权限,使其能够使用单一登录。

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

  2. 浏览到“标识”>“应用程序”>“企业应用程序”>“GitHub”。

  3. 在应用的概述页中,找到“管理”部分,选择“用户和组” 。

  4. 选择“添加用户”,然后在“添加分配”对话框中选择“用户和组”。

  5. 在“用户和组”对话框中,从“用户”列表中选择“B.Simon”,然后单击屏幕底部的“选择”按钮。

  6. 如果你希望将某角色分配给用户,可以从“选择角色”下拉列表中选择该角色。 如果尚未为此应用设置任何角色,你将看到选择了“默认访问权限”角色。

    用户角色

  7. 在“添加分配”对话框中,单击“分配”按钮。

配置 GitHub SSO

  1. 在另一个 Web 浏览器窗口中,以管理员身份登录 GitHub 组织站点。

  2. 导航到“设置”并单击“安全性”。 。

    显示 GitHub“组织设置”菜单的屏幕截图,其中已选择“安全性”。

  3. 选中“启用 SAML 身份验证”框(这样可显示“单一登录”配置字段),执行以下步骤:

    显示“SAML 单一登录”部分的屏幕截图,其中突出显示了“启用 SAML 身份验证”和 URL 文本框。

    a. 复制“单一登录 URL”值,并将此值粘贴到“基本 SAML 配置”的“登录 URL”文本框中。

    b. 复制“断言使用者服务 URL”值,将此值粘贴到“基本 SAML 配置”的“回复 URL”文本框中。

  4. 配置以下字段:

    显示“登录 URL”、“颁发者”和“公共证书”文本框的屏幕截图。

    a. 在“登录 URL”文本框中,粘贴之前复制的“登录 URL”值。

    b. 在“颁发者”文本框中,粘贴之前复制的“Microsoft Entra 标识符”值。

    c. 在记事本中打开从 Azure 门户下载的证书,将内容粘贴到“公共证书”文本框中。

    d. 单击“编辑”图标,将“签名方法”和“摘要方法”从 RSA-SHA1SHA1 编辑为 RSA-SHA256SHA256,如下所示 。

    e. 从默认 URL 更新“断言使用者服务 URL (回复 URL)”,以便 GitHub 中的 URL 与 Azure 应用注册中的 URL 匹配。

    显示图像的屏幕截图。

  5. 单击“测试 SAML 配置”,确认在 SSO 期间未发生验证失败错误。

    显示“设置”的屏幕截图。

  6. 单击“保存”

注意

GitHub 中的单一登录向 GitHub 中的特定组织进行身份验证,并不替换 GitHub 本身的身份验证。 因此,如果用户的 github.com 会话已过期,可能会要求你在单一登录过程中使用 GitHub 的 ID/密码进行身份验证。

创建 GitHub 测试用户

本部分的目的是在 GitHub 中创建名为“Britta Simon”的用户。 GitHub 支持在默认情况下启用的自动用户预配。 有关如何配置自动用户预配的更多详细信息,请参见此处

如果需要手动创建用户,请执行以下步骤:

  1. 以管理员身份登录到 GitHub 公司站点。

  2. 单击“人员”。

    显示 GitHub 站点的屏幕截图,其中已选中“人员”。

  3. 单击“邀请成员”。

    显示“邀请用户”的屏幕截图。

  4. 在“邀请成员”对话框页上,执行以下步骤:

    a. 在“电子邮件”文本框中,键入 Britta Simon 帐户的电子邮件地址。

    显示“邀请人员”的屏幕截图。

    b. 单击“发送邀请”。

    显示“邀请成员”对话框页的屏幕截图,其中已选择“成员”和“发送邀请”按钮。

    注意

    Microsoft Entra 帐户持有者将收到一封电子邮件,并打开用于在激活帐户前确认其帐户的链接。

测试 SSO

在本部分,你将使用以下选项测试 Microsoft Entra 单一登录配置。

  • 单击“测试此应用程序”,这会重定向到 GitHub 登录 URL,可以从那里启动登录流。

  • 直接转到 GitHub 登录 URL,并从那里启动登录流。

  • 你可使用 Microsoft 的“我的应用”。 在“我的应用”中单击 GitHub 磁贴时,会重定向到 GitHub 登录 URL。 有关“我的应用”的详细信息,请参阅“我的应用”简介

后续步骤

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