没有浏览器的 Keycloak OpenID 客户端
Posted
技术标签:
【中文标题】没有浏览器的 Keycloak OpenID 客户端【英文标题】:Keycloak OpenID Client without browser 【发布时间】:2020-11-18 03:12:36 【问题描述】:有问题
我有一个在生产环境中工作的 Keycloak,我需要我的用户登录一个移动应用程序,该应用程序是使用该 Keycloak 使用本机反应开发的。到目前为止,我通过应用内浏览器作为 AppAtuh 使用正常的登录流程,但现在我收到了用户的请求,在登录时在应用中说。
我尝试过的
我使移动登录的 Keycloak 主题与移动应用 UI 非常相似,以至于可以使用 react WebView 作为普通屏幕打开它。
在纸面上,这个想法可行,但在现实生活中,我无法利用放置的 Keycloak ID cookie。因此,每当 WebView 打开时,都会生成一个带有 cookie 的新会话。没用。
我开始自己从移动应用程序内部调用 keycloak 端点。这不是一件容易的事,因为我已经完成了 OTP 配置,因此某些端点无法正常工作。
其次,这个想法适用于像login
这样的简单过程,但不适用于registration
或reset-password
。这只是一个例子。我的 Kecloak 确实有一个 Authenticator
s 列表,它使用 phoneNumber
和一些 cookie 登录。
规格
我正在使用 Keycloak 10(一年前从 keycloak 6 开始) 移动应用程序是使用 React Native 和 Expo 开发的。第一个登录流程是使用库Expo AppAuth,第二个是React native WebView【问题讨论】:
【参考方案1】:你读过that吗?我认为您应该考虑将Custom URI scheme 用于您的 Keycloak OpenID Connect 客户端并使用默认手机浏览器。 This 也可能会有所帮助。
【讨论】:
嗨。我浏览了所有这些链接,并说明了实际已经实施的内容。现在,我希望用户不要通知我们正在使用浏览器 我检查了 Audible 的 android 登录页面,这与我想要实现的想法相同。请作为示例检查它 正如您所提到的,由于 OTP、cookie 的新会话和其他事情,存在一些问题,因此如果您希望 Keycloak 工作,您需要使用浏览器或类似 Custom Tabs 的东西。我检查了 Audible,也许它类似于 Trusted Web Activity?以上是关于没有浏览器的 Keycloak OpenID 客户端的主要内容,如果未能解决你的问题,请参考以下文章
在 Keycloak 中使用 OpenID Connect 的两个用例有啥区别? (客户端与应用程序)
使用 jumbojett/OpenID-Connect-PHP 库的 KeyCloak 身份验证流程