Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

Azure AD B2C 認証プロバイダを設定する

公開日: Feb 19, 2026
説明
※この記事は英語版を翻訳しており、一部機械翻訳を含むため内容は後日更新される可能性があります。最新の内容は英語版を参照してください。表示言語は画面右下の言語名から切り替えられます。

Salesforce の OpenID Connect (OIDC) 認証プロバイダにはユーザー情報エンドポイントが必要ですが、Azure AD B2C にはデフォルトで提供されていないため、Azure AD 認証プロバイダの設定に必要な手順に加えて、追加の手順が必要です。

注意: Summer '22 で導入された Microsoft 認証プロバイダは、予想される承認/トークンエンドポイント URL が異なるため、Azure AD B2C には使用できません。
解決策

Azure AD BC 認証プロバイダを設定する手順

a) 「例: Azure AD 認証プロバイダの設定」の記事で説明しているように、B2C テナントにアプリケーション登録を作成し、Salesforce に認証プロバイダを作成します。次のパラメータを設定します。

コンシューマーキー: Azure AD B2C アプリ登録の詳細ページに表示されるアプリケーション (クライアント) ID
コンシューマーの秘密: Azure AD B2C アプリケーション登録で設定されるクライアントの秘密
承認エンドポイント URL: https://yourtenant.b2clogin.com/yourtenant.onmicrosoft.com/<policy-name>/oauth2/v2.0/authorize
トークンエンドポイント URL: https://yourtenant.b2clogin.com/yourtenant.onmicrosoft.com/<policy-name>/oauth2/v2.0/token
トークン発行者: https://yourtenant.b2clogin.com/<Directory (tenant) ID>/v2.0/
デフォルトの範囲: アプリケーション登録の詳細ページに表示されるアプリケーション (クライアント) ID + openid offline_access

たとえば、アプリ ID が 90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6 の場合、デフォルトの範囲は次のようになります。

90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6 openid offline_access

認証とトークンのエンドポイント URL、トークン発行者、設定された要求は https://yourtenant.b2clogin.com/yourtenant.onmicrosoft.com/<policy-name>/v2.0/.well-known/openid-configuration で確認できます。

b) アプリケーション登録のリダイレクト URI またはコールバック URL を更新します。

c) Azure AD B2C インスタンスで UserInfo エンドポイントを有効にし、UserInfo エンドポイントに関する記事で説明されている手順に従ってカスタムポリシーを作成します。

UserInfoIssuer の InputClaims セクションで次の PartnerClaimType 値が使用されていることを確認します。

  <InputClaims>
    <InputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub" />
    <InputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
    <InputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name" />
    <InputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="full_name" />
    <InputClaim ClaimTypeReferenceId="signInNames.emailAddress" PartnerClaimType="preferred_username" />
  </InputClaims>

UserInfoAuthorization の OutputClaims セクションは次のとおりです。

<OutputClaims>
  <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
  <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" PartnerClaimType="email" />
  <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name"/>
  <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name"/>
  <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name"/>
</OutputClaims>

注意: https://yourtenant.b2clogin.com/yourtenant.onmicrosoft.com/<policy-name>/v2.0/.well-known/openid-configuration には新しい「userinfo_endpoint」プロパティが表示されます。

d) 認証プロバイダのユーザー情報エンドポイント URL を更新します。

ユーザー情報エンドポイント URL: https://yourtenant.b2clogin.com/yourtenant.onmicrosoft.com/<policy-name>/openid/v2.0/userinfo

e) 登録ハンドラーを作成します。

注意: ユーザーと認証プロバイダの組み合わせに対応する ThirdPartyAccountLink(TPAL) レコードがない場合、createUser() メソッドが呼び出されます。さらに、認証プロバイダを設定する前に Salesforce でユーザーが作成されているシナリオに対応するため、createUser() メソッドが既存の User レコードを返すようにします。このシナリオについての詳細は、こちらを参照してください。

f) シークレットウィンドウで、認証プロバイダのテスト専用 URL に移動して SSO フローをテストします。


トラブルシューティング

a) ユーザー情報エンドポイントが https://yourtenant.b2clogin.com/yourtenant.onmicrosoft.com/<policy-name>/v2.0/.well-known/openid-configuration によって返されることを確認します。そうでない場合は、ここで説明した手順をやり直してください。

b) アクセストークンを取得します。

b.1) 認証プロバイダのテスト専用 URL に移動します。認証エンドポイントにリダイレクトされます。
b.2) Azure B2C にサインインします。
b.3) HTTP リクエストを検査し、認証コードを取得します。これは、この GET リクエストの応答で確認できます。

GET https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/authorize?client_id=<app-id>

b.4) 次に、この POST リクエストを送信してアクセストークンを取得します。

POST https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/token HTTP/1.1

Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&
client_id=<app-id>&
client_secret=<client-secret>&
scope=<app-id> openid offline_access&
code=AwA...&
redirect_uri=<auth-provider-callback-url>

c) UserInfo の詳細を取得します。以前に取得したアクセストークンを使用して、UserInfo エンドポイントに GET リクエストを送信します。

GET https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/userinfo

Authorization: Bearer <access-token>

d) 登録ハンドラーをデバッグして、OpenId Connect のユーザー情報要求とユーザー属性を正しく比較するようにします。
ナレッジ記事番号

000393769

 
読み込み中
Salesforce Help | Article