如何将Keycloak设置为身份提供者?

时间:2019-12-25 21:33:54

标签: keycloak

我有一个React应用,它需要在某个地方进行身份验证。在这次,我决定使用开源解决方案,而不是像以前那样创建自己的解决方案。 选择了Keycloak可以做到这一点。

我需要做的就是允许用户以他们想要的任何社交身份登录。也许还有其他一些不是社交的OpenID提供者,或者将来可能要添加的一些新服务。

无论如何,Keycloak乍一看看起来很简单,这对我来说变得很困难,但我仍然无法达到需要的程度。第二个问题是缺乏信息和许多过时的指南。

首先,我使用KC(文本旁边的Keycloak)实现了简单登录。都简单。但是,当我尝试使用自定义提供程序(可以轻松地与Node.js后端和React客户端集成)时,我会遇到很多麻烦和错误。

我遇到的最后一个意外错误是:

20:59:59,853 ERROR [org.keycloak.broker.oidc.AbstractOAuth2IdentityProvider] (default task-16) Failed to make identity provider oauth callback: org.keycloak.broker.provider.IdentityBrokerException: Token is no longer valid
20:59:59,853 WARN  [org.keycloak.events] (default task-16) type=LOGIN_ERROR, realmId=Demo, clientId=null, userId=null, ipAddress=172.17.0.1, error=identity_provider_login_failure  

因此,我遇到了有关userId和clientId的问题-在初始化登录时会通过keycloak-js发送它们,但是重定向后到处都是null。

令牌不再有效,这很好,但是哪个令牌又来自哪里?从提供程序重定向后,我看到一个错误,用户身份验证正常。在将我重定向回kc之后,所有错误都会闪烁。

我在做什么错?如何在浏览器流程中将kc设置为与开放id提供程序一起使用?

KC从具有映射端口的docker运行到localhost:8080。 React应用程序在同一台机器上运行,但使用另一个IP,而不是本地主机。

0 个答案:

没有答案