Можно ли заставить Azure AD B2C включать aud в вызовы пользовательских REST API утверждений? - PullRequest
1 голос
/ 20 июня 2019

Я настраиваю свой API REST пользовательских утверждений Azure AD B2C, как описано в https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-custom-rest-api-netfw, и это работает, как описано.

Я бы хотел использовать один и тот же API для нескольких приложений, а не создавать одну конечную точку API для каждого приложения (и для того, чтобы реплицировать большую часть конфигурации XML). Можно ли заставить Azure B2C включать значение aud, когда оно попадает в API, чтобы я мог предоставить требования, которые применяются к приложению, запрашивая их? В конце возвращается токен, поэтому я предполагаю, что он доступен.

Я посмотрел типы утверждений, определенные в TrustFrameworkBase, и ни один из них, похоже, не соответствует значению aud, которое возвращается как часть токена.

Я могу вернуть настраиваемые утверждения для данного пользователя, но я бы хотел отфильтровать их до настраиваемых утверждений для данного пользователя для приложения, к которому они аутентифицируются.

Я поступаю неправильно? Есть ли лучший способ сделать это?

1 Ответ

1 голос
/ 21 июня 2019

Для этого можно использовать распознаватель утверждений .

Во-первых, объявите applicationId (или аналогичный) тип утверждения:

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

Затем в техническом профиле REST API обратитесь к этой заявке applicationId , используя распознаватель заявок {OIDC:ClientId}:

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