是否可以让 Azure AD B2C 在对自定义声明 REST API 的调用中包含 aud?

Is it possible to get Azure AD B2C to include the aud in calls to custom claims REST API?

我按照 https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-custom-rest-api-netfw 中的描述设置了我的 Azure AD B2C 自定义声明 REST API 并且按照描述的方式工作。

我想对多个应用程序使用相同的 API 而不是为每个应用程序构建一个 API 端点(并且必须复制大部分 XML 配置)。是否可以让 Azure B2C 在达到 API 时包含 aud 值,以便我可以提供适用于请求它们的应用程序的声明?它在最后得到 returned 的令牌中,所以我假设它是可访问的。

我查看了 TrustFrameworkBase 中定义的声明类型,其中 none 似乎与 return 作为令牌一部分的 aud 值匹配。

我能够 return 给定用户的自定义声明,但我希望能够将其过滤为给定用户对他们正在验证的应用程序的自定义声明.

我是不是走错了路?有没有更好的方法来完成这个?

您可以为此使用 a claims resolver

首先,声明一个applicationId(或类似的)声明类型:

<ClaimType Id="applicationId">
  <DisplayName>Application Identifier</DisplayName>
  <DataType>string</DataType>
</ClaimType>

然后在 REST API 技术配置文件中,使用 {OIDC:ClientId} 声明解析器引用此 applicationId 声明:

<InputClaim ClaimTypeReferenceId="applicationId" DefaultValue="{OIDC:ClientId}" AlwaysUseDefaultValue="true" />