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

2022-09-02 10:36:39

我一直在查看Keycloak文档,但看不到如何执行此操作。使用Java,我想获取有效的用户ID和密码,然后生成令牌。我该怎么做?


答案 1

--编辑 2018-08-31--

您可以使用授权客户机 Java API。创建 AuthzClient 对象后,您可以将用户名和密码传递给 AuthzClient#authorization(用户名、密码)AuthzClient#getAccessToken(用户名、密码)方法,以对用户进行身份验证并获取访问令牌(在第一种情况下为和/或 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适配器来涵盖更多功能,例如其他身份验证方法(用户通常被重定向到Keycloack WUI,您可以在其中强制实施非常灵活的身份验证和授权策略)。


答案 2

推荐