1

ADB2C 認証を使用して保護されている API があります。カスタム ポリシーを介してこの API を呼び出す必要があります。ドキュメントに従って、ここにリンクの説明を入力し、セルフアサート プロファイルの検証技術プロファイルとして 2 つの技術プロファイルを追加しました。

以下の技術プロファイルから返されたアクセス トークンを取得しています。

<TechnicalProfile Id="SecureREST-AccessToken">
      <DisplayName></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 id here}/oauth2/v2.0/token</Item>
        <Item Key="AuthenticationType">Basic</Item>
        <Item Key="SendClaimsIn">Form</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_SecureRESTClientId" />
        <Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_SecureRESTClientSecret" />
      </CryptographicKeys>
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="grant_type" DefaultValue="client_credentials" />
        <InputClaim ClaimTypeReferenceId="scope" DefaultValue="{app id uri for protected resource}/.default" />
      </InputClaims>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="bearerToken" PartnerClaimType="access_token" />
      </OutputClaims>
      <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
    </TechnicalProfile>

そして、以下のプロファイルを使用して残りの API 呼び出しを行います。

<TechnicalProfile Id="UserMigrationViaLegacyIdp">
                <DisplayName>REST API call to communicate with Legacy IdP</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://99a0a14a6402.ngrok.io/api/Identity/SignUpAsync
        </Item>
                    <Item Key="AuthenticationType">Bearer</Item>
                    <Item Key="SendClaimsIn">Header</Item>
                    <Item Key="AllowInsecureAuthInProduction">false</Item>
        <Item Key="UseClaimAsBearerToken">bearerToken</Item>


      </Metadata>
                <InputClaims>
                    <InputClaim ClaimTypeReferenceId="bearerToken"/>
      </InputClaims>
                <OutputClaims>
                    
                    <OutputClaim ClaimTypeReferenceId="phonePresent"/>

                </OutputClaims>
                <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
            </TechnicalProfile>

ただし、返されたアクセス トークンにスコープが含まれていないため、API でトークンの検証が失敗しています。

アクセス トークンを取得するための呼び出しに何か不足がありますか?

4

1 に答える 1