Microsoft Entra 多要素認証での外部の方法のプロバイダーの参照 (プレビュー)

このトピックでは、外部認証プロバイダーが Microsoft Entra 多要素認証 (MFA) に接続する方法について説明します。 外部認証プロバイダーは、外部認証方法 (EAM) として Microsoft Entra ID テナントと統合できます。 EAM は、リソースまたはアプリケーションへのアクセスに関する MFA 要件の 2 番目の要素を満たすことができます。 EAM には、少なくとも Microsoft Entra ID P1 ライセンスが必要です。

ユーザーがサインインすると、そのテナント ポリシーが評価されます。 認証要件は、ユーザーがアクセスしようとするリソースに基づいて決定されます。

パラメーターに応じて、複数のポリシーがサインインに適用される場合があります。 これらのパラメーターには、ユーザーとグループ、アプリケーション、プラットフォーム、サインインのリスク レベルなどが含まれます。

認証要件に基づいて、ユーザーは MFA 要件を満たすために別の要素でサインインする必要がある場合があります。 2 番目の要素は、最初の要素の種類を補完する必要があります。

EAM はテナント管理者によって Microsoft Entra ID に追加されます。テナントで MFA に EAM が必要な場合、Microsoft Entra ID が次の両方を検証した後、サインインは MFA 要件を満たしていると見なされます。

  • 最初の要素が Microsoft Entra ID で完了した
  • 2 番目の要素が EAM で完了した

この検証は、次の 2 種類以上の方法に対する MFA 要件を満たしています。

  • 知っていること (知識)
  • 持っていること (所有)
  • 自分そのもの (固有性)

EAM は Open ID Connect (OIDC) 上に実装されます。 この実装には、少なくとも 3 つの公開されているエンドポイントが必要です。

EAM でのサインインがどのように機能するかを詳しく見てみましょう。

  1. ユーザーは、パスワードなどの最初の要素を使って、Microsoft Entra ID で保護されているアプリケーションにサインインしようとします。
  2. Microsoft Entra ID は、別の要素を満たす必要があると判断します。 たとえば、条件付きアクセス ポリシーには MFA が必要です。
  3. ユーザーは 2 番目の要素として EAM を選びます。
  4. Microsoft Entra ID は、ユーザーのブラウザー セッションを EAM URL にリダイレクトします。
    1. この URL は、管理者が EAM を作成したときにプロビジョニングした探索 URL から検出されます。
    2. アプリケーションは、ユーザーとテナントを識別する情報を含む、期限切れまたは期限切れ間近のトークンを提供します。
  5. 外部認証プロバイダーは、トークンが Microsoft Entra ID からのものであることを検証し、トークンの内容を確認します。
  6. 外部認証プロバイダーは、必要に応じて Microsoft Graph を呼び出して、ユーザーに関するその他の情報をフェッチする場合があります。
  7. 外部認証プロバイダーは、何らかの資格情報によるユーザーの認証など、必要と思われるアクションを実行します。
  8. 外部認証プロバイダーは、必要なすべてのクレームを含む有効なトークンを使って、ユーザーを Microsoft Entra ID にリダイレクトします。
  9. Microsoft Entra ID は、トークンの署名が構成された外部認証プロバイダーからのものであることを検証し、トークンの内容を確認します。
  10. Microsoft Entra ID は、要件に照らしてトークンを検証します。
  11. 検証が成功した場合、ユーザーは MFA 要件を満たしています。 ユーザーは他のポリシー要件も満たさなければならない場合があります。

外部認証方法のしくみを示す図。

Microsoft Entra ID を使って新しい外部認証プロバイダーを構成する

EAM が id_token_hint を発行するには、統合を代表するアプリケーションが必要です。 アプリケーションは次の 2 つの方法で作成できます。

  • 外部プロバイダーを使う各テナントに作成します。
  • 1 つのマルチテナント アプリケーションとして作成します。 特権ロール管理者は、テナントの統合を有効にするために同意を付与する必要があります。

