使用 KeyCloak 的 OAuth2 授权接口

Posted

技术标签:

【中文标题】使用 KeyCloak 的 OAuth2 授权接口【英文标题】:OAuth2 authorization interface using KeyCloak 【发布时间】:2018-04-21 14:16:03 【问题描述】:

我正在尝试使用 KeyCloak 作为身份提供者服务来支持第 3 方应用程序。想法是在KeyCloak中注册客户端应用程序,受信任的客户端不需要此授权批准,但应该有“不受信任”的客户端流程,例如显示OAuth 2.0 specification指定的用户授权界面。

从我see in the docs 来看,他们有很好的细粒度授权机制,可用于后端。但是我看不到任何方法可以为/authorize 端点提供授权屏幕,如上所示。

也许这可以是custom created SPI 或其他可用于实现这一点的东西以进一步发展。关于如何在KeyCloak 中实现这一点的任何想法?是否有任何可以重用的内置功能或自定义方式实现?

【问题讨论】:

【参考方案1】:

Keycloak 中,您可以为每个客户端打开 Consent Required 开关(请参阅管理控制台中的客户端设置)。 成功验证后,这将弹​​出一个类似于您的示例的确认页面。

【讨论】:

太棒了,这正是我想要的,谢谢! @Boomer 如果我关闭同意如何创建自定义同意页面并调用 keycloak 同意 REST api (GET/POST)? @PanupongKongarn 对不起,我不明白你的问题。同意页面是 OAuth2 授权流程中的可选步骤。在 Keycloak 中,您可以通过提供带有修改文件“login-oauth-grant.ftl”的自定义主题来自定义此页面。但我认为让 REST API 调用同意页面没有任何意义。也许您应该打开一个新问题,在其中可以更详细地解释您想要实现的目标。 @Bomer 好的,谢谢,我找不到关于同意的 REST API,我也会从 keycloak 中获取同意表,并在没有 keycloak 的情况下完成

以上是关于使用 KeyCloak 的 OAuth2 授权接口的主要内容,如果未能解决你的问题,请参考以下文章

Spring OAuth2 使用 Keycloak 自动登录

OAuth 2.0只是授权协议,OIDC才是认证授权协议

如何使用 Angular -> Spring Boot Oauth2 -> Keycloak 获取 keycloak 令牌

通过 Spring Boot Keycloak 集成的 OAuth2 客户端凭据流

如何在SpringBoot Security中实现OAuth2授权

Kong + Keycloak + OAuth:jwt-keycloak 还是 oauth2 插件?