Присвойте значение криптографического ключа для заявки в Azure Ad B2C - PullRequest
0 голосов
/ 06 марта 2019

У меня есть технический профиль для получения токена доступа потока учетных данных клиента из конечной точки токена AD.

Я могу назначить ответ access_token для заявки и передать в UI через выходную заявку (как только она будет загружена, я скрою элемент и изменит элемент tpe на скрытый), который будет использоваться JS для выполнения определенных вызовов API при регистрации. стр.

Все отлично работает. Здесь, в техническом профиле rest api, я использовал идентификатор клиента и секретные значения клиента непосредственно в значении претензии по умолчанию.

Можно ли получить из хранилища ключей секретный ключ - криптографические ключи и назначить претензию?

Ниже приведен технический профиль rest api,

<TechnicalProfile Id="TokenAPI">
      <DisplayName>Rest API call</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://login.microsoftonline.com/tenant.onmicrosoft.com/oauth2/v2.0/token</Item>
        <Item Key="AuthenticationType">None</Item>
        <Item Key="SendClaimsIn">Form</Item>
        <Item Key="HttpBinding">POST</Item>
        <Item Key="AllowInsecureAuthInProduction">true</Item>
      </Metadata>
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="client_id" PartnerClaimType="client_id" DefaultValue="abd2c507-xxxx-xxxx-xxxx-xxxx"/>
        <InputClaim ClaimTypeReferenceId="client_secret" PartnerClaimType="client_secret" DefaultValue="LXz2L5xxxxxxxxxxxxxxxxxxxxxxxx"/>

        <InputClaim ClaimTypeReferenceId="grant_type" PartnerClaimType="grant_type" DefaultValue="client_credentials"/>
        <InputClaim ClaimTypeReferenceId="scope" PartnerClaimType="scope" DefaultValue="https://TitanB2CTest.onmicrosoft.com/507-xxxx-xxxx-xxxx-xxxx/.default"/>
      </InputClaims>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="access_token"  PartnerClaimType="access_token"/>
    </OutputClaims>
      <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
    </TechnicalProfile>

1 Ответ

1 голос
/ 15 марта 2019

Для технического профиля TokenAPI вы можете установить AuthenticationType на Basic, а затем добавить элемент <CryptographicKeys /> , чтобы идентификатор клиента и секретные данные отправляются в заголовке Authorization: Basic xxx конечной точке токена:

<TechnicalProfile Id="TokenAPI">
  <DisplayName>Rest API call</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="ServiceUrl">https://login.microsoftonline.com/tenant.onmicrosoft.com/oauth2/v2.0/token</Item>
    <Item Key="AuthenticationType">Basic</Item>
    <Item Key="SendClaimsIn">Form</Item>
  </Metadata>
  <CryptographicKeys>
    <Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_MyClientId" />
    <Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_MyClientSecret" />
  </CryptographicKeys>
  ...
</TechnicalProfile>
...