マルチテナント アプリケーションを使うと、各テナントでの構成ミスの可能性が低くなります。 また、プロバイダーは、各テナントに変更を加えるのではなく、応答 URL などのメタデータを 1 か所で変更できるようになります。

マルチテナント アプリケーションを構成するには、プロバイダー管理者はまず次のことを行う必要があります。

  1. Microsoft Entra ID テナントがまだない場合は、作成します。

  2. テナントにアプリケーションを登録します。

  3. アプリケーションのサポートされているアカウントの種類を次のように設定します: 任意の組織ディレクトリのアカウント (任意の Microsoft Entra ID テナント - マルチテナント)。

  4. 委任されたアクセス許可 openid と Microsoft Graph の profile プロファイルをアプリケーションに追加します。

  5. このアプリケーションではスコープを公開しないでください。

  6. 外部 ID プロバイダーの有効な authorization_endpoint URL をそのアプリケーションに応答 URL として追加します。

    Note

    プロバイダーの探索ドキュメントで提供される authorization_endpoint は、アプリケーションの登録のリダイレクト URL として追加する必要があります。 それ以外の場合は、次のエラーが表示されます。"ENTRA IDSTS50161: 外部クレーム プロバイダーの認可 URL を検証できませんでした。"

アプリケーションの登録プロセスでは、いくつかのプロパティを持つアプリケーションが作成されます。 このシナリオでは、これらのプロパティが必要です。

プロパティ 説明
Object ID プロバイダーは、Microsoft Graph でオブジェクト ID を使って、アプリケーション情報のクエリを実行できます。
プロバイダーはオブジェクト ID を使って、プログラムでアプリケーション情報を取得および編集できます。
アプリケーション ID プロバイダーは、アプリケーション ID をアプリケーションの ClientId として使用できます。
ホーム ページ URL プロバイダーのホーム ページ URL は何にも使われませんが、アプリケーションの登録の一部として必要です。
返信 URL プロバイダーの有効なリダイレクト URL。 1 つは、プロバイダーのテナントに設定されたプロバイダー ホスト URL と一致する必要があります。 登録された応答 URL の 1 つは、Microsoft Entra ID がホスト URL の OIDC 探索を通じて取得する authorization_endpoint のプレフィックスと一致する必要があります。

各テナントのアプリケーションも、統合をサポートする有効なモデルです。 シングルテナント登録を使う場合、テナント管理者は、シングルテナント アプリケーション用に上記の表のプロパティを使ってアプリケーションの登録を作成する必要があります。

Note

EAM を使うテナントでは、アプリケーションに対する管理者の同意が必要です。 同意が付与されていない場合、管理者が EAM を使おうとすると、次のエラーが表示されます。AADSTS900491: サービス プリンシパル <お使いのアプリ ID> が見つかりません。

省略可能な要求の構成

プロバイダーは、id_token のオプションのクレームを使って、さらに多くのクレームを構成できます。

Note

アプリケーションの作成方法に関係なく、プロバイダーはクラウド環境ごとにオプションのクレームを構成する必要があります。 マルチテナント アプリケーションがグローバル Azure と米国政府向け Azure に使われている場合、各クラウド環境には別々のアプリケーションとアプリケーション ID が必要です。

EAM を Microsoft Entra ID に追加する

外部 ID プロバイダー情報は、各テナントの認証方法のポリシーに格納されます。 プロバイダー情報は externalAuthenticationMethodConfiguration 型の認証方法として格納されます。

各プロバイダーには、ポリシーのリスト オブジェクトに 1 つのエントリが含まれます。 各エントリは次の内容を持つ必要があります。

  • 方法が有効かどうか
  • 方法を使用できる対象グループ
  • 方法を使用できない除外グループ

条件付きアクセス管理者は、MFA 許可が必要なポリシーを作成して、ユーザー サインインの MFA 要件を設定できます。 現在、外部認証方法は認証強度でサポートされていません。

Microsoft Entra 管理センターで外部認証方法を追加する方法の詳細については、「Microsoft Entra ID で外部認証方法を管理する (プレビュー)」を参照してください。

