0

Keycloak (2.3.0.Final) に、ユーザーに関連付けられた権限を ID トークンに含めてもらいたいです。すべての権限をマップするマッパーを作成しようとしましたが、残念ながら、この種の機能を追加するオプションはありません。

誰もこれを行う方法を知っていますか?

4

1 に答える 1

2

友人のおかげで解決しました!

問題は、特定のクライアントに属する承認に関する情報を取得したいということです。現在のバージョンの Keycloak (2.3.0.Final) では、トークンを介してアクセス許可を取得することはできません。これは完全に理にかなっています。

したがって、2 つの選択肢があります。1 つ目は許可チケットを使用する方法で、もう 1 つは Entitlement API を使用する方法です。

だから、私は2番目の選択肢を使用しています:

curl -X GET \
    -H "Authorization: Bearer ${access_token}" \
    "http://localhost:8080/auth/realms/${realm_name}/authz/entitlement/${resource_server_id}"

これはrealm_nameで、レルムに追加された名前 (url で示される) であり、resource_server_idは、クライアント設定で選択された client_id です。

また、最初の選択肢はパーミッション チケットで使用されます。

curl -X POST
    -H "Authorization: Bearer ${AAT}" -d '{
    "ticket" : ${PERMISSION_TICKET}
}' "http://localhost:8080/auth/realms/${realm_name}/authz/authorize"

これを解決するための便利なリンクを次に示します。

于 2016-11-08T01:44:19.683 に答える