1
0

tWAS9.0 , Keycloak 構成自動化での備忘録

Last updated at Posted at 2024-01-23

はじめに

tWAS, Keycloak でSAML構成をするのに苦労したところを同じことを調べなくて良いように残しておきます。

以下のページを更新しました。

spMetadata.xml をJSON形式に変換

を参考に試しましたが、なぜか実行できませんでした。各コマンドを手動で1行づつ実行してたのが原因でした。まとめてはりつけて実行することで実行できました。わかってしまうとどうってことないのですが、気づくのに時間がかかったりします。

ポイント:TOKENは有効期限があるのですぐに使えるようにしましょう。

貼り付け用メモ

export ACCESS_HOST=`hostname`
export TOKEN_URL=http://$ACCESS_HOST:8080/auth/realms/master/protocol/openid-connect/token
export AUTH="Authorization: bearer $(curl -s -d client_id=admin-cli -d username=admin -d password=password -d grant_type=password ${TOKEN_URL} | jq -r '.access_token')"
export CONVERTER_URL="http://$ACCESS_HOST:8080/auth/admin/realms/pdprof/client-description-converter"
export CLIENT_JSON=$(curl -X POST -H "${AUTH}"  -H 'content-type: application/json' ${CONVERTER_URL} --data-binary @spMetadata-was90.xml)
echo $CLIENT_JSON

kcadm でのクライアント登録

を参考にCLIで情報を確認します。以下のような情報を用意して作業しやすくします。

CLI使うシェルを開始

podman exec -it kc bash

環境変数などを設定

KEYCLOAK_USER=admin
KEYCLOAK_PASSWORD=password
KCADM=/opt/jboss/keycloak/bin/kcadm.sh
alias kcadm=/opt/jboss/keycloak/bin/kcadm.sh

実行するコマンドの元(引数を変えたりして試す)更新したい attribute名などを確認します。手動で作成して出来上がったデータになるようにコマンドを準備します。

kcadm get clients -r pdprof --server http://localhost:8080/auth --realm master --user $KEYCLOAK_USER --password $KEYCLOAK_PASSWORD

分かったら引数を変えつつうまく作成(更新)できるか試します。

kcadm create clients -r pdprof -f /tmp/client_was90.json -s "attributes={\"saml.client.signature\":\"false\"}" -i --server http://localhost:8080/auth --realm master --user $KEYCLOAK_USER --password $KEYCLOAK_PASSWORD

wsadmin の AdminConfig を使った更新

wsadminを実行してコマンドラインに入ります。

/opt/IBM/WebSphere/AppServer/bin/wsadmin.sh

qiita で紹介しているWASの場合、管理ユーザーは以下のようにしています。

wsadmin
passw0rd

security.xml などのWAS構成ファイルで大まかなObject名を確認するか全部のlistをしてオブジェクト名を確認します。

更新したいオブジェクトがみつけるのに、listの戻り値を一つにしてattributeから更新するものをみつけます。

print AdminConfig.list('Security')
# (cells/DefaultCell01|security.xml#Security_1)
security = AdminConfig.list('Security')
print AdminConfig.show(security)
print AdminConfig.showall(security)

みつけた attribute を更新します。

AdminConfig.modify(security, [['appEnabled', 'true']])
AdminConfig.save()

tWAS9.0 docker イメージの key.p12 パスワード

tWASの key.p12 デフォルトパスワードは WebAS ですが、dockerイメージでは変更されていました。文書にはありませんでしたが、スクリプトで更新しているのを見つけました。開けなくなってあせりました。

現時点(2024/1/23) では KEYSTORE_PASSWORDファイルは使用できていないようなので /tmp/keystorepasswordupdated を見る必要があります。

cat /tmp/keystorepasswordupdated

私の用意しているgithubのスクリプトも動作のすべては説明できていないので、必要なら実行ファイルをみてみるのは有効です。

まとめ

同じような苦労をしないように、今回知る事のできた内容をまとめました。

1
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
1
0