次の方法で共有


Microsoft ID プラットフォームの管理者の同意

一部のアクセス許可は、テナント内で付与する前に管理者の同意が必要です。 管理者の同意エンドポイントを使用して、テナント全体にアクセス許可を付与することもできます。

通常、管理者の同意エンドポイントを使用するアプリケーションを構築する場合は、アプリ側に管理者がアプリのアクセス許可を承認できるページやビューが必要です。 このページは、アプリのサインアップのフローの一部、アプリの設定の一部、または専用の "接続" フローにすることができます。 多くの場合、ユーザーが職場または学校の Microsoft アカウントでサインインした後にのみ、アプリがこの "接続" ビューを表示することが合理的です。

ユーザーをアプリにサインインさせる場合、管理者に必要なアクセス許可の承認を求める前に、管理者が所属する組織を特定できます。 絶対に必要というわけではないものの、組織ユーザーにとってより直感的なエクスペリエンスを作成するのに役立ちます。

ディレクトリ管理者にアクセス許可を要求する

組織の管理者にアクセス許可を要求する準備ができたら、ユーザーを Microsoft ID プラットフォーム 管理者の同意エンドポイントにリダイレクトできます。

https://login.microsoftonline.com/{tenant}/v2.0/adminconsent
        ?client_id=00001111-aaaa-2222-bbbb-3333cccc4444
        &scope=https://graph.microsoft.com/Calendars.Read https://graph.microsoft.com/Mail.Send
        &redirect_uri=http://localhost/myapp/permissions
        &state=12345
パラメーター 条件 説明
tenant 必須 アクセス許可を要求するディレクトリ テナント。 GUID またはフレンドリ名形式で指定することも、例に示すように organizations で一般的に参照することもできます。 個人アカウントはテナントのコンテキストを除いて管理者の同意を提供できないため、"共通" を使用しないでください。 テナントを管理する個人用アカウントとの最善の互換性を確保するには、可能であればテナント ID を使用します。
client_id 必須 [Microsoft Entra 管理センター - アプリの登録] エクスペリエンスからアプリに割り当てられたアプリケーション (クライアント) ID
redirect_uri 必須 アプリが処理するために応答を送信するリダイレクト URI。 アプリケーション登録ポータルで登録したリダイレクト URI のいずれかと完全に一致させる必要があります。
state 推奨 要求に含まれ、かつトークンの応答として返される値。 任意のコンテンツの文字列を指定することができます。 この状態は、認証要求の前にアプリ内でユーザーの状態 (表示中のページやビューなど) に関する情報をエンコードする目的に使用します。
scope 必須 アプリケーションによって要求されるアクセス許可のセットを定義します。 静的スコープ ( /.default を使用) または動的スコープのいずれかを指定できます。 これには、OIDC スコープ (openidprofileemail) を含めることができます。

現在 Microsoft Entra ID では、テナント管理者がサインインして、要求を完了する必要があります。 管理者は、 scope パラメーターで要求したすべてのアクセス許可を承認するように求められます。 静的 (/.default) 値を使用した場合、v1.0 管理者の同意エンドポイントと同様に機能し、必要なアクセス許可 (ユーザーとアプリの両方) で見つかったすべてのスコープに対して同意を要求します。 アプリのアクセス許可を要求するには、 /.default 値を使用する必要があります。 /.defaultを使用するときに管理者の同意画面で常に特定のアクセス許可を管理者に表示させたくない場合は、必要なアクセス許可セクションにアクセス許可を配置しないことをお勧めします。 代わりに、動的同意を使用して、 /.defaultを使用するのではなく、実行時に同意画面に表示するアクセス許可を追加できます。

成功応答

管理者がアプリのアクセス許可を承認した場合、成功した応答は次のようになります。

http://localhost/myapp/permissions
    ?admin_consent=True
    &tenant=aaaabbbb-0000-cccc-1111-dddd2222eeee
    &scope=https://graph.microsoft.com/Calendars.Read https://graph.microsoft.com/Mail.Send
    &state=12345
パラメーター 説明
tenant アプリケーションに要求されたアクセス許可を GUID 形式で付与したディレクトリ テナント。
state トークン応答にも返される要求に含まれる値。 任意のコンテンツの文字列を指定することができます。 状態は、認証要求が発生する前のユーザーの状態 (ページやビューなど) に関する情報をエンコードするために使用されます。
scope アプリケーションに対するアクセス権が付与されたアクセス許可のセット。
admin_consent Trueに設定されます。

Warnung

ユーザーの認証または承認には、 パラメーターのtenant 値を使用しないでください。 テナント ID の値は、アプリへの応答を偽装するために、不適切なアクターによって更新および送信できます。 これにより、アプリケーションがセキュリティ インシデントに公開される可能性があります。

エラー応答

http://localhost/myapp/permissions
        ?admin_consent=True
        &error=consent_required
        &error_description=AADSTS65004%3a+The+resource+owner+or+authorization+server+denied+the+request.%0d%0aTrace+ID%3a+0000aaaa-11bb-cccc-dd22-eeeeee333333%0d%0aCorrelation+ID%3a+8478d534-5b2c-4325-8c2c-51395c342c89%0d%0aTimestamp%3a+2019-09-24+18%3a34%3a26Z
        &state=12345

正常な応答に表示されるパラメーターに追加すると、エラー パラメーターは次のようになります。

パラメーター 説明
error 発生したエラーの種類を分類したりエラーに対処したりする際に使用するエラー コード文字列。
error_description 開発者がエラーの根本原因を特定するのに役立つ特定のエラー メッセージ。
state トークン応答にも返される要求に含まれる値。 任意のコンテンツの文字列を指定することができます。 状態は、認証要求が発生する前のユーザーの状態 (ページやビューなど) に関する情報をエンコードするために使用されます。
admin_consent この応答が管理者の同意フローで発生したことを示す True に設定されます。

次のステップ