条件付きアクセスについて探索する
Microsoft Entra ID の条件付きアクセス機能は、アプリをセキュリティで保護し、サービスを保護するために使用できる方法のうちの 1 つです。 条件付きアクセスを使用することで、開発者やエンタープライズのお客様は、次のようなさまざまな方法でサービスを保護できます。
- 多要素認証
- Intune 登録されているデバイスのみに特定のサービスへのアクセスを許可します。
- ユーザーの場所と IP 範囲を制限します。
条件付きアクセスがアプリに与える影響
ほとんどの場合、条件付きアクセスでは、アプリの動作が変更されたり、開発者からの変更が必要になったりすることはありません。 アプリがサービスのトークンを間接的に要求したり、サイレントに要求したりした場合にのみ、アプリで条件付きアクセス チャレンジを処理するためのコード変更が必要です。 これは、対話型のサインインを要求するだけで実行できる場合があります。
具体的には、次のシナリオでは、条件付きアクセス チャレンジを処理するために、コードが必要になります。
- On-Behalf-Of フローを実行するアプリ
- 複数のサービスとリソースにアクセスするアプリ
- MSAL.js を使用するシングルページ アプリ
- リソースを呼び出す Web アプリ
条件付きアクセス ポリシーはアプリに適用でき、アプリがアクセスする Web API にも適用できます。 シナリオによっては、エンタープライズのお客様は、条件付きアクセス ポリシーをいつでも適用および削除することができます。 新しいポリシーが適用されたときにアプリが引き続き機能するように、チャレンジ処理を実装します。
条件付きアクセスの例
シナリオによっては、条件付きアクセスを処理するためにコードの変更が必要なものと、不要なものがあります。 ここでは、条件付きアクセスを使用して多要素認証を行うシナリオをいくつか紹介します。これにより、違いについての洞察が得られます。
シングル テナントの iOS アプリをビルドし、条件付きアクセス ポリシーを適用するとします。 アプリがユーザーのサインインを処理し、API へのアクセスは要求されません。 ユーザーがサインインすると、ポリシーが自動的に呼び出され、ユーザーは多要素認証を実行する必要があります。
あなたは、中間層サービスを使用してダウンストリーム API にアクセスするアプリを開発しています。 このアプリを使用する会社のお客様は、ダウンストリーム API にポリシーを適用します。 エンド ユーザーがサインインすると、そのアプリは中間層へのアクセスを要求し、トークンを送信します。 中間層では On-Behalf-Of フローが実行され、ダウンストリーム API へのアクセスが要求されます。 この時点では、"チャレンジ" 要求は、中間層に提示されます。 中間層は、条件付きアクセス ポリシーに準拠する必要があるアプリにチャレンジを送り返します。