Microsoft Entra ID とプロバイダーのやり取り

次のセクションでは、プロバイダーの要件について説明し、プロバイダーとの Microsoft Entra ID のやり取りの例を示します。

プロバイダー メタデータの検出

外部 ID プロバイダーは、OIDC 探索エンドポイントを提供する必要があります。 このエンドポイントは、より多くの構成データを取得するために使われます。 well-known/oidc-configuration を含む、"完全な" URL は、EAM の作成時に構成される探索 URL に含める必要があります。

エンドポイントは、そこでホストされているプロバイダー メタデータ JSON ドキュメントを返します。 エンドポイントは、有効なコンテンツ長ヘッダーも返す必要があります。

次の表に、プロバイダーのメタデータに存在する必要があるデータを示します。 この機能拡張シナリオでは、これらの値が必要です。 JSON メタデータ ドキュメントにはさらに多くの情報が含まれる場合があります。

プロバイダー メタデータの値を含む OIDC ドキュメントについては、プロバイダー メタデータに関するページを参照してください。

メタデータ値 Value Comments
発行者 この URL は、探索に使われるホスト URL と、プロバイダーのサービスによって発行されたトークン内の iss クレームの両方に一致する必要があります。
authorization_endpoint Microsoft Entra ID が承認のために通信するエンドポイント。 このエンドポイントは、許可されたアプリケーションの応答 URL の 1 つとして存在する必要があります。
jwks_uri プロバイダーによって発行された署名を検証するために必要な公開キーを Microsoft Entra ID が見つけることができる場所。
[!注意]
指定されたキーの X.509 表現を提供するには、JSON Web Key (JWK) x5c パラメーターが存在する必要があります。
scopes_supported openid 他の値も含めることができますが、必須ではありません。
response_types_supported id_token 他の値も含めることができますが、必須ではありません。
subject_types_supported
id_token_signing_alg_values_supported Microsoft は RS256 をサポートしています
claim_types_supported normal このプロパティは省略可能ですが、存在する場合は通常の値を含める必要があります。他の値も含まれる場合があります。
http://customcaserver.azurewebsites.net/v2.0/.well-known/openid-configuration
{
  "authorization_endpoint": "https://customcaserver.azurewebsites.net/api/Authorize",
  "claims_supported": [
    "email"
  ],
  "grant_types_supported": [
    "implicit"
  ],
  "id_token_signing_alg_values_supported": [
    "RS256"
  ],
  "issuer": "https://customcaserver.azurewebsites.net",
  "jwks_uri": "http://customcaserver.azurewebsites.net/.well-known/jwks",
  "response_modes_supported": [
    "form_post"
  ],
  "response_types_supported": [
    "id_token"
  ],
  "scopes_supported": [
    "openid"
  ],
  "SigningKeys": [],
  "subject_types_supported": [
    "public"
  ]
}

http://customcaserver.azurewebsites.net/.well-known/jwks
{
  "keys": [
    {
      "kty": "RSA",
      "use": "sig",
      "kid": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u",
      "x5t": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u",
      "n": "jq277LRoE6WKM0awT3b...vt8J6MZvmgboVB9S5CMQ",
      "e": "AQAB",
      "x5c": [
        "cZa3jz...Wo0rzA="
      ]
    }
  ]
}

Note

指定されたキーの X.509 表現を提供するには、JWK x5c パラメーターが存在する必要があります。

プロバイダー メタデータのキャッシュ

パフォーマンスを向上させるために、Microsoft Entra ID はキーなどの、プロバイダーから返されたメタデータをキャッシュします。 プロバイダー メタデータのキャッシュにより、Microsoft Entra ID が外部 ID プロバイダーと通信するたびに検出呼び出しが行われるのを防ぎます。

このキャッシュは 24 時間 (1 日) ごとに更新されます。 プロバイダーがキーをロールオーバーする方法は次のとおりです。

  1. 既存の証明書新しい証明書を "jwks_uri" で公開します。
  2. Microsoft Entra ID キャッシュが更新、期限切れ、または更新されるまで (2 日ごと)、既存の証明書を使って署名を続けます。
  3. 新しい証明書を使った署名に切り替えます。

