我按照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值,以便我提供适用于要求它们的应用程序的声明?最后是返回的令牌,因此我假设它是可访问的。
我查看了TrustFrameworkBase中定义的声明类型,它们似乎都不匹配作为令牌一部分返回的aud值。
我能够返回给定用户的自定义声明,但是我希望能够将其过滤到给定用户针对其身份验证的应用程序的自定义声明。
我会以错误的方式处理吗?有没有更好的方法可以做到这一点?
答案 0 :(得分:1)
您可以为此使用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" />