Auth0経由でAzure ADのスコープを動的に変更できない制約について
Auth0
Azure AD
Auth0とAzure AD(Microsoft Entra ID)を連携させる際、フロントエンドから動的にMicrosoft Graph APIのスコープ(Mail.Read、Mail.ReadWriteなど)を追加することができない。
技術的制約の詳細
upstream_paramsの仕組み
Auth0のconnection設定におけるupstream_params
は、Identity Provider(IdP)に送るパラメーターを定義する。これには静的パラメーターと動的パラメーターの2種類がある。
静的パラメーター:
動的パラメーター:
scopeが動的に変更できない理由
動的パラメーターはalias
属性を使用して、Auth0の/authorize
エンドポイントに送られたパラメーターをIdPのパラメーターにマッピングする。しかし、使用可能なaliasは以下に限定される:
- acr_values
- audience
- client_id
- display
- id_token_hint
- login_hint
- max_age
- prompt
- resource
- response_mode
- response_type
- ui_locales
scopeはこのリストに含まれていないため、実行時の動的変更は不可能。
フロントエンドのauthorizationParamsとの違い
実際にAzure ADに送られるscopeは、Terraformやconnection設定で定義されたupstream_params
の値となる。