在Java中使用Keycloak以编程方式对用户进行身份验证

时间:2018-08-29 20:38:22

标签: java authentication keycloak

我一直在浏览Keycloak文档,但是看不到该怎么做。使用Java,我想输入一个有效的用户名和密码,然后生成一个令牌。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:4)

-编辑2018-08-31-

您可以使用Authorization Client Java API。创建AuthzClient对象后,可以将用户名和密码传递给AuthzClient#authorization(username, password)AuthzClient#obtainAccessToken(username, password)方法,以验证用户身份并获取访问令牌(和/或ID令牌):

// create a new instance based on the configuration defined in keycloak-authz.json
AuthzClient authzClient = AuthzClient.create();

// send the authorization request to the server in order to
// obtain an access token granted to the user
AccessTokenResponse response = authzClient.obtainAccessToken("alice", "alice");

另一方面,如果可能的话,您宁愿重用Keycloak Java Adapters之一以涵盖更多功能,例如其他身份验证方法(通常将用户重定向到Keycloack WUI,您可以在其中执行非常灵活的身份验证和授权政策。