在门户中使用 OpenID Connect 的常见问题解答

备注

从 2022 年 10 月 12 日起,Power Apps 门户更名为 Power Pages。 详细信息请参阅:Microsoft Power Pages 现已正式发布(博客)
不久后我们将迁移 Power Apps 门户文档并将其与 Power Pages 文档合并在一起。

本文包含有关常见 Power Apps 门户方案的信息,以及使用符合 OpenID Connect 规范的身份验证提供者的常见问题。

我是否需要 OpenID Connect 自动发现文档才能与门户集成?

可以。 自动发现文档(也称为 /.well-known/openid-configuration)是与门户集成所必需的。 门户使用此文档中的信息来创建授权请求,验证身份验证令牌。

如果您的标识提供者没有提供此文档,您可以手动创建,然后将它托管在任何公共位置(包括您的门户)。

备注

与发现文档类似,门户也需要标识提供者提供可以使用公钥来验证 ID 令牌签名的公共 JWKS URI 终结点。 此终结点需要在发现文档中指定为 jwks_uri 键。

门户在身份验证请求中是否支持 acr_values 请求参数?

否。 门户在授权请求中不支持 acr_values 请求参数。 不过,门户功能不能支持 OpenID Connect 规范中定义的所有必需的和推荐的请求参数。

支持以下可选参数:

  • Response_mode
  • Nonce
  • UI_Locales

门户在身份验证请求中是否支持自定义范围参数?

可以。 自定义范围参数可以在配置期间使用范围选项指定。

为什么联系人中的用户名值或 Dataverse 中的外部标识记录显示的值与用户在登录页面输入的值不同?

联系人记录和外部标识记录上的用户名字段将显示在子声明或对象 ID (OID) 声明(基于 Azure AD 的提供者)中发送的值。 这是因为子声明代表最终用户的标识符,由标识提供者保证是唯一的。 OID 声明(对象 ID 是租户中所有用户的唯一标识符)在与基于 Azure AD 的单租户提供者一起使用时受支持。

门户是否支持从基于 OpenID Connect 的提供者注销?

可以。 门户功能支持从应用程序和基于 OpenID Connect 的提供者注销的前端渠道注销技术。

门户是否支持单一注销?

否。 门户不支持基于OpenID Connect 的提供者的单一注销技术。

门户是否需要 ID 令牌*中有任何特定声明?

除所有必需声明外,门户功能还需要 ID 令牌中有代表用户的电子邮件地址的声明。 该声明必须命名为 emailemailsupn

除所有必需声明外,门户还需要 id_token 中有代表用户的电子邮件地址的声明。 此声明必须命名为“email”、“emails”或“upn”。

这些声明将按照以下优先级顺序处理,以设置为 Dataverse 中联系人记录的主要电子邮件地址

  1. 电子邮件
  2. 电子邮件
  3. upn

使用时,“emailclaimsmapping”还用于搜索现有联系人(Dataverse 中的“主要电子邮件地址”字段)。

我是否可以使用 JavaScript 获取令牌的访问权限(ID 或访问)?

否。 标识提供者提供的 ID 令牌不能通过客户端上的任何标准技术提供,且仅用于身份验证目的。 但是,如果您使用的是“隐式授权”流,则可以使用标识提供者提供的方法来获取 ID 或访问令牌的访问权限。

例如,Azure AD 提供 Microsoft 身份验证库来在客户端中实现此应用场景。

我能否使用自定义 OpenID Connect 提供者,不使用 Azure AD?

可以。 门户支持任何支持标准 OpenID Connect 规范的 OpenID Connect 提供者。

另请参阅

为门户配置 OpenID Connect 提供者

备注

您能告诉我们您的文档语言首选项吗? 进行简短调查。(请注意,此调查是英文版调查)

此调查大约需要七分钟。 不会收集个人数据(隐私声明)。