我有一个场景,其中有多个应用程序/服务需要访问我的资源:
这是三个外部服务:service 1,service 2,service 3。
现在我使用client_credentials授权类型,因为这是机器到机器的,不涉及用户。
我所做的是为Keycloak中的每个服务创建1个客户端。它工作正常,但是我需要在令牌中添加更多细节,特别是,每个客户端的人类可读名称,因为客户端ID使用recommended naming命名。
我知道如何将用户声明Map到令牌,但是否有可能在没有用户而只有客户端的情况下使用类似的东西?
1条答案
按热度按时间xwbd5t1u1#
是,转到应用的领域,然后:
[Create]
;Hardcoded Claim
作为Mapper Type
;单击
[Save]
。“使用更多详细信息更新答案
我知道如何将用户声明Map到令牌,但是对于没有用户而只有客户端的场景,是否可以有类似的东西?
是,您需要创建“硬编码声明Map器”。
为此:
realm
clients
client
(对于旧的Keycloak用户界面)
Mappers
Create
Mapper type
中选择Hardcoded claim
Save
(适用于新的Keycloak用户界面)
Client Scopes
选项卡<the client ID of your client>-dedicated
(* 例如,* 下图中的测试专用)x1c 0d1x的数据
Configure a new mapper
(或者如果您之前已经为该客户端创建了Map器,则单击Add Mapper
>By configuration
)的
Hardcoded claim
Save
该客户端将是您用来进行身份验证的客户端。