キーのロールオーバーのスケジュールは公開されません。 依存サービスは、即時ロールオーバーと定期ロールオーバーの両方を処理できるように準備する必要があります。 azure-activedirectory-identitymodel-extensions-for-dotnet など、この目的のために構築された専用ライブラリを使うことをお勧めします。 詳細については、Microsoft Entra ID での署名キーのロールオーバーに関するページを参照してください。

Microsoft Entra ID メタデータの検出

プロバイダーは、Microsoft Entra ID によって発行されたトークンを検証するために、Microsoft Entra ID の公開キーを取得する必要もあります。

Microsoft Entra ID メタデータの検出エンドポイント。

  • グローバル Azure: https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration
  • 米国政府向け Azure: https://login.microsoftonline.us/common/v2.0/.well-known/openid-configuration
  • 21Vianet によって運営される Microsoft Azure: https://login.partner.microsoftonline.cn/common/v2.0/.well-known/openid-configuration

トークンの公開キー識別子 (JSON Web Signature (JWS) の "kid") を使うと、jwks_uri プロパティから取得したキーの、どれを Microsoft Entra ID トークン署名の検証に使うかを決定できます。

Microsoft Entra ID によって発行されたトークンの検証

Microsoft Entra ID によって発行されたトークンを検証する方法については、検証と ID トークンに関するページを参照してください。 検出メタデータの使用者に特別な手順はありません。

Microsoft のトークン検証ライブラリには、トークン検証の詳細がすべて文書化されており、ソース コードを参照して確認することもできます。 サンプルについては、Azure Samples のページを参照してください。

検証が成功すると、クレーム ペイロードを操作して、ユーザーとそのテナントの詳細を取得できます。

Note

id_token_hint を検証して、id_token_hint が Microsoft テナントからのものであり、自分の統合を表していることを確認することが重要です。 id_token_hint を完全に検証する必要があります (具体的には、署名、発行者、対象ユーザー、その他の要求値)。

外部 ID プロバイダーへの Microsoft Entra ID 呼び出し

Microsoft Entra ID は、OIDC 暗黙的フローを使って外部 ID プロバイダーと通信します。 このフローを使うと、プロバイダーとの通信は、プロバイダーの承認エンドポイントを使うことによってのみ行われます。 Microsoft Entra ID が要求を行っているユーザーをプロバイダーに知らせるため、Microsoft Entra ID は id_token_hint パラメーターを通じてトークンを渡します。

プロバイダーに渡されるパラメーターのリストが大きいため、この呼び出しは POST 要求を通じて行われます。 大きなリストでは、GET 要求の長さを制限するブラウザーを使用できません。

認証要求のパラメーターを次の表に示します。

Note

次の表に記載されていない限り、要求内の他のパラメーターはプロバイダーによって無視される必要があります。

認証クエリ パラメーター Value 説明
scope openid
response_type Id_token 暗黙的なフローに使われる値。
response_mode form_post 大きな URL に関する問題を回避するために、フォーム POST を使います。 すべてのパラメーターを要求本文で送信することが想定されています。
client_id 外部 ID プロバイダーによって Microsoft Entra ID に指定されたクライアント ID (ABCD など)。 詳細については、外部認証方法の説明に関するページを参照してください。
redirect_url 外部 ID プロバイダーが応答 (id_token_hint) を送信するリダイレクト Uniform Resource Identifier (URI)。
この表の後のを参照してください。
nonce Microsoft Entra ID によって生成されるランダムな文字列。 セッション ID にすることもできます。 指定した場合は、Microsoft Entra ID への応答で返す必要があります。
渡された場合、プロバイダーは応答で状態を返す必要があります。 Microsoft Entra ID は、状態を使って呼び出しに関するコンテキストを保持します。
id_token_hint Microsoft Entra ID によってエンド ユーザーに対して発行され、プロバイダーの便宜のために渡されるトークン。
claims 要求されたクレームを含む JSON BLOB。 このパラメーターの形式の詳細については、OIDC ドキュメントのクレーム要求パラメーターに関するページと、この表の後のを参照してください。
client-request-id GUID 値 プロバイダーはこの値をログして、問題のトラブルシューティングに役立てることができます。

