OIDC接続のPKCEを構成する
Connect・Okta Workforce接続は、自動的にPKCEをサポートするよう構成されます。 OIDCのIDプロバイダー()がOIDC Discoveryメタデータを介してPKCEをサポートしている場合、Auth0のデフォルト設定では、使用可能なアルゴリズムのうち最強のものが使用されます。OIDC Discoveryメタデータの詳細については、OpenIDのドキュメントをご確認ください。接続のPKCE構成を表示する
では、特定の接続のPKCE構成を表示できます。- [Authentication(認証)]>[Enterprise(エンタープライズ)] に移動して、OIDCプロバイダー(OpenID ConnectまたはOkta Workforce)を選択します。
- [設定] タブを選択します。
- [General(一般)] セクションで、** [Connection Profile(接続プロファイル)]** フィールドを見つけてください。
- Auth0 Dashboard
- Management API
Auth0 Dashboardでは、接続のPKCE構成を管理できます。
- [Dashboard] > [Authenticate(認証)] > [Enterprise(エンタープライズ)] に移動して、OIDCプロバイダー(OpenID ConnectまたはOkta Workforce)を選択します。
- [Settings(設定)] タブを選択して、** [Connection Profile(接続プロファイル)]** フィールドを見つけてください。
PKCE
プロパティを、下のリストにあるサポート値の一つに設定します。- [Save(保存)] を選択します。
対応されているPKCEの構成値
Auth0では、PKCEの構成に以下の値を使用できます。値 | 説明 |
---|---|
auto | デフォルト値。最も強力なアルゴリズムを使用します。 |
s256 | SHA-256アルゴリズムを使用します。Auth0は現在、RS512トークンをサポートしていません。 |
plain | PKCE仕様で説明されたプレーンテキストを使用します。 |
disabled | PKCEに対するサポートを無効にします。 |
pkce
プロパティをauto
以外の値に設定すると、選択した値がIDプロバイダーでサポートされていない場合には、接続が正常に動作しないことがあります。認証問題のトラブルシューティング以外の目的で、プロパティをdisabled
に設定しないでください。Entra IDでの制限Entra IDにOpenID Connect接続を使用している場合は、接続のメタデータが使用されているハッシュアルゴリズムを公開しないため、
pkce
をs256
に設定する必要があります。現在、Entra ID Enterprise接続はPKCEに対応していません。OIDC接続のクレームをマッピングする
OpenID ConnectとOkta Workforce接続は、IDプロバイダー(IdP)から受け取ったクレームを自動的にマッピングできます。このマッピングは、Auth0提供のライブラリーテンプレートで、または、独自のテンプレートを直接入力することで構成できます。マッピングされたクレームは、自動的にAuth0のIDトークンに追加されるわけではありません。クレームをIDトークンに追加するには、「カスタムクレームを作成する」を参照してください。
マッピングテンプレートのプロパティ
マッピングテンプレートは、以下のリストにあるoptions.attribute_map
オブジェクトプロパティをサポートしています。テンプレートは、有効なキー・値のペアを持つJSON形式でなくてはなりません。
プロパティ | 必須? | 説明 |
---|---|---|
mapping_mode | 必須 | 受信クレームをマッピングするために使用される方法。 |
userinfo_scope | 任意 | IdPのユーザー情報エンドポイントに送信するためのスコープ。 |
attributes | 必須 | 受信クレームのマッピング詳細が含まれるオブジェクト。 |
モードのマッピング
mapping_mode
プロパティは、IdPから受け取るクレームをどのような方法でAuth0のユーザープロファイルにマッピングするかを定義します。mapping_mode
には、以下の値を使用できます。
値 | 説明 |
---|---|
use_map | 提供されたテンプレートを使用してデータをマッピングする。 |
bind_all | IdPが提供したすべてのデータ要素をコピーする。 |
予約済みのクレーム
一部のクレームは、Auth0用に予約されているため、ユーザープロファイルの属性キーとして使うことはできません。mapping_mode
プロパティをbind_all
に設定すると、IdPが値を予約済みのクレームにマッピングしようとする場合があります。その接続でのユーザー認証が妨げられることはありませんが、予約済みクレームに関連付けられた値は、Auth0のユーザープロファイルにマッピングされません 。
mapping_mode
をuse_map
に設定すれば、受け取る予約済みクレームを有効なクレームにマッピングできます。
UserInfoのスコープ
userinfo_scope
プロパティは、要求時にAuth0がIdPへ送信するUserInfoエンドポイントのスコープを定義します。
たとえば、UserInfoエンドポイントの要求時に標準のOIDCスコープとgroups
スコープを送信したい場合には、次のようにします。
Attributes(属性)
attributes
プロパティは、マッピング情報を含むオブジェクトです。この情報に基づいてAuth0がIdPからのクレームを解釈します。マッピング情報は、キー・値のペアとして入力しなければなりません。
左側のキーは、Auth0のユーザープロファイル属性に対応します。右側の値は、IdPからのクレームで、リテラル値、動的なコンテキストオブジェクト、またはその組み合わせとして表されます。動的コンテキストオブジェクトは、おなじみの${variable}
形式で作成されたテンプレート式です。
リテラル値
リテラル値とは、接続の全ユーザーに対して特定のプロファイル属性にマッピングされる静的な値です。 たとえば、SalesForceのOIDC接続を構成していて、すべてのユーザープロファイルに同じSFDC Community IDを割り当てたい場合は、次のようにします。コンテキストオブジェクト
ユーザープロファイル属性に動的な値をマッピングするには、context
オブジェクトを使用します。全プロファイルで静的なリテラル値とは対照的に、個々のプロファイルに一意の値が保管できるようになります。
context
オブジェクトは以下のプロパティをサポートしています。
プロパティ | 説明 |
---|---|
context.connection | 含まれるプロパティ:id :接続の一意の識別子(con_4423423423432423 など)。strategy :接続戦略(oidc など)。 |
context.tokenset | 含まれるプロパティ:access_token :IdPによって送信される検証済みアクセストークン全体。<claim name> :IdPによって送信される任意のIDトークン。 |
context.userinfo | 含まれるプロパティ:<claim name> :IdPのUserInfoエンドポイントによって提供される任意の使用可能なクレーム。 |