1

このcurlコマンドを使用して、キークロークでユーザーのセッションの詳細を取得しました:

curl -X GET \
-H 'Authorization: Bearer $TOKEN' \
http://192.168.X.X:8080/auth/admin/realms/$REALM_NAME/users/$ID_OF_CLIENT/sessions

それに応じて、次のようになります。

[{
  "id":"194d6b10-5b94-42c3-86d8-4d1780f70f52",
  "username":"admin",
  "userId":"e258f775-3597-4a72-a490-7bgd7c1cdfdb",
  "ipAddress":"192.168.X.X",
  "start":1589006511000,
  "lastAccess":1589007060000,
  "clients" :
       {
         "53d98bf8-fffd-484c-aae8-500a7cf7a8b6":"authz-servlet",
         "9bc56128-972e-41fe-8946-3ce4b5660e24":"authz-client-app3"
       }
 }]

ここで、ログイン ユーザーのブラウザ バージョンなど、セッション情報にさらに詳細を追加する必要があります。これらの詳細を追加する方法はありますか?

4

1 に答える 1

0

userinfoOIDC エンドポイントを確認することをお勧めします。現在のアプローチ (管理トークンで Admin REST Api を使用) と比較すると、エンド ユーザーに対して発行されたトークンを受け入れます。問題がなければ、必要に応じてエンドポイントの出力をカスタマイズできます。クライアント設定の [ Client Scopes ] タブと[Mappers]タブでカスタマイズできます。

デフォルトで利用可能な一連のマッパーは非常に幅広いですが、デフォルトでは Keycloak は UA に関する情報を保存しないため、ユーザー セッションに保存するよりも、ログイン フロー中に抽出する独自のロジックを開発する必要があります。Keycloak Java SPI の実装に慣れていない場合は、JS マッパーを介してロジックを実装してみてください。

https://www.keycloak.org/docs/latest/server_admin/index.html#_protocol-mappers_oidc-user-session-note-mappers https://www.keycloak.org/docs/latest/server_development/#_script_providers

私の知る限り、いくつかの例はkeycloak githubにあるはずです

于 2020-05-11T08:54:03.513 に答える