リダイレクト URI の例

リダイレクト Uniform Resource Identifier (URI) はプロバイダーのオフバンドに登録する必要があります。 送信できるリダイレクト URI は次のとおりです。

  • グローバル Azure: https://login.microsoftonline.com/common/federation/externalauthprovider
  • 米国政府向け Azure: https://login.microsoftonline.us/common/federation/externalauthprovider
  • 21Vianet によって運営される Microsoft Azure: https://login.partner.microsoftonline.cn/common/federation/externalauthprovider

MFA を満たす EAM の例

EAM が MFA を満たす認証の例を次に示します。 この例は、Microsoft Entra ID で想定されるクレームが何かをプロバイダーが把握するのに役立ちます。

acr 値と amr 値の組み合わせは、Microsoft Entra ID によって以下を検証するために使われます。

  • 2 番目の要素に使われる認証方法が MFA 要件を満たしている
  • 認証方法は、Microsoft Entra ID へのサインインの最初の要素を完了するために使われる方法とは "種類" が異なる
{
  "id_token": {
    "acr": {
      "essential": true,
      "values":["possessionorinherence"]
    },
    "amr": {
      "essential": true,
      "values": ["face", "fido", "fpt", "hwk", "iris", "otp", "pop", "retina", "sc", "sms", "swk", "tel", "vbm"]
    }
  }
}

既定の Id_token_hint クレーム

このセクションでは、プロバイダーへの要求で id_token_hint として渡されるトークンの必須コンテンツについて説明します。 トークンには、次の表よりも多くのクレームが含まれる場合があります。

要求 説明
iss トークンを構築して返すセキュリティ トークン サービス (STS)、ユーザーが認証された Microsoft Entra ID テナントを特定します。 要求の GUID 部分を使用して、アプリにサインインできるテナントのセットを制限します (該当する場合)。 発行者は、ユーザーがサインインしたテナントの OIDC 検出 JSON メタデータの発行者 URL と一致する必要があります。
aud 対象ユーザーは、Microsoft Entra ID の外部 ID プロバイダーのクライアント ID に設定する必要があります。
exp 有効期限は、発行時間の少し後に期限切れになるように設定されており、時間のずれの問題を回避するのに十分です。 このトークンは認証を目的としていないため、その有効性が要求よりも大幅に長く続く理由はありません。
iat 通常どおりに発行時刻を設定します。
tid テナント ID はプロバイダーにテナントをアドバタイズするためのものです。 これは、ユーザーが属している Microsoft Entra ID テナントを表します。
oid Microsoft ID プラットフォーム内のオブジェクトの不変の識別子。 この場合はユーザー アカウントです。 また、認可チェックを安全に実行するために使うことや、データベースのテーブルのキーとして使うことができます。 この ID は、アプリケーション全体でユーザーを一意に識別します。 同じユーザーがサインインする 2 つの異なるアプリケーションは、oid クレームで同じ値を受け取ります。 そのため、oid は Microsoft Graph などの Microsoft オンライン サービスへのクエリで使用できます。
preferred_username トークンのサブジェクトを識別する、人が判読できる値を提供します。 この値はテナント内で一意であることが保証されておらず、表示のみを目的としています。
sub 発行者のエンド ユーザーのサブジェクト識別子。 トークンが情報をアサートするプリンシパル (アプリケーションのユーザーなど)。 この値は変更不可で、再割り当ても再利用もできません。 そのため、この値を使用すると、トークンを使用してリソースにアクセスする場合などに安全に承認チェックができます。また、データベース テーブルのキーとして使用することもできます。 サブジェクトは Microsoft Entra ID が発行するトークン内に常に存在するため、汎用の認可システムではこの値を使うことをお勧めします。 ただし、サブジェクトはペアワイズ識別子であり、特定のアプリケーション ID に特有です。 "そのため、1 人のユーザーが 2 つの異なるクライアント ID を使って 2 つの異なるアプリケーションにサインインすると、それらのアプリケーションはサブジェクト要求に対して 2 つの異なる値を受け取ります"。 この結果が望ましいかどうかは、アーキテクチャやプライバシーの要件によって異なります。 oid クレーム (テナント内のアプリ全体で同じままです) も参照してください。

