アノテーションインターフェース OpenIdAuthenticationMechanismDefinition
このアノテーションの属性は、OpenID 接続クライアント構成を構成します。型 String の属性の Expression Language 式が評価されます。
ユーザーに関するクレームを取得するために、ユーザーエンドポイントを利用できます。
OpenID 用語では、認証メカニズムは「エンドユーザー」(呼び出し元) を「OpenId 接続プロバイダー」(アイデンティティープロバイダー) にリダイレクトする「依拠当事者」(RP) になることに注意してください。認証はユーザーと ID プロバイダーの間で行われ、この認証の結果が認証メカニズムに戻されます。
これは、次の非規範的な図に示されています。
+--------+ +--------+ | | | | | |---------------(1) Authentication Request------------->| | | | | | | | +--------+ | | | | | End- |<--(2) Authenticates the End-User---->| | | RP | | User | | OP | | | +--------+ | | | | | | | |<---------(3) Returns Authorization code---------------| | | | | | | |---------(3b) | | | | | Redirect to original resource (if any) | | | |<----------+ | | | | | | | |------------------------------------------------------>| | | | (4) Request to TokenEndpoint for Access / Id Token | | | OpenId |<------------------------------------------------------| OpenId | | Connect| | Connect| | Client | ----------------------------------------------------->|Provider| | | (5) Fetch JWKS to validate ID Token | | | |<------------------------------------------------------| | | | | | | |------------------------------------------------------>| | | | (6) Request to UserInfoEndpoint for End-User Claims | | | |<------------------------------------------------------| | | | | | +--------+ +--------+
この認証メカニズムとプロトコルの仕組みにより、ID ストアを明示的に定義する必要はありません。ただし、認証メカニズムは、IdentityStoreHandler を呼び出して、"TokenEndpoint" から受け取ったトークンを検証する必要があります。これにより、追加の ID ストアやカスタム IdentityStoreHandler を最終的な認証結果に参加させることができます (例: 追加のグループを追加する)。
- 作成者:
- Gaurav Gupta, Rudy De Busscher
ネストされたクラスの概要
ネストされたクラス修飾子と型クラス説明static @interface同じ型で複数のOpenIdAuthenticationMechanismDefinitionアノテーションを有効にします。static @interfaceオプション要素の概要
オプション要素修飾子と型オプションの要素説明オプション。必須。必須。オプション。オプション。StringSE[]OAuth プロバイダーに送信される追加オプションの配列。追加パラメーターを Jakarta Expression Language 式として定義できるようにします。intオプション。オプション。intオプション。オプション。オプション。オプション。オプション。providerUri 経由で検出された OpenID Connect プロバイダーのメタデータプロパティをオーバーライドします。providerMetadata が指定されていない限り必須です。ClassSE<?>[]qualifier annotationsのリスト。booleanオプション。オプション。OpenId Connect Provider によってレスポンスが送信されるリダイレクト URI (コールバック URI)。オプション。オプション。StringSE[]オプション。オプション。booleanオプション。オプション。intオプション。オプション。booleanオプション。オプション。booleanオプション。オプション。
要素の詳細
providerURI
StringSE providerURIproviderMetadata が指定されていない限り必須です。OpenID プロバイダーのメタデータを読み取り / 検出するためのプロバイダー URI。- 戻り値:
- メタデータを読み取るプロバイダ URI
- デフォルト:
- ""
providerMetadata
OpenIdProviderMetadata providerMetadataproviderUri 経由で検出された OpenID Connect プロバイダーのメタデータプロパティをオーバーライドします。- 戻り値:
- OpenIdProviderMetadata インスタンス。
- デフォルト:
- @jakarta.security.enterprise.authentication.mechanism.http.openid.OpenIdProviderMetadata
clientId
StringSE clientId必須。アプリケーションが登録されたときに発行されたクライアント識別子。- 戻り値:
- クライアント識別子
- デフォルト:
- ""
clientSecret
StringSE clientSecret必須。クライアントシークレット。コード内で値がハードコードされないように、式を使用してこれを設定することを強くお勧めします。
- 戻り値:
- クライアントシークレット
- デフォルト:
- ""
claimsDefinition
ClaimsDefinition claimsDefinitionオプション。クレーム定義は、呼び出し元名とグループのカスタムクレームマッピングを定義します。- 戻り値:
- デフォルト:
- @jakarta.security.enterprise.authentication.mechanism.http.openid.ClaimsDefinition
logout
LogoutDefinition logoutオプション。ログアウト定義は、ログアウトおよび中継側セッション管理構成を定義します。- 戻り値:
- デフォルト:
- @jakarta.security.enterprise.authentication.mechanism.http.openid.LogoutDefinition
redirectURI
StringSE redirectURIOpenId Connect プロバイダーによってレスポンスが送信されるリダイレクト URI (コールバック URI)。この URI は絶対的である必要があり、OpenID プロバイダーに事前登録されているクライアントのリダイレクト URI 値の 1 つと正確に一致する必要があります。値には、暗黙の文字列変数 baseURL を含めることができる Jakarta Expression Language 3.0 式を指定できます。この変数には、OpenID Connect 認証メカニズムがインストールされているアプリケーションのホストおよびコンテキストパスが含まれています。この変数を使用すると、OpenID Connect 仕様で要求されている絶対 URL を簡単に作成できます。
例:
redirectURI = "${baseURL}/Callback"- `baseURL` 変数と "/Callback" 文字列を複合式で連結します。redirectURI = "${baseURL += oidcConfig.redirectCallback}"- `baseURL` 変数と Bean の `redirectCallback` プロパティ `oidcConfig` を 1 つの式で連結しますredirectURI = "${baseURL}#{oidcConfig.redirectCallback}"- `baseURL` 変数と Bean `oidcConfig` の `redirectCallback` プロパティを複合式で連結します。`redirectCallback` プロパティは、各リクエスト中に遅延式として評価されます。
- 戻り値:
- デフォルト:
- "${baseURL}/Callback"
redirectToOriginalResource
boolean redirectToOriginalResourceオプション。呼び出し元 (エンドユーザー) を、redirectURI属性によって定義されたリダイレクト URI から、「ログインして続行」シナリオでエンドユーザーが最初にリクエストしたリソースに自動的にリダイレクトします。元のリクエストされたリソースに到達した後、ランタイムは、
LoginToContinue機能を使用した場合と同じ方法で、cookie、ヘッダー、リクエストメソッド、リクエストパラメーターを含めて、リクエストを元の状態に復元します。- 戻り値:
- デフォルト:
- false
redirectToOriginalResourceExpression
StringSE redirectToOriginalResourceExpressionオプション。redirectToOriginalResourceを Jakarta Expression Language 式として指定できるようにします。設定されている場合、redirectToOriginalResource値によって定義された値をオーバーライドします。- 戻り値:
- デフォルト:
- ""
scope
StringSE[] scopeオプション。スコープ値は、アクセス権限を定義します。OpenID Connect の基本的な (そして必須の) スコープは、openid スコープです。- 戻り値:
- デフォルト:
- {"openid", "email", "profile"}
scopeExpression
StringSE scopeExpressionオプション。スコープ値を Jakarta Expression Language 式として指定できます。Set の場合、スコープによって設定されたすべての値をオーバーライドします。- 戻り値:
- デフォルト:
- ""
responseType
StringSE responseTypeオプション。レスポンス型の値は、使用する処理フローを定義します。デフォルトでは、値は code (認証コードフロー) です。- 戻り値:
- デフォルト:
- " コード "
responseMode
StringSE responseModeオプション。認可エンドポイントからパラメーターを返すために使用されるメカニズムを認可サーバーに通知します。- 戻り値:
- デフォルト:
- ""
prompt
PromptType[] promptオプション。prompt 値は、認可サーバーがユーザーに再認証と同意を求めるプロンプトを表示するかどうかを指定します。値が指定されておらず、ユーザーが以前にアクセスを認可していない場合、ユーザーには同意画面が表示されます。- 戻り値:
- デフォルト:
- {}
promptExpression
StringSE promptExpressionオプション。プロンプト値を Jakarta Expression Language 式として指定できるようにします。Set の場合、プロンプト値によって定義された値をオーバーライドします。- 戻り値:
- デフォルト:
- ""
display
DisplayType displayオプション。認可サーバーが認証と同意のユーザーインターフェースページを表示する方法を指定する表示値。- 戻り値:
- デフォルト:
- PAGE
displayExpression
StringSE displayExpressionオプション。表示値を Jakarta Expression Language 式で指定できるようにします。設定されている場合、display で定義された値をオーバーライドします。- 戻り値:
- デフォルト:
- ""
useNonce
boolean useNonceオプション。リプレイ攻撃を軽減するために使用される文字列値を有効にします。- 戻り値:
- デフォルト:
- true
useNonceExpression
StringSE useNonceExpressionオプション。ノンスアクティベーションを Jakarta Expression Language 式として指定できます。設定されている場合、useNonce 値で定義された値が上書きされます。- 戻り値:
- デフォルト:
- ""
useSession
boolean useSessionオプション。状態を有効にすると、ノンス値と元のリクエストされたリソースデータが HTTP セッションに保存されます。それ以外の場合は Cookie に保存されます。- 戻り値:
- デフォルト:
- true
useSessionExpression
StringSE useSessionExpressionオプション。Jakarta Expression Language 式によるセッションの構成を許可します。設定すると、useSession 値が上書きされます。- 戻り値:
- デフォルト:
- ""
extraParameters
StringSE[] extraParametersOAuth プロバイダーに送信される追加オプションの配列。これらは、
"key=value"、つまりextraParameters={"key1=value", "key2=value2"}の形式である必要があります。- 戻り値:
- デフォルト:
- {}
extraParametersExpression
StringSE extraParametersExpression追加パラメーターを Jakarta Expression Language 式として定義できるようにします。設定すると、extraParameters 値が上書きされます。- 戻り値:
- デフォルト:
- ""
jwksConnectTimeout
int jwksConnectTimeoutオプション。リモート JWKS 検索の接続タイムアウト (ミリ秒単位) を設定します。値は負であってはならず、値がゼロの場合は無限のタイムアウトになります。- 戻り値:
- デフォルト:
- 500
jwksConnectTimeoutExpression
StringSE jwksConnectTimeoutExpressionオプション。リモート JWKS の接続タイムアウト (ミリ秒単位) を Jakarta Expression Language 式として定義できるようにします。設定すると、jwksConnectTimeout 値が上書きされます。- 戻り値:
- デフォルト:
- ""
jwksReadTimeout
int jwksReadTimeoutオプション。リモート JWKS 取得の読み取りタイムアウト (ミリ秒単位) を設定します。値は負であってはならず、値がゼロの場合は無限のタイムアウトになります。- 戻り値:
- デフォルト:
- 500
jwksReadTimeoutExpression
StringSE jwksReadTimeoutExpressionオプション。リモート JWKS 取得の読み取りタイムアウト (ミリ秒単位) を Jakarta Expression Language 式として定義できます。設定すると、jwksReadTimeout 値が上書きされます。- 戻り値:
- デフォルト:
- ""
tokenAutoRefresh
boolean tokenAutoRefreshオプション。アクセストークンとリフレッシュトークンの自動リフレッシュを有効または無効にします。- 戻り値:
true、アクセストークンとリフレッシュトークンが期限切れになったときに自動的にリフレッシュされる場合。
- デフォルト:
- false
tokenAutoRefreshExpression
StringSE tokenAutoRefreshExpressionオプション。アクセストークンとリフレッシュトークンの自動実行リフレッシュを Jakarta Expression Language 式として定義できるようにします。設定すると、tokenAutoRefresh の値が上書きされます。- デフォルト:
- ""
tokenMinValidity
int tokenMinValidityオプション。アクセストークンが期限切れと見なされる前に有効でなければならない最小有効時間をミリ秒単位で設定します。値を負にすることはできません。- 戻り値:
- デフォルト:
- 10000
tokenMinValidityExpression
StringSE tokenMinValidityExpressionオプション。アクセストークンが期限切れと見なされるまでの最小有効時間 (ミリ秒単位) を Jakarta Expression Language 式として定義できます。設定すると、tokenMinValidity 値が上書きされます。- 戻り値:
- デフォルト:
- ""
qualifiers
ClassSE<?>[] qualifiersqualifier annotationsのリスト。これらの修飾子アノテーションを持つ
HttpAuthenticationMechanismインジェクションポイントは、このOpenIdAuthenticationMechanismDefinitionによって生成された Bean を注入します。デフォルト値は
OpenIdAuthenticationMechanismであり、このOpenIdAuthenticationMechanismDefinitionがOpenIdAuthenticationMechanismで修飾された型HttpAuthenticationMechanismの Bean インスタンスを生成することを示します。- 戻り値:
- 修飾子のリスト。
- 導入:
- 4.0
- デフォルト:
- {jakarta.security.enterprise.authentication.mechanism.http.OpenIdAuthenticationMechanismDefinition.OpenIdAuthenticationMechanism.class}