Skip to main content

此版本的 GitHub Enterprise Server 已于以下日期停止服务 2024-09-25. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

配置交互式地图

可以在 Web 界面中为 你的 GitHub Enterprise Server 实例 启用交互式地图的显示。

谁可以使用此功能?

People with access to the 管理控制台 can configure interactive maps.

关于交互式地图

可以允许 你的 GitHub Enterprise Server 实例 用户使用 GeoJSON 或 TopoJSON 语法创建交互式地图。 有关创建交互式地图的详细信息,请参阅“创建关系图”。

若要启用交互式地图,必须为 Azure Maps 提供身份验证凭证。

警告:在 GitHub Enterprise Server 3.10.4 以及之后的版本中,使用 API 令牌通过 Azure Maps 进行身份验证的方式已 停用。 如果在已配置使用 API 令牌进行身份验证的实例上,升级到 GitHub Enterprise Server 的最新版本,则会禁用交互式地图。 必须使用基于角色的访问控制 (RBAC),为 Microsoft Entra ID(以前称为 Azure AD)租户上的应用程序重新配置身份验证。 有关详细信息,请参阅发行说明中的“弃用”部分。

先决条件

如果实例运行 GitHub Enterprise Server 3.10.4 或更高版本,则以下先决条件适用。

如果实例运行 3.10 系列中早于 3.10.3 的 GitHub Enterprise Server 版本,则必须提供 Azure Maps 的 API 令牌。

警告****:GitHub 不建议使用 Azure Maps API 令牌进行身份验证。 若要提高安全性,请升级到 GitHub Enterprise Server 的最新修补程序版本,并重新配置 Azure Maps 身份验证。 升级后,将为实例禁用交互式地图,直到重新配置身份验证。 有关详细信息,请参阅发行说明中的“弃用”部分。

生成 Azure Maps 凭证

要使用 RBAC 为 Azure Maps 配置身份验证,实例必须运行 GitHub Enterprise Server 3.10.4 或更高版本。

若要为 Azure Maps 生成凭证,必须在 Entra ID 中为租户创建应用程序,提供对 Azure Maps 帐户的应用程序访问权限,并配置基于角色的访问控制 (RBAC)。

  1. 在 Entra ID 租户上注册新应用程序。 有关详细信息,请参阅 Microsoft Learn 上的快速入门:将应用程序注册到 Microsoft 标识平台

    • 指定支持的帐户类型时,请选择仅限此组织目录中的帐户
  2. 添加客户端密码。 有关详细信息,请参阅 Microsoft Learn 上的快速入门:将应用程序注册到 Microsoft 标识平台

  3. 将机密的值存储在安全位置,以便在 你的 GitHub Enterprise Server 实例 上配置身份验证时可以参考。 离开页面后,Entra 永远不会显示该值。

  4. 通过 Azure Maps 配置对机密的访问权限。

    1. 查看在 Entra ID 租户上配置的应用程序的详细信息时,在左侧边栏中单击“API 权限”****。
    2. 单击“添加权限”。
    3. 单击 Azure Maps****。
    4. 选择“委托的权限”。
    5. 在“选择权限”下,选择“user_impersonation”。
    6. 要保持权限,单击“添加权限”****。
  5. 登录到 Azure Maps 帐户。 如果没有帐户,可以创建一个。 有关详细信息,请参阅 Azure Maps 帐户网站。

  6. 为 Azure Maps 配置 RBAC。 有关详细信息,请参阅 Microsoft Learn 上的使用 Azure Maps 进行身份验证使用 Azure 门户分配 Azure 角色

    • 在 Entra ID 租户上,从 Access control (IAM),必须将“Azure Maps 数据读取者”的角色分配给“用户、组或服务主体”,选择在这些说明前创建的应用程序,然后完成表单。

启用交互式地图

在 Entra ID 租户上创建应用程序,并生成用于 Azure Maps 的机密后,可以在 你的 GitHub Enterprise Server 实例 上配置交互式地图。

  1. 在 GitHub Enterprise Server 上的管理帐户中,在任一页面的右上角,单击

  2. 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。

  3. 在“ 站点管理”边栏中,单击“管理控制台”。

  4. 在“设置”边栏中,按下“隐私”并取消选中“隐私模式”。

  5. 若要启用交互式地图,请选择“启用 GeoJSON 渲染”。

  6. 生成一个 32 个字符的字符串,用作机密,以防止跨网站请求伪造 (CSRF)。 例如,可以访问管理 shell 并使用 你的 GitHub Enterprise Server 实例 上的 openssl 生成字符串。 有关详细信息,请参阅“访问管理 shell (SSH)”。

    Shell
    openssl rand -hex 32
    

    将字符串存储在方便下一步参考的安全位置。

  7. 输入 身份验证详细信息以获取 Azure Maps。

    • 如果实例运行 3.10 系列中早于 3.10.3 的 GitHub Enterprise Server 版本,则必须在“Azure Maps API 令牌”下方键入或粘贴令牌。

      警告****:GitHub 不建议使用 Azure Maps API 令牌进行身份验证。 若要提高安全性,请升级到 GitHub Enterprise Server 的最新修补程序版本,并重新配置 Azure Maps 身份验证。 升级后,将为实例禁用交互式地图,直到重新配置身份验证。 有关详细信息,请参阅发行说明中的“弃用”部分。

    • 如果实例运行 GitHub Enterprise Server 3.10.4 或更高版本,则在标题下方键入或粘贴以下信息。

      • 若要更改呈现的地图的样式,可选择在“Basemap ID”下键入要使用的样式的 ID。

      • 在标题下,键入或粘贴你的身份验证详细信息。

        说明详细信息
        Azure Maps 客户端 IDAzure Maps 帐户的客户端 IDMicrosoft Learn 上的在 Microsoft Azure Maps 中管理身份验证
        Azure 应用客户端 ID你在 Entra ID 租户上创建的应用程序的应用程序(客户端)IDMicrosoft Learn 上的创建可访问资源的 Microsoft Entra 应用程序和服务主体
        Azure 租户 IDEntra ID 上的租户 ID先决条件
        Azure 应用客户端密码为 Entra ID 租户上的应用程序生成的客户端密码生成 Azure Maps 的凭证
        CSRF 机密用于防止 CSRF 攻击的 32 个字符字符串请参阅上一步。
  8. 在“设置”边栏下,单击“保存设置”。

    注意:保存 管理控制台 中的设置会重启系统服务,这可能会导致用户可察觉的停机时间。

  9. 等待配置运行完毕。

禁用交互式地图

  1. 在 GitHub Enterprise Server 上的管理帐户中,在任一页面的右上角,单击

  2. 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。

  3. 在“ 站点管理”边栏中,单击“管理控制台”。

  4. 在“设置”边栏中,按下“隐私”并取消选中“隐私模式”。

  5. 要禁用交互式地图,请取消选择“启用 GeoJSON 呈现”。

  6. 在“设置”边栏下,单击“保存设置”。

    注意:保存 管理控制台 中的设置会重启系统服务,这可能会导致用户可察觉的停机时间。

  7. 等待配置运行完毕。