claimとscopeを追加して取得してみる
はじめに
Keycloak上で新しいclaimと、それを取得できる新しいscopeを定義し、Spring Securityを使って参照してみます。
KeycloakをIdPにしてSpring Security OAuth 2.0 Login/Client を試してみる で作成したコードをベースにしています。
今回のコードはこちらです:
Keycloak上の設定手順
ユーザ属性(claim)追加
KeycloakをIdPにしてSpring Security OAuth 2.0 Login/Client を試してみる のときと同様に、管理者でログインします。
Users 設定画面から以前作成したユーザ myuser の編集を行います。
myuser の編集画面で Attrributes タブを開き、次のレコードを作成し、保存します。
| Key | fav-number |
| Value | 8 |
scope追加
Client Scopesを選択し、表の右上 Create ボタンを押します。
次の情報を入力し、 Save します。
| Name | extrainfo |
つづいて Mappers タブを開きます。 Create ボタンを押し、次の情報を入力します。
| Name | extrainfo mapper |
| Mapper Type | User Attribute |
| User Attribute | fav-number |
| Token Claim Name | fav-number |
| Claim JSON Type | int |
| Add to ID token | OFF |
| Add to access token | OFF |
| Add to usrinfo | ON (デフォルトのまま) |
クライアントから取得できるようにする
Clients 画面で myclient を選択し、 Client Scopes タブを開きます。
Optional Client Scopes で、 extrainfo を Assined Optional Client Scopes に移します。
Spring Bootの設定
scope追加
application.yml で設定している registration に、今回追加で取得するscope extrainfo 追加します。
application.yml
|
|
取得した情報を表示してみる
コントローラで情報を取得してみます。
|
|