アノテーション型 OpenIdAuthenticationMechanismDefinition
@TargetSE({TYPESE,METHODSE}) @RetentionSE(RUNTIMESE) public @interface OpenIdAuthenticationMechanismDefinition
OpenId Connect 仕様で定義されている認証コードフローとリフレッシュトークンを実装するコンテナー認証メカニズムを定義し、その実装を有効な CDI Bean として利用できるようにするために使用されるアノテーション。このアノテーションの属性は、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
オプション要素のサマリー
要素の詳細
providerURI
StringSE providerURI
providerMetadata が指定されていない限り必須です。OpenID プロバイダーのメタデータを読み取り / 検出するためのプロバイダー URI。- 戻り値:
- メタデータを読み取るプロバイダ URI
- デフォルト:
- ""
providerMetadata
OpenIdProviderMetadata providerMetadata
providerUri 経由で検出された 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 redirectURI
OpenId Connect Provider によってレスポンスが送信されるリダイレクト URI (コールバック URI)。この URI は、OpenID プロバイダーに事前登録されたクライアントのリダイレクト URI 値の 1 つと正確に一致する必要があります。- 戻り値:
- デフォルト:
- "${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
オプション。認可サーバーが認証と同意のユーザーインターフェースページを表示する方法を指定する表示値。- 戻り値:
- デフォルト:
- jakarta.security.enterprise.authentication.mechanism.http.openid.DisplayType.PAGE
displayExpression
StringSE displayExpression
オプション。表示値を Jakarta Expression Language 式で指定できるようにします。設定されている場合、display で定義された値をオーバーライドします。- 戻り値:
- デフォルト:
- ""
useNonceExpression
StringSE useNonceExpression
オプション。ノンスアクティベーションを Jakarta Expression Language 式として指定できます。設定されている場合、useNonce 値で定義された値が上書きされます。- 戻り値:
- デフォルト:
- ""
useSessionExpression
StringSE useSessionExpression
オプション。Jakarta Expression Language 式によるセッションの構成を許可します。設定すると、useSession 値が上書きされます。- 戻り値:
- デフォルト:
- ""
extraParameters
StringSE[] extraParameters
OAuth プロバイダーに送信される追加オプションの配列。これらは、
"key=value"
、つまりextraParameters={"key1=value", "key2=value2"}
の形式である必要があります。- 戻り値:
- デフォルト:
- {}
extraParametersExpression
StringSE extraParametersExpression
追加パラメーターを Jakarta Expression Language 式として定義できるようにします。設定すると、extraParameters 値が上書きされます。- 戻り値:
- デフォルト:
- ""
jwksConnectTimeoutExpression
StringSE jwksConnectTimeoutExpression
オプション。リモート JWKS の接続タイムアウト (ミリ秒単位) を Jakarta Expression Language 式として定義できるようにします。設定すると、jwksConnectTimeout 値が上書きされます。- 戻り値:
- デフォルト:
- ""
jwksReadTimeoutExpression
StringSE jwksReadTimeoutExpression
オプション。リモート JWKS 取得の読み取りタイムアウト (ミリ秒単位) を Jakarta Expression Language 式として定義できます。設定すると、jwksReadTimeout 値が上書きされます。- 戻り値:
- デフォルト:
- ""
tokenAutoRefreshExpression
StringSE tokenAutoRefreshExpression
オプション。アクセストークンとリフレッシュトークンの自動実行リフレッシュを Jakarta Expression Language 式として定義できるようにします。設定すると、tokenAutoRefresh の値が上書きされます。- デフォルト:
- ""
tokenMinValidityExpression
StringSE tokenMinValidityExpression
オプション。アクセストークンが期限切れと見なされるまでの最小有効時間 (ミリ秒単位) を Jakarta Expression Language 式として定義できます。設定すると、tokenMinValidity 値が上書きされます。- 戻り値:
- デフォルト:
- ""