我是Keycloak的初学者,虽然我认为我理解主要原理,但它似乎是一个丰富的工具,我担心我可能仍然在使用它的最佳方法的某些方面存在错误。请不要犹豫纠正我。
用户的同意将使用OAuth2.0授权代码授予流给予。它们将登录,指定它们授予哪些权限,拒绝哪些权限,然后客户端检索它将用于访问API的访问令牌。
我的理解是,Keycloak可以处理授权令牌,但它不应该知道任何适用的东西,即我们的权限是什么。因此,我考虑构建一个自定义授权服务器,它将使用Keycloak处理所有身份/身份验证问题,但将自己处理应用权限。
然后,我们将使用Keycloak进行客户端身份验证和授权代码/访问令牌管理,应用部分将检查权限。
我一直在查看可用的Java适配器。当涉及到身份验证时,它们看起来很好,但我没有看到关于如何从自定义授权服务器管理客户机(即管理领域)的提示。
因此,我认为我应该使用管理API。我是正确的吗?这是好的练习吗?我没有看到这样的适配器,所以我想我应该使用REST API。
我也在想,我们应该如何在设计中整合我们的用户?它们应该在钥匙斗篷内复制吗?在这种情况下,我们应该使用KeyCloak的管理API从授权服务器推送数据,还是有更好的方法?
2。我主要关注Spring Security OAuth提供的示例应用程序
用Keycloak构建Java OAuth2.0授权服务器
这是可能的,但有点棘手,有很多东西需要定制。
你可以从下面的回购中得到一些动力。
https://github.com/mitreid-connect/openid-connect-java-spring-server
MITREid Connect使用Spring Security进行身份验证,因此您可以将您喜欢的任何组件放入该空间。关于如何为自定义身份验证机制编写和配置Spring Security过滤器,web上有很多很好的资源。
您需要查看user-context.xml文件,以了解定义用户身份验证的位置。在核心项目中,这是针对本地数据库的一个简单的用户名/密码字段。在LDAP覆盖项目等其他项目中,它连接到LDAP服务器。在某些系统中,比如MIT的“oidc.mit.edu”服务器,实际上有几种不同的身份验证机制可以并行使用:LDAP、kerberos和证书。
我有以下场景:一个客户端应用程序试图访问API网关后面的APIendpoint。我想验证(使用id和秘密)应用程序,如果它是应用程序A允许它访问endpoint/信用,如果它是应用程序B允许它访问endpoint/借方。 我假设API网关应该验证一个调用是否应该被拒绝。你能告诉我我的工作流应该是什么样子,我应该使用什么Keycloak功能吗?
我在下面设置Spring配置: 和Maven设置如下:
http://${host}:${port}/auth/realms/${realm_name}/authz/protection/resource_set 但是我没有看到一个API来CRUD授权策略和权限。 我试图通过protection/resource_setendpoint创建策略,但失败了:
null null 使用NodePort服务公开Keycloak。 应用程序使用istio入口网关公开。 Keycloak服务器版本:9.0.0。
尝试使用 Spring 授权服务器实现 OAuth2 协议。使用以下配置创建了一个简单的应用程序。 调用以下endpoint时: 我得到这些: 我正在尝试通过身份验证并尝试遵循此文档。我尝试了多个电话,其中之一是: 我大部分时间都是带着不同的信息返回401。我真的想不出在哪里可以找到一些带有示例的文档,因为我能够找到的示例对我的用例没有什么帮助。我不完全理解如果客户端是前端应用程序,我将如何验证和
现在,我了解了访问令牌和刷新令牌,但我不知道如何实现它。 我有一个项目,前端是棱角分明的,后端是node.js的,前面有微服务架构和网关。我可以使用像oaust2授权服务器一样的aust0,用户存储在里面? 怎么做?在aust0文档中有大量的说明,我不明白哪个适合我。 我必须通过网关拦截登录、注销和注册,并重定向到auth0,或者我必须在我的用户微服务内部完成这些操作? 在我的项目中,还有个人信息