设置 OpenID Connect 登录

配置 OpenID Connect 登录账户等组织特定登录账户后,组织成员可以通过访问组织内部系统时所用的相同账户登录 ArcGIS Online。 使用此方法设置组织特定登录账户的优势在于:成员无需在 ArcGIS Online 系统内创建其他登录账户;而是可使用已在组织中设置的登录账户。 当成员登录到 ArcGIS Online 时,可向组织的登录账户管理器(也称组织身份提供者 (IdP))提供其组织特定的用户名和密码。 验证成员的凭据之后,IdP 将通知 ArcGIS Online 正在登录的成员的验证身份。

ArcGIS Online 支持 OpenID Connect 身份验证协议,并与支持 OpenID Connect 的 IdP(例如 OktaGoogle)集成。

可以ArcGIS Online 登录页面配置为仅显示 OpenID Connect 登录账户,或同时显示 OpenID Connect 登录账户和以下任意选项:ArcGIS 登录账户、SAML 登录账户(如果已配置)和社交登录账户(如果已配置)。

配置 OpenID Connect 登录

下面介绍了通过 ArcGIS Online 配置 OpenID Connect IdP 的过程。 继续进行操作之前,建议联系您的 IdP 的管理员以获取配置所需的参数。 您还可以在 ArcGIS/idp GitHub 资料档案库中访问并提供详细的第三方 IdP 配置文档。

注:

