我在这里有点问题。 我有启用了CORS(值'*')的Keycloak,并且可以调用端点:
/ auth / realms / master / protocol / openid-connect / token
从邮递员那里获得访问令牌和其他内容的响应,但是当我尝试从React应用程序中调用该端点时,出现了CORS错误:
我不明白为什么,因为我在该客户端中为Web Origins设置了“ *”值。 这是Keycloak的错误,还是我缺少一些琐碎的东西?
答案 0 :(得分:0)
在Valid Redirect URIs
密钥斗篷配置中是否添加了地址“ http://localhost:3000/ *”?
答案 1 :(得分:0)
我已通过在.NET Core中创建Web API项目来解决此问题(可以使用任何其他技术来完成)。我在项目中设置了CORS策略以允许任何域,然后从.NET Core项目直接调用Keycloak端点。除了解决此问题(由于.NET Core Web API项目不是浏览器应用程序,它的工作原理很吸引人)之外,这还通过隐藏只能从.NET Core应用程序访问的客户端信息,为Keycloak添加了另一个安全层。在浏览器应用程序中看不到诸如client_id和client_secret之类的信息,并且没人可以对Keycloak中的客户端造成任何损害。