0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Tomcat manager画面をKeycloakで制限する (未完)

Last updated at Posted at 2023-03-30

おことわり

本記事は未完ですが、諸事情のため本日いったん投稿します。

目的

Tomcat manager画面を、 tomcat-users の代わりにKeycloakで認証させたい。

前提

Tomcatサイトはpodmanで作成。本記事の範囲外なので省略する。

実作業

Tomcatへアダプタの導入

まずKeycloakで配布しているKeycloak Tomcat adaptorをダウンロード。

記事に従い $TOMCAT_HOME/lib へ展開する。

再起動してみるが、アダプタがロードされたとはログに一切出ない。
(あとで気づいたが、ログレベルの設定を下げればよかったかも)

半信半疑で、とりあえずValveを追加してみる。

conf/Catalina/localhost/manager.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context antiResourceLocking="false" privileged="true" >
  <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                   sameSiteCookies="strict" />

  <Valve className="org.keycloak.adapters.tomcat.KeycloakAuthenticatorValve"/>

  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

すると、ログに反応あり。

catalina.log
30-Mar-2023 14:42:27.287 INFO [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDescriptor Deploying deployment descriptor [/usr/local/tomcat/conf/Catalina/localhost/manager.xml]
30-Mar-2023 14:42:44.782 INFO [Catalina-utility-2] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
30-Mar-2023 14:42:44.787 WARN [Catalina-utility-2] org.keycloak.adapters.tomcat.AbstractKeycloakAuthenticatorValve.keycloakInit No adapter configuration. Keycloak is unconfigured and will deny all requests.
30-Mar-2023 14:42:44.817 INFO [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDescriptor Deployment of deployment descriptor [/usr/local/tomcat/conf/Catalina/localhost/manager.xml] has finished in [17,530] ms

Keycloak is unconfigured and will deny all requests. とあるので、クライアントアダプタの読み込みは完了しているように見える。

Keycloakでクライアントの追加

Tomcatで使うためのクライアントを、既存のRealmに追加してみる。

ちなみにKeycloakのバージョンは19.0.1(ぜんぜん追従できていない)。

image.png

image.png

image.png

image.png

設定を保存後、 keycloak.json をダウンロードする。

image.png

Tomcatの webapps/manager/WEB-INF 直下に配置し、 /manager へアクセスすると。。。

Keycloak画面へリダイレクトされるが、以下のようなエラーに。

image.png

そういえば、managerで必要なロール manager-gui を作成していなかったので作成。

image.png

ユーザへの割り当てをしようと「Users in role」のタブを開くと、「このタブは直接指定用なので、グループやユーザ設定画面で指定したものはここに表示されないよ」とのこと。

本来はグループやユーザの画面で指定すべきなのだろうと、ユーザ画面へ遷移。

とりあえず個別にユーザ設定する。

image.png

image.png

image.png

割当完了とメッセージを確認。

image.png

相変わらず解消せず。

image.png

30-Mar-2023 15:17:33.112 INFO [http-nio-8080-exec-13] org.keycloak.adapters.KeycloakDeployment.resolveUrls Loaded URLs from https://keycloak.m00m.org/realms/practice1800/.well-known/openid-configuration
30-Mar-2023 15:17:48.403 INFO [http-nio-8080-exec-15] org.keycloak.adapters.authorization.PolicyEnforcer.configurePaths No path provided in configuration.
30-Mar-2023 15:17:48.404 INFO [http-nio-8080-exec-15] org.keycloak.adapters.authorization.PolicyEnforcer.configureAllPathsForResourceServer Querying the server for all resources associated with this application.

Keycloakへの設定取得時に何かに失敗しているようだ。

(つづく)

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?