目前,您只能为 ArcGIS Online 组织配置一个 OpenID Connect IdP。 未来将支持配置多个 IdP 的功能。

  1. 确认您是否以组织管理员的身份登录。
  2. 单击站点顶部的组织,然后单击设置选项卡。
  3. 如果您计划在不发送邀请的情况下允许成员自动加入,请先为新成员配置默认设置。 否则,跳过此步骤。

    如有必要,您可以在特定成员加入组织后为其更改这些设置

    1. 单击页面一侧的新成员默认值
    2. 选择新成员的默认用户类型和角色。
    3. 选择附加许可,以在成员加入组织时自动分配成员。
    4. 选择成员加入组织时会将其添加到的群组。
    5. 如果组织已启用配额预算,将每个新成员的配额分配设置为指定的配额数或无限制。
    6. 选择是否启用新成员的 Esri 访问权限。

      账户已启用 Esri 访问权限的成员可以使用 My Esri、参加培训课程、参与 Esri Community、向 ArcGIS 博客添加评论并管理来自 Esri 的电子邮件通信。 成员无法启用或禁用其自己对这些 Esri 资源的访问。

  4. 单击页面一侧的安全性
  5. 登录部分中,单击新建 OpenID Connect 登录账户
  6. 登录按钮标签框中,输入希望显示在按钮上的文本,成员可通过该按钮使用 OpenID Connect 登录账户登录系统。
  7. 选择拥有 OpenID Connect 登录账户的成员加入组织的方法:自动加入或通过邀请加入。

    自动选项允许成员通过使用其 OpenID Connect 登录账户进行登录来加入组织。 使用应管理员的邀请选项,可通过 ArcGIS Online 生成电子邮件邀请,其中含有关于如何加入组织的说明。 如果选择自动选项,仍可邀请成员加入组织,也可以使用其 OpenID Connect ID 直接将其添加至组织。 有关详细信息,请参阅邀请并添加成员

  8. 注册的客户端 ID 框中,提供 IdP 中的客户端 ID。
  9. 对于身份验证方法,请指定以下选项之一:
    • 客户端密码 - 提供来自 IdP 的已注册客户端密码。
    • 公钥/私钥 - 选择此选项可生成用于身份验证的公钥或公钥 URL。
      注:

      生成新的公钥/私钥对将使所有现有公钥/私钥失效。 如果您的 IdP 配置使用已保存的公钥,而非公钥 URL,则生成新的密钥对将需要您更新 IdP 配置中的公钥,以避免登录中断。

  10. 提供者范围/权限框中,提供要与请求一起发送到授权端点的范围。
    注:

    ArcGIS Online 支持对应于 OpenID Connect 标识符、电子邮件和用户个人资料属性的范围。 如果您的 OpenID Connect 提供者支持,您可以使用 openid profile email 的标准值作为范围。 有关受支持的范围,请参阅 OpenID Connect 提供者文档。

  11. 提供者发布者 ID 框中,提供 OpenID Connect 提供者的标识符。
  12. 填写 OpenID Connect IdP URL,如下所示:
    提示:

    如果在填写以下信息时需要帮助,请参阅 IdP 的已知配置文档(例如,https:/[IdPdomain]/.well-known/openid-configuration 中的文档)。

    1. 对于 OAuth 2.0 授权端点 URL,提供 IdP 的 OAuth 2.0 授权端点的 URL。
    2. 对于令牌端点 URL,提供 IdP 的令牌端点的 URL,以获取访问权限和 ID 令牌。
    3. 或者,对于 JSON web 密钥集 (JWKS) URL,提供 IdP 的 JSON web 密钥集文档的 URL。

      本文档包含用于验证提供者签名的签名密钥。 仅当未配置用户配置文件端点 URL(推荐)时才会使用此 URL。

    4. 对于用户配置文件端点 URL(推荐),提供端点以获取有关用户的身份验证信息。

      如果未指定此 URL,系统将使用 JSON web 密钥集 (JWKS) URL

    5. 或者,对于登出端点 URL(可选),提供授权服务器的登出端点 URL。

      成员从 ArcGIS 登出时,系统会使用该信息将成员从 IdP 登出。

  13. 如果要在令牌头而非查询字符串中发送令牌,请打开在令牌头中发送访问令牌切换按钮。
  14. 或者,打开使用 PKCE 增强的授权码流切换按钮。

    打开此选项后,将使用代码交换证明密钥 (PKCE) 协议以使 OpenID Connect 授权代码流更加安全。 每个授权请求都会创建唯一的代码验证器,并将其转换后的值(即代码质询)发送到授权服务器以获取授权代码。 用于此转换的代码质询方法为 S256,这意味着代码质询为代码验证器的 Base64 URL 编码 SHA-256 哈希。

  15. 可以选择切换启用基于 OpenID Connect 登录账户的群组成员资格按钮,以允许成员在群组创建过程中将特定的基于 OpenID Connect 的群组链接到 ArcGIS Online

    当启用此选项时,则具有链接至 OpenID Connect 群组权限的组织成员可创建成员通过外部托管的 OpenID Connect 身份提供者控制的 ArcGIS Online 群组。 群组成功链接至基于 OpenID Connect 的外部群组后,群组中每个用户的成员资格将在 OpenID Connect 群组声明响应中定义,该响应会在每次用户成功登录时从身份提供者处接收。

    要确保 ArcGIS Online 群组成功链接至外部 OpenID Connect 群组,则群组创建者必须提供在 OpenID Connect 群组声明的属性值中返回的外部 OpenID Connect 群组的准确值。 通过 OpenID Connect 身份提供者查看群组声明响应,以确定用于引用群组的值。

    如果您切换了启用基于 OpenID Connect 登录账户的群组成员资格按钮,请确保在提供者范围/权限框中添加群组范围。 有关受支持的范围,请参阅 OpenID Connect 提供者文档。

  16. 或者,对于 ArcGIS 用户名字段/声明名称,提供来自 ID 令牌的声明名称,该 ID 令牌将用于设置 ArcGIS 用户名。

    提供的值必须符合 ArcGIS 用户名要求。 ArcGIS 用户名必须包含 6 到 128 个字母数字字符,并且可以包含以下特殊字符:.(点)、_(下划线)和 @(at 符号)。 不允许使用其他特殊字符、非字母数字字符和空格。

    如果您指定的值少于六个字符,或者该值与现有用户名匹配,则会将数字添加到该值中。 如果您将此字段留空,则用户名将根据电子邮件的前缀(如果可用)创建;否则,将使用 ID 声明创建用户名。

  17. 输入完成后,单击保存
  18. 单击 OpenID 连接登录账户旁的配置登录账户链接。
  19. 要完成配置过程,请复制生成的登录重定向 URI登出重定向 URI(如果适用),然后将其添加到 OpenID Connect IdP 允许的回调 URL 列表中。 如果适用,请复制 OpenID Connect IdP 的公钥或公钥 URL。

修改或移除 OpenID Connect IdP

设置 OpenID Connect IdP 后,您可以单击当前已注册 IdP 旁边的配置登录账户来更新其设置。 在编辑 OpenID 连接登录账户窗口中更新您的设置。

要删除当前注册的 IdP,请单击 IdP 旁边的配置登录账户,然后在编辑 OpenID Connect 登录账户窗口中单击删除登录账户

注:

移除提供者中的所有成员之后才能删除 OpenID Connect 登录账户。