配置 OpenID Connect 登录帐户等组织特定登录帐户后,组织成员可以通过访问组织内部系统时所用的相同帐户登录 ArcGIS Online。 使用此方法设置组织特定登录帐户的优势在于:成员无需在 ArcGIS Online 系统内创建其他登录帐户;而是可使用已在组织中设置的登录帐户。 当成员登录到 ArcGIS Online 时,可向组织的登录帐户管理器(也称组织身份提供者 (IdP))提供其组织特定的用户名和密码。 验证成员的凭据之后,IdP 将通知 ArcGIS Online 正在登录的成员的验证身份。
ArcGIS Online 支持 OpenID Connect 身份验证协议,并与支持 OpenID Connect 的 IdP(例如 Okta 和 Google)集成。
可以将 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 的功能。
- 确认您是否以组织管理员的身份登录。
- 单击站点顶部的组织,然后单击设置选项卡。
- 如果您计划在不发送邀请的情况下允许成员自动加入,请先为新成员配置默认设置。 否则,跳过此步骤。
如有必要,您可以在特定成员加入组织后为其更改这些设置。
- 单击页面一侧的安全性。
- 在登录部分中,单击新建 OpenID Connect 登录帐户。
- 在登录按钮标注框中,输入希望显示在按钮上的文本,成员可通过该按钮使用 OpenID Connect 登录帐户登录系统。
- 选择拥有 OpenID Connect 登录帐户的成员加入组织的方法:自动加入或通过邀请加入。
- 在注册的客户端 ID 框中,提供 IdP 中的客户端 ID。
- 对于身份验证方法,请指定以下选项之一:
- 客户端密码 - 提供来自 IdP 的已注册客户端密码。
- 公钥/私钥 - 选择此选项可生成用于身份验证的公钥或公钥 URL。
注:
生成新的公钥/私钥对将使所有现有公钥/私钥失效。 如果您的 IdP 配置使用已保存的公钥,而非公钥 URL,则生成新的密钥对将需要您更新 IdP 配置中的公钥,以避免登录中断。
- 在提供者范围/权限框中,提供要与请求一起发送到授权端点的范围。
注:
ArcGIS Online 支持对应于 OpenID Connect 标识符、电子邮件和用户个人资料属性的范围。 如果您的 OpenID Connect 提供者支持,您可以使用 openid profile email 的标准值作为范围。 有关受支持的范围,请参阅 OpenID Connect 提供者文档。
- 在提供者发布者 ID 框中,提供 OpenID Connect 提供者的标识符。
- 填写 OpenID Connect IdP URL,如下所示:
提示:
如果在填写以下信息时需要帮助,请参阅 IdP 的已知配置文档(例如,https:/[IdPdomain]/.well-known/openid-configuration 中的文档)。
- 对于 OAuth 2.0 授权端点 URL,提供 IdP 的 OAuth 2.0 授权端点的 URL。
- 对于令牌端点 URL,提供 IdP 的令牌端点的 URL,以获取访问权限和 ID 令牌。
- 或者,对于 JSON web 密钥集 (JWKS) URL,提供 IdP 的 JSON web 密钥集文档的 URL。
本文档包含用于验证提供者签名的签名密钥。 仅当未配置用户配置文件端点 URL(推荐)时,才会使用此 URL。
- 对于用户配置文件端点 URL(推荐),提供端点以获取有关用户的身份验证信息。
如果未指定此 URL,则将使用 JSON web 密钥集 (JWKS) URL 选项。
- 或者,对于登出端点 URL(可选),提供授权服务器的登出端点 URL。
成员从 ArcGIS 登出时,系统会使用该信息将成员从 IdP 登出。
- 如果要在令牌头而非查询字符串中发送令牌,请打开在令牌头中发送访问令牌切换按钮。
- 或者,打开使用 PKCE 增强的授权码流切换按钮。
打开此选项后,将使用代码交换证明密钥 (PKCE) 协议以使 OpenID Connect 授权代码流更加安全。 每个授权请求都会创建唯一的代码验证器,并将其转换后的值(即代码质询)发送到授权服务器以获取授权代码。 用于此转换的代码质询方法为 S256,这意味着代码质询为代码验证器的 Base64 URL 编码 SHA-256 哈希。
- 可以选择打开启用基于 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 提供者文档。
- 或者,对于 ArcGIS 用户名声明,提供来自 ID 令牌的声明名称,该 ID 令牌将用于设置 ArcGIS 用户名。
提供的值必须符合 ArcGIS 用户名要求。 ArcGIS 用户名必须包含 6 到 128 个字母数字字符,并且可以包含以下特殊字符:.(点)、_(下划线)和 @(at 符号)。 不允许使用其他特殊字符、非字母数字字符和空格。
如果您指定的值少于六个字符,或者该值与现有用户名匹配,则会将数字添加到该值中。 如果您将此字段留空,则用户名将根据电子邮件的前缀(如果可用)创建;否则,将使用 ID 声明创建用户名。
- 如果您使用 OpenID Connect 登录帐户,请保留 OpenID Connect 提供程序在 ID 令牌中发送的默认主题标识符 (sub) 属性作为用户标识符。 如果您需要针对用户标识符使用自定义声明,请在将用于设置用户标识符的 ID 令牌中提供声明名称。
注:
在 OpenID Connect 登录帐户的初始设置期间,用户标识符声明只应配置一次。 如果在设置 OpenID Connect 登录帐户后更改用户标识符(从默认值更改为自定义值,或者从一个自定义值更改为另一个自定义值),则更改前创建的用户帐户将不再有效。
- 输入完成后,单击保存。
- 单击 OpenID 连接登录帐户旁的配置登录帐户链接。
- 要完成配置过程,请复制生成的登录重定向 URI 和登出重定向 URI(如果适用),然后将其添加到 OpenID Connect IdP 允许的回调 URL 列表中。 如果适用,请复制 OpenID Connect IdP 的公钥或公钥 URL。
修改或移除 OpenID Connect IdP
设置 OpenID Connect IdP 后,您可以单击当前已注册 IdP 旁边的配置登录帐户来更新其设置。 在编辑 OpenID 连接登录帐户窗口中更新您的设置。
要删除当前注册的 IdP,请单击 IdP 旁边的配置登录帐户,然后在编辑 OpenID Connect 登录帐户窗口中单击删除登录帐户。
注:
移除提供者中的所有成员之后才能删除 OpenID Connect 登录帐户。