ヒント以外に使われないように、トークンは期限切れとして発行されます。 トークンは署名されており、公開された Microsoft Entra ID 検出メタデータを使って検証できます。

Microsoft Entra ID からのオプションのクレーム

プロバイダーが Microsoft Entra ID からのオプションのクレームを必要とする場合は、これらのオプションのクレームを id_token に対して構成できます。 詳細については、オプションのクレームに関する記事を参照してください。

Microsoft では、oid と tid のクレームを使って、プロバイダー側のアカウントを Azure AD のアカウントに関連付けることをお勧めします。 これら 2 つのクレームは、テナント内のアカウントに対して一意であることが保証されています。

id_token_hint の例

ディレクトリ メンバーの id_token_hint の例を次に示します。

{
  "typ": "JWT",
  "alg": "RS256",
  "kid": "C2dE3fH4iJ5kL6mN7oP8qR9sT0uV1w"
}.{
  "ver": "2.0",
  "iss": "https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0",
  "sub": "mBfcvuhSHkDWVgV72x2ruIYdSsPSvcj2R0qfc6mGEAA",
  "aud": "00001111-aaaa-2222-bbbb-3333cccc4444",
  "exp": 1536093790,
  "iat": 1536093791,
  "nbf": 1536093791,
  "name": "Test User 2",
  "preferred_username": "testuser2@contoso.com"
  "oid": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
  "tid": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
  }.

テナントのゲスト ユーザーの id_token ヒントの例を次に示します。

{
  "typ": "JWT",
  "alg": "RS256",
  "kid": "C2dE3fH4iJ5kL6mN7oP8qR9sT0uV1w"
}.{
  "ver": "2.0",
  "iss": "https://login.microsoftonline.com/9122040d-6c67-4c5b-b112-36a304b66dad/v2.0",
  "sub": "mBfcvuhSHkDWVgV72x2ruIYdSsPSvcj2R0qfc6mGEAA",
  "aud": "00001111-aaaa-2222-bbbb-3333cccc4444",
  "exp": 1536093790,
  "iat": 1536093791,
  "nbf": 1536093791,
  "name": "External Test User (Hotmail)",
  "preferred_username": "externaltestuser@hotmail.com",
  "oid": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
  "tid": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
  }.


外部 ID プロバイダーに推奨される操作

外部 ID プロバイダーがこれらの手順を完了することをお勧めします。 この一覧はすべてを網羅しているわけではないため、プロバイダーは必要に応じて他の検証手順を完了する必要があります。

  1. 要求から:
    • 外部 ID プロバイダーへの Microsoft Entra ID 呼び出し」で提供される redirect_uri が公開されていることを確認します。
    • client_id に、Microsoft Entra ID に割り当てられた値 (ABCD など) があることを確認します。
    • プロバイダーはまず、Microsoft Entra ID によって提示された id_token_hint を検証する必要があります。
  2. id_token_hint のクレームから:
    • 必要に応じて、Microsoft Graph を呼び出して、このユーザーに関するその他の詳細をフェッチできます。 この点では、id_token_hint の oidtid のクレームが役立ちます。 id_token_hint で提供されるクレームの詳細については、「既定の id_token_hint クレーム」を参照してください。
  3. 次に、プロバイダーの製品が行うように構築されている他の認証アクティビティを実行します。
  4. 次のセクションで説明するように、ユーザーのアクションの結果やその他の要因に応じて、プロバイダーは応答を構築して Microsoft Entra ID に返します。

プロバイダー応答の Microsoft Entra ID 処理

