やりたいこと
こんなことをしたときに、
こんなことがありました。
- PEM import not working properly on SAML Signing keys config · Issue #39094 · keycloak/keycloak
- Bug: SAML Client Signing Certificate Not Stored via Admin Console (26.1.3) · keycloak/keycloak · Discussion #39232
Bug: SAML Client Signing Certificate Not Stored via Admin Console (26.1.3) · keycloak/keycloak · Discussion #39232 にワークアラウンドが記載されていたので試す。
前提
Spring Boot で SAML 認証をする(署名無しバージョン) - mikoto2000 の日記 を実施済み。
やったこと
myrealm
の適切なユーザーにロールadmin
を割り当てる(今回はmikoto
ユーザーにadmin
ロールを割り当てた)keycloak が起動しているコンテナに接続
docker exec -it f29b1a6f3f70 bash
kcadm.sh
にパスを通すexport PATH=$PATH:/opt/keycloak/bin/
mikoto
でmyrealm
にログインkcadm.sh config credentials --server http://localhost:8080 --realm master --user mikoto --password <PASSWORD>
クライアント
saml-sp
の id を確認- JSON から頑張って探す
- 今回は
dafe91db-651f-4728-90f0-0faf2228fa38
だった
kcadm.sh get clients --server http://localhost:8080 --realm myrealm
saml-sp
にクライアント証明書を設定MIID...(略)
の部分をクライアント証明書の文字列に置き換える
kcadm.sh update clients/dafe91db-651f-4728-90f0-0faf2228fa38 --server http://localhost:8080 --realm myrealm -s 'attributes={"saml.signing.certificate": "MIID...(略)"}'
適用されたかの確認
saml.signing.certificate
が更新されていれば OK.
kcadm.sh get clients/dafe91db-651f-4728-90f0-0faf2228fa38 --server http://localhost:8080 --realm myrealm
動作確認
Keycloak の myrealm
-> Clients
->
saml-sp
-> Keys
->
Signing keys config
->
Client signeture required
を On
にしても、
Spring Boot の SAML 認証が通るようになった。 OK.
0 件のコメント:
コメントを投稿