ユーザーを認証するために、IBM Security Access Manger を Tomcat 9 と統合する必要があります。IBM SAM パーツ用に適切に構成された Webseal (ジャンクション) があります。ユーザーの資格情報を取得し、SAM サーバーを再度認証し、成功した場合はヘッダーiv-user
、iv-group
、およびを渡しながら Tomcat にリダイレクトしiv-creds
ます。次に、認証を実装し、ユーザーのグループに基づいてアプリへのアクセスを許可するカスタム Tomcat バルブを作成する必要があります。これを行うための最良の方法は何ですか?
私の現在の考えは、アプリケーションorg.apache.catalina.valves.AuthenticatorBase
の で次の設定を使用できるようにを拡張することです。web.xml
<security-constraint>
<web-resource-collection>
<web-resource-name>Application</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>POST</http-method>
<http-method>GET</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>MyRoleName</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
Webseal からのヘッダーを解析し、 を生成するためにorg.apache.catalina.realm.GenericPrincipal
使用してから、特定のレルムに追加された (または に書き込まれたtomcat-users.xml
) ロールへの認証に使用できます。
私はこの認証を実際にどのように実装するかについて少し不安定なので、どんなに基本的なものであっても助けていただければ幸いです。