プロバイダーは、redirect_uri に応答を POST して返す必要があります。 成功した応答では、次のパラメーターを指定する必要があります。

パラメーター 価値 説明
id_token 外部 ID プロバイダーによって発行されたトークン。
要求で渡されたものと同じ状態 (存在する場合)。 それ以外の場合、この値は存在しません。

成功すると、プロバイダーはユーザーに id_token を発行します。 Microsoft Entra ID は、公開された OIDC メタデータを使って、トークンに予期されるクレームが含まれていることを確認し、OIDC が必要とするその他のトークンの検証を行います。

要求 説明
iss 発行者 - プロバイダーの検出メタデータの発行者と一致する必要があります。
aud 対象ユーザー - Microsoft Entra ID クライアント ID。 「外部 ID プロバイダーへの Microsoft Entra ID 呼び出し」の client_id を参照してください。
exp 有効期限 - 通常どおりに設定します。
iat 発行時刻 - 通常どおりに設定します。
sub サブジェクト - この要求を開始するために送信された id_token_hint のサブジェクトと一致する必要があります。
nonce 要求で渡されたものと同じ nonce。
acr 認証要求の acr クレーム。 この値は、この要求を開始するために送信された要求の値の 1 つと一致する必要があります。 返される acr クレームは 1 つだけです。 クレームの一覧については、「サポートされている acr クレーム」を参照してください。
amr 認証に使われる認証方法の amr クレーム。 この値は配列として返される必要があり、返される方法のクレームは 1 つだけです。 クレームの一覧については、「サポートされている amr クレーム」を参照してください。
サポートされている acr クレーム
クレーム メモ
possessionorinherence 認証は、所有または固有性ベースの要素を使って行われる必要があります。
knowledgeorpossession 認証は、知識または所有ベースの要素を使って行われる必要があります。
knowledgeorinherence 認証は、知識または固有性ベースの要素を使って行われる必要があります。
knowledgeorpossessionorinherence 認証は、知識、所有、または固有性ベースの要素を使って行われる必要があります。
サポート情報 認証は、知識ベースの要素を使って行われる必要があります。
possession 認証は、所有ベースの要素を使って行われる必要があります。
inherence 認証は、固有性ベースの要素を使って行われる必要があります。
サポートされている amr クレーム
クレーム メモ
顔認識による生体認証
fido FIDO2 が使われました
fpt 指紋による生体認証
hwk ハードウェアで保護されたキーの所有証明
iris 虹彩スキャンによる生体認証
otp ワンタイム パスワード
pop 所有証明
網膜 網膜スキャンによる生体認証
sc スマート カード
sms 登録された番号へのテキスト メッセージによる確認
swk ソフトウェアで保護されたキーの存在の確認
tel 電話での確認
vbm ボイスプリントによる生体認証

Microsoft Entra ID では、MFA クレームを含むトークンを発行するには MFA が満たされている必要があります。 その結果、別の種類の方法だけが 2 番目の要素の要件を満たすことができます。 前述したように、2 番目の要素を満たすために使用できる別の方法の種類は、知識、所有、固有性です。

Microsoft Entra ID は、次の表に基づいて種類のマッピングを検証します。

Claim メソッド Notes
固有性 顔認識による生体認証
fido 所有 FIDO2 が使われました。 実装によっては生体認証も必要になる場合がありますが、所有の方法の種類は主要なセキュリティ属性であるため、マップされます。
fpt 固有性 指紋による生体認証
hwk 所有 ハードウェアで保護されたキーの所有証明
iris 固有性 虹彩スキャンによる生体認証
otp 所有 ワンタイム パスワード
pop 所有 所有証明
網膜 固有性 網膜スキャンによる生体認証
sc 所有 スマート カード
sms 所有 登録された番号へのテキスト メッセージによる確認
swk 所有 ソフトウェアで保護されたキーの存在の証明
tel 所有 電話での確認
vbm 固有性 ボイスプリントによる生体認証

トークンに問題が見つからなかった場合、Microsoft Entra ID は MFA が満たされていると見なし、エンド ユーザーにトークンを発行します。 それ以外の場合、エンド ユーザーの要求は失敗します。

