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>



  • No labels