この機能は非推奨となり、将来のバージョンでは削除される予定です。OAuth 2.0 には JWT ではなく OpenID Connect を使用することをお勧めします。
CAC/PIV カードのユーザーは、ブラウザーで CTP を開き、JWT Access Token for OAuth 2.0 を使用して自動的に認証することができます。この仕組みをセットアップするには、JWT の authorities 配列で CTP のいくつかのロールに特定のパーミッションが付与されていることを確認し、CTP の セキュリティ XML ファイルを変更する必要があります。さらに、ユーザーがログアウトしたときにリダイレクトされるシングルサインオン (SSO) ログアウト URL を設定することもできます。
JWT の authorities 配列で期待される CTP ロール
CTP は、JWT の authorities 配列で次のロールに関連するパーミッションが与えられていることを期待します。
ロール | パーミッション |
---|---|
CTP_ADMIN | すべてのリソースへのフル パーミッション |
CTP_SYSTEM | 許可されたリソースへの read/write/create/execute/delete パーミッション |
CTP_BASIC | 許可されたリソースへの read/execute パーミッション |
CTP セキュリティ XML ファイルの設定
CTP の applicationContext-security.xml ファイルには、JWT access token for OAuth 2.0 を許可するのに必要な要素が含まれていますが、デフォルトではコメント アウトされています。JWT access token for OAuth 2.0 を有効化するには、それらの要素のコメントを解除し、ユーザー固有の設定をいくつか行います。
CTP が Apache Tomcat にデプロイされている場合、applicationContext-security.xml は次の場所にあります。
tomcat/webapps/em/WEB-INF/classes/META-INF/spring/applicationContext-security.xml
このファイルで以下の箇所を変更する必要があります。
pre-authorizationフィルターのコメント解除
pre-authorization フィルターを有効化するには、次の行のコメントを解除します。
<!-- <custom-filter position="PRE_AUTH_FILTER" ref="BearerTokenAuthFilter"/> -->
認証プロバイダーのコメント解除
認証プロバイダーを有効化するには、次の行のコメントを解除します。
<!-- <authentication-provider ref="BearerTokenAuthProvider" /> -->
ベアラー トークン beans のコメント解除および設定
ベアラー トークン beans を有効化するには、次の行のコメントを解除し、JWKS エンドポイントおよびクレームの値を設定します。
- 最初の引数は、認証サーバーの JWKS セット URL に対応します。
- 2 番目の引数 ("usernameClaim") は、ユーザーを識別するのに使用されるクレームに対応します。この引数はオプションであり、指定しない場合は、JWT トークンに埋め込まれた 'subject' がデフォルトの値です。
- 3 番目の引数 ("userRoleClaim") は、ユーザーのロールを識別するのに使用されるクレームに対応します。この引数はオプションであり、指定しない場合は、ユーザーのロールは設定されません。
- JSON オブジェクトがネストされている場合、'.' でキーを区切ります。例: roleOuterKey.roleInnerKey.
<!-- <beans:bean id="BearerTokenAuthProvider" class="com.parasoft.ctp.web.security.CTPBearerTokenAuthenticationProvider"> <beans:constructor-arg><beans:value>http://localhost:8080/.well-known/jwks.json</beans:value></beans:constructor-arg> <beans:constructor-arg name="usernameClaim"><beans:value></beans:value></beans:constructor-arg> <beans:constructor-arg name="userRoleClaim"><beans:value></beans:value></beans:constructor-arg> </beans:bean> <beans:bean id="BearerTokenAuthFilter" class="com.parasoft.ctp.web.security.CTPBearerTokenAuthenticationFilter"> <beans:property name="authenticationManager" ref="authenticationManager"></beans:property> </beans:bean> -->
シングルサインオン (SSO) ログアウト URL のカスタマイズ
シングルサインオン (SSO) ログアウト URL をカスタマイズするには、applicationContext-security.xml の次の bean を変更します。
<beans:bean id="logoutSuccessHandler" class="com.parasoft.ctp.web.security.CTPLogoutSuccessHandler"> <!-- specify a URL that the user will be redirected to after they logout --> <beans:constructor-arg><beans:value></beans:value></beans:constructor-arg> </beans:bean>