如何通过keycloak rest api生成jwt令牌?

时间:2018-02-20 03:03:23

标签: jwt keycloak

我正在努力将Keycloak集成到现有的应用程序中。作为此过程的一部分,我需要测试Web应用程序是否可以接受从keycloak生成的jwt令牌。

我已阅读API文档http://www.keycloak.org/docs-api/3.4/rest-api/index.html,但找不到任何创建jwt令牌的方法。

有没有人知道在Keycloak中创建jwt令牌的任何REST api方法?

1 个答案:

答案 0 :(得分:6)

根据keycloak邮件列表成员提供的keycloak邮件列表详细信息[ВиталийИщенко和Hynek Mlnarik]

很大程度上取决于您想要发布的JWT。对于生成样本 访问令牌,见[1],动作令牌,见[2],自定义,见[3]。

[1] https://github.com/keycloak/keycloak/blob/master/services/src/main/java/org/keycloak/protocol/oidc/TokenManager.java#L698

[2] https://github.com/keycloak/keycloak/blob/master/services/src/main/java/org/keycloak/authentication/actiontoken/DefaultActionToken.java#L140

[3] https://github.com/keycloak/keycloak/blob/master/core/src/main/java/org/keycloak/jose/jws/JWSBuilder.java

Keycloak遵循OIDC规范,您可以使用OAuth2中定义的任何流程 [1]以及OIDC中添加的一些额外流程

OIDC规定使用JWT,因此访问令牌(以及refresh_token, id_token和其他人是JWT)将以JWT格式返回

要查找令牌和身份验证的地址,keycloak会提供OIDC 发现网址,即http://keycloakhost:keycloakport/auth/realms/{realm}/.well-known/openid-configuration

有许多lib可以简化令牌请求 为OIDC规范编写的程序。但Keycloak有一套适配器 写的,可以很好地适应你现有的技术堆栈[2]。一世 认为允许他们允许访问原始JWT令牌

[1] https://aaronparecki.com/oauth-2-simplified/

[2] http://www.keycloak.org/docs/latest/securing_apps/index.html#openid-connect-3