失敗は、エラー応答パラメーターの発行によって示されます。

パラメーター 価値 説明
エラー access_denied や temporarily_unavailable などの ASCII のエラー コード。

Microsoft Entra ID は、応答に id_token パラメーターが存在し、トークンが有効な場合、要求が成功したと見なします。 それ以外の場合、要求は失敗したと見なされます。 Microsoft Entra ID は、条件付きアクセス ポリシーの要件により、元の認証試行に失敗します。

Microsoft Entra ID は、プロバイダーへのリダイレクトから約 10 分後に、認証試行の状態を破棄します。

Microsoft Entra ID エラー応答処理

Microsoft Azure サービスは、correlationId を使って、さまざまな内部および外部システム間で呼び出しを関連付けます。 これは、複数の HTTP 呼び出しが含まれる可能性がある操作またはフロー全体の共通の識別子として機能します。 いずれかの操作中にエラーが発生した場合、応答には Correlation ID というフィールドが含まれます。

Microsoft サポートまたは同様のサービスに連絡する場合は、テレメトリとログにすばやくアクセスするのに役立つため、この Correlation ID の値を提示してください。

次に例を示します。

ENTRA IDSTS70002: 資格情報の検証でエラーが発生しました。 ENTRA IDSTS50012: 発行者 'https://sts.XXXXXXXXX.com/auth/realms/XXXXXXXXXmfa' からの外部 ID トークンが署名の検証に失敗しました。 トークンの KeyID は 'A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u' です。トレース ID: 0000aaaa-11bb-cccc-dd22-eeeeee333333 関連付け ID: aaaa0000-bb11-2222-33cc-444444dddddd タイムスタンプ: 2023-07-24 16:51:34Z

カスタム コントロールと EAM

Microsoft Entra ID では、顧客が EAM への準備と移行を行っている間、EAM と条件付きアクセスのカスタム コントロールを並行して動作させることができます。

現在、カスタム コントロールを使って外部プロバイダーとの統合を使っている顧客は、それらと、アクセスを管理するために構成した条件付きアクセス ポリシーを引き続き使用できます。 管理者は、移行期間中に条件付きアクセス ポリシーの並列セットを作成することをお勧めします。

  • ポリシーでは、カスタム コントロール許可ではなく、[多要素認証が必要] 許可制御を使う必要があります。

    Note

    組み込みの MFA 強度を含む認証強度に基づく許可制御は、EAM では満たされません。 ポリシーは、[多要素認証が必要] でのみ構成する必要があります。 Microsoft では、認証強度を備えた EAM のサポートに積極的に取り組んでいます。

  • 新しいポリシーは、最初にユーザーのサブセットを使ってテストできます。 テスト グループは、カスタム コントロールを必要とするポリシーから除外され、MFA を必要とするポリシーに含まれます。 MFA を必要とするポリシーが EAM によって満たされていることを管理者が確認したら、管理者は MFA 許可を使うポリシーに必要なすべてのユーザーを含めることができ、カスタム コントロール用に構成されたポリシーをオフに移すことができます。

統合サポート

Microsoft Entra ID との EAM 統合を構築するときに問題が発生した場合は、Microsoft カスタマー エクスペリエンス エンジニアリング (CxE) の独立系ソリューション ベンダー (ISV) がサポートできる場合があります。 CxE ISV チームと連携するには、サポート リクエストを送信してください。

関連情報

用語集

相談 説明
MFA 多要素認証。
EAM 外部認証方法は、ユーザー認証の一部として使われる Microsoft Entra ID 以外のプロバイダーによる認証方法です。
OIDC Open ID Connect は、OAuth 2.0 に基づく認証プロトコルです。
00001111-aaaa-2222-bbbb-3333cccc4444 外部認証方法用に統合された appid の例。

次のステップ

Microsoft Entra 管理センターで EAM を構成する方法の詳細については、Microsoft で外部認証方法を管理する (プレビュー) に関するページを参照してください。