使用 Microsoft Entra ID 配置 GitHub Enterprise Cloud 组织以实现单一登录

本文介绍如何将 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. 请导航到 Entra ID>企业应用>新应用
  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. 浏览到 Entra ID>企业应用>GitHub>单点登录

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

  4. “使用 SAML 设置单一登录 ”页上,选择 基本 SAML 配置的 铅笔图标以编辑设置。

    编辑基本 SAML 配置

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

    a。 在“标识符(实体 ID)”文本框中,使用以下模式键入 URL:

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

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

    注意

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

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

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

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

    证书下载链接

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

    复制配置 URL

创建和分配 Microsoft Entra 测试用户

请遵循创建和分配用户帐户快速指南中的指引,创建一个名为 B.Simon 的测试用户帐户。

配置 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 强制实施会话控制