8.2. アーキテクチャー
この例では、FrontendResource
と ProtectedResource
という 2 つの Jakarta REST リソースを使用してアプリケーションがビルドされます。ここで、FrontendResource
は、2 つの方法のいずれかを使用してアクセストークンを ProtectedResource
に伝播します。
- トークンを伝播する前に、OIDC トークン伝播リアクティブフィルターを使用してトークンを取得できます。
- OIDC トークン伝播リアクティブフィルターを使用して、受信したアクセストークンを伝播できます。
FrontendResource
には 4 つのエンドポイントがあります。
-
/frontend/user-name-with-oidc-client-token
-
/frontend/admin-name-with-oidc-client-token
-
/frontend/user-name-with-propagated-token
-
/frontend/admin-name-with-propagated-token
FrontendResource
は、/frontend/user-name-with-oidc-client-token
または /frontend/admin-name-with-oidc-client-token
のいずれかが呼び出されたときに、OIDC トークン伝播 Reactive フィルターを備えた REST クライアントを使用して、ProtectedResource
へのアクセストークンを取得して伝播します。また、FrontendResource
は、/frontend/user-name-with-propagated-token
または /frontend/admin-name-with-propagated-token
のいずれかが呼び出されたときに OpenID Connect Token Propagation Reactive Filter
を備えた REST Client を使用して、現在の受信アクセストークンを ProtectedResource
に伝播します。
ProtectedResource
には 2 つのエンドポイントがあります。
-
/protected/user-name
-
/protected/admin-name
両方のエンドポイントは、FrontendResource
から ProtectedResource
に伝播された受信アクセストークンから展開されたユーザー名を返します。これらのエンドポイントの唯一の違いは、/protected/user-name
の呼び出しは現在のアクセストークンに user
ロールがある場合にのみ許可され、/protected/admin-name
の呼び出しは現在のアクセストークンに admin
ロールがある場合にのみ許可されることです。