- KeycloakでOpenSSLで生成した自前の署名鍵を利用する方法についてメモする。
署名鍵(公開鍵・秘密鍵)の生成
OpenSSLを利用して、署名用(RSA)の秘密鍵と公開鍵を生成する。
-
秘密鍵の生成
# PEM形式の秘密鍵を生成する。 openssl genrsa -out jwt-private-key.pem 2048
-
公開鍵の生成
# DER形式の公開鍵を生成する。 openssl rsa -in jwt-private-key.pem -pubout -outform DER -out jwt-public-key.der
署名鍵の設定
- Keycloakコンソールからレルム設定画面を開く。
- 「
Keys
」->「Providers
」を選択し、「Add keystore...
」からrsa
を選択する。 - 以下の項目を入力し、「
Save
」する。-
Priority
(鍵設定の優先度) :100
-
Private RSA Key
(秘密鍵):前述の手順で作成した「jwt-private-key.pem
」ファイルを選択する。
-
確認方法
- IDトークンを発行する。
- 1で発行したIDトークンをデコードし、ヘッダー部を確認する。
- 前述の手順で設定した署名鍵に対応する
kid
が設定されている。
- 前述の手順で設定した署名鍵に対応する