Azure Active Directory B2C カスタム ポリシーで OAuth1 技術プロファイルを定義する

注意

Azure Active Directory B2C で、カスタム ポリシーは、主に、複雑なシナリオに取り組む用途向けに設計されています。 ほとんどのシナリオで、組み込みユーザー フローを使用することをお勧めします。 まだ行っていない場合は、Active Directory B2C でのカスタム ポリシーの概要に関する記事で、カスタム ポリシー スターター パックの詳細を確認してください。

Azure Active Directory B2C (Azure AD B2C) では、OAuth 1.0 プロトコル の ID プロバイダーのサポートを提供しています。 この記事では、この標準化されたプロトコルをサポートするクレーム プロバイダーとやりとりするための、技術プロファイルの詳細について説明します。 OAuth1 技術プロファイルを使用すると、Twitter など、OAuth1 ベースの ID プロバイダーとフェデレーションできます。 ID プロバイダーとのフェデレーションにより、ユーザーは、既存のソーシャル ID またはエンタープライズ ID でサインインできます。

Protocol

Protocol 要素の Name 属性は OAuth1 に設定する必要があります。 たとえば、Twitter-OAUTH1 技術プロファイル用のプロトコルは OAuth1 です。

<TechnicalProfile Id="Twitter-OAUTH1">
  <DisplayName>Twitter</DisplayName>
  <Protocol Name="OAuth1" />
  ...

入力クレーム

InputClaimsInputClaimsTransformations の要素は空であるか、存在しません。

出力クレーム

OutputClaims 要素には、OAuth1 ID プロバイダーにより返される要求の一覧が存在します。 お使いのポリシーに定義されている要求の名前を、ID プロバイダーで定義されている名前にマップする必要があるかもしれません。 DefaultValue 属性を設定している限り、ID プロバイダーにより返されない要求を追加することもできます。

OutputClaimsTransformations 要素には、出力要求を修正したり新しい要求を生成するために使用される、OutputClaimsTransformation 要素のコレクションが含まれている場合があります。

次の例は、Twitter ID プロバイダーにより返される要求を示しています。

  • issuerUserId 要求にマップされている user_id 要求。
  • displayName 要求にマップされている screen_name 要求。
  • どの名前にもマップされていない email 要求。

また、技術プロファイルは、ID プロバイダーにより返されない要求も返します。

  • ID プロバイダーの名前を保持する identityProvider 要求。
  • 既定値の socialIdpAuthentication である authenticationSource 要求。
<OutputClaims>
  <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="user_id" />
  <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="screen_name" />
  <OutputClaim ClaimTypeReferenceId="email" />
  <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="twitter.com" />
  <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" />
</OutputClaims>

メタデータ

属性 必須 説明
client_id はい ID プロバイダーのアプリケーション識別子。
ProviderName いいえ ID プロバイダーの名前。
request_token_endpoint はい RFC 5849 に準拠した要求トークン エンドポイントの URL。
authorization_endpoint はい RFC 5849 に準拠した承認エンドポイントの URL。
access_token_endpoint はい RFC 5849 に準拠したトークン エンドポイントの URL。
ClaimsEndpoint いいえ ユーザー情報エンドポイントの URL。
ClaimsResponseFormat いいえ 要求応答の形式。

暗号化キー

CryptographicKeys 要素には次の属性が存在します。

属性 必須 説明
client_secret はい ID プロバイダー アプリケーションのクライアント シークレット。

リダイレクト URI

ID プロバイダーのリダイレクト URI を構成する場合は、https://{tenant-name}.b2clogin.com/{tenant-name}.onmicrosoft.com/{policy-id}/oauth1/authresp を入力します。 {tenant-name} をテナント名 (例: contosob2c) に置き換え、{policy-id} をポリシーの識別子 (例: b2c_1_policy) に置き換える必要があります。 リダイレクト URI は、すべて小文字である必要があります。 ID プロバイダーのログインを使用するすべてのポリシーのために、リダイレクト URL を追加します。

例 :