Keycloak + .NET で始める認証・認可
最低限の初期設定とトークン取得
Keycloakの初期設定
まずは、Keycloakの初期設定を行います。
※起動方法は前回の記事参照
ブラウザで
http://localhost:8080にアクセスし、Keycloakの管理画面にログインします。ユーザ名、パスワードは、上記の
KEYCLOAK_ADMINとKEYCLOAK_ADMIN_PASSWORDに指定した値でログインできます。
)ログイン後、
Masterレルムが選択されていることを確認します。Add realmをクリックし、新しいレルムを作成します。レルム名を入力し、
Createをクリックします。ここでは、
MyRealmという名前で作成します。レルムが作成されたら、
MyRealmを選択します。Clientsをクリックし、Createをクリックします。Client IDにmy-clientを入力します。Client authenticationをOnにします。Save`をクリックします。
これで、クライアントが作成されました。
my-clientを選択し、Settingsタブをクリックします。Access Typeをconfidentialに変更し、Saveをクリックします。これで、クライアントの設定が完了しました。
トークンエンドポイントの確認
Keycloakのトークンエンドポイントを確認します。
MyRealmを選択します。Clientsをクリックし、my-clientを選択します。Credentialsタブをクリックし、Client Secretの値をコピーします。この値は、後でトークンを取得する際に必要です。
Endpointsタブをクリックし、Token Endpointの値をコピーします。Token Endpointの値をメモ帳などに保存しておきます。この値は、後でトークンを取得する際に必要です。
トークンの取得
.NETアプリケーションでKeyclaokを利用することが目的ですが、
いったん、Powershellを使ってトークンを取得してみます。
1 | $realm = "MyRealm" |
$client_secretには、my-clientのCredentialsタブで設定したClient Secretの値を入力します。
これで、トークンが取得できました。
トークンの確認
取得したトークンをデコードして中身を確認してみます。
1 | $token.access_token | ConvertFrom-Json | Format-List |
トークンの中身が表示されれば、トークンの取得は成功です。
トークンの内容は、jwt.ioなどのサイトで確調してみると、より詳細な情報が確認できます。