暗黙的な許可フローは、サーバーが POST データの安全な処理を制御できる従来の Web アプリケーションを対象としています。 暗黙的な許可フローを使用してトークンを配信するには、主に 2 つの方法があります。response_mode が URL フラグメントとして返されるか、クエリ パラメーターとして (form POST と GET を使用して) 返されます。 response_mode=form_post である暗黙的なフローでは、トークンは HTML 形式の POST を介してクライアントのリダイレクト URI に安全に配信されます。 このメソッドは、トークンが URL フラグメントで公開されないようにします。これにより、ブラウザー履歴または参照元ヘッダーによるトークン漏えいのリスクを回避できます。
The provided value for the input parameter 'response_type' is not allowed for this client. Expected value is 'code'
https
// Line breaks for legibility only
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&response_type=id_token
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&scope=openid
&response_mode=fragment
&state=12345
&nonce=678910
GET https://localhost/myapp/#
code=0.AgAAktYV-sfpYESnQynylW_UKZmH-C9y_G1A
&id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...
&state=12345
署名付き JSON Web トークン (JWT)。 アプリは、このトークンのセグメントをデコードして、サインインしたユーザーに関する情報を要求することができます。 アプリはこの値をキャッシュして表示できますが、承認やセキュリティ境界のためにこの値を使用することはできません。 ID トークンの詳細については、id_token reference を参照してください。 注:openid スコープが要求され、response_type に id_tokens が含まれる場合のみ提供されます。
state
要求に state パラメーターが含まれている場合、同じ値が応答にも含まれることになります。 要求と応答に含まれる状態値が同一であることをアプリ側で確認する必要があります。
警告
この例のトークンを含めて、自分が所有していないすべての API について、トークンの検証や読み取りを行わないでください。 Microsoft サービスのトークンには、JWT として検証されない特殊な形式を使用できます。また、コンシューマー (Microsoft アカウント) ユーザーに対して暗号化される場合もあります。 トークンの読み取りは便利なデバッグおよび学習ツールですが、コード内でこれに対する依存関係を取得したり、自分で制御する API 用ではないトークンについての詳細を想定したりしないでください。
エラー応答
アプリ側でエラーを適切に処理できるよう、 redirect_uri にはエラー応答も送信されます。
https
GET https://localhost/myapp/#
error=access_denied
&error_description=the+user+canceled+the+authentication
パラメーター
説明
error
発生したエラーの種類を分類したりエラーに対処したりする際に使用するエラー コード文字列。
error_description
認証エラーの根本的な原因を開発者が特定しやすいように記述した具体的なエラー メッセージ。
アクセス トークンをサイレントに取得する
これでユーザーをシングルページ アプリにサインインさせたので、Microsoft Graph などの Microsoft ID プラットフォームによってセキュリティ保護された Web API を呼び出すためのアクセス トークンをサイレントに取得できます。 このメソッドを使用すると、token response_type を使用してトークンを既に取得している場合でも、ユーザーをリダイレクトさせて再度サインインさせることなく、その他のリソースのトークンを取得できます。
通常の OpenID Connect/OAuth フローでは、これは Microsoft ID プラットフォームの /token エンドポイントに要求を発行することによって行います。 非表示の iframe でこの要求を実行し、他の Web API 用の新しいトークンを取得できます。
https
// Line breaks for legibility only
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=00001111-aaaa-2222-bbbb-3333cccc4444&response_type=token
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&scope=https%3A%2F%2Fgraph.microsoft.com%2Fuser.read
&response_mode=fragment
&state=12345
&nonce=678910
&prompt=none
&login_hint=myuser@mycompany.com
OpenID Connect end_session_endpoint を使用すると、ユーザーのセッションを終了させ、Microsoft ID プラットフォームによって設定された Cookie をクリアする要求がアプリから Microsoft ID プラットフォームへ送信されます。 ユーザーが Web アプリケーションから完全にサインアウトするには、アプリがユーザーとのセッションを終了し (通常、トークン キャッシュをクリアするか Cookie を切断する)、ブラウザーを以下にリダイレクトする必要があります。
Découvrez comment l’ID externe Microsoft Entra peut fournir des expériences de connexion sécurisées et transparentes pour vos consommateurs et clients professionnels. Explorez la création du locataire, l’inscription d’applications, la personnalisation des flux et la sécurité des comptes.