当前位置: 首页 > 知识库问答 >
问题:

KeyClope与浏览器身份验证流的集成

白昊东
2023-03-14

我目前正在使用定制的AuthenticationProvider实现将Key斗篷集成到一个相当复杂的spring boot应用程序环境中(因此我不使用Key斗篷AuthenticationProvider)。在我的例子中,我的目标是将OIDC身份验证协议与Browserflow一起使用。

因此,当客户机导航到我的spring应用程序的登录页面时,他会被重定向到KeyClope登录页面。这已经奏效了。

在那里,一旦他进行身份验证,他就会被重定向回初始应用程序页面。这就是我为如何继续而苦苦挣扎的地方。

一旦KeyClope将我重定向回我的应用程序,向我的应用程序发出GET请求,并指定session_statecode参数。我假设这些可能可以用于在进一步的通信中验证客户端,但我不确定我的假设是否正确,如果正确,我将如何使用这些值。遗憾的是,我无法在文档中找到这些信息。。。

所以我的问题是:

  1. 对于基于浏览器的OIDC身份验证,我的方法正确吗
  2. 假设session_statecode变量可以帮助我在web应用程序中验证客户端,我的假设正确吗
  3. 如何使用这些值进行身份验证

我希望我能提前表达我的奋斗和感谢

共有1个答案

袁奇逸
2023-03-14

Keycloak将用户重定向到您的应用程序后,您将接收到的代码交换为访问和id令牌。访问令牌用于对资源服务器的请求

要交换授权码,请使用此请求:

curl --request POST \
  --url 'https://KEYCLOAK/auth/realms/REALM/protocol/openid-connect/token' \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data grant_type=authorization_code \
  --data 'client_id=CLIENT_ID' \
  --data client_secret=CLIENT_SECRET \
  --data code=CODE \
  --data 'redirect_uri=REDIRECT_URI'

如果是公共客户,请省略client_secret

在这里你可以阅读更多关于Authorized Code(浏览器)flow:https://www.keycloak.org/docs/latest/server_admin/index.html#authorization-code-flow

 类似资料:
  • 我正在尝试使用Key斗篷在我的web应用程序和IDP Azure广告之间进行saml代理。 我在Azure广告中创建了几个用户,并将我的webapp添加为应用程序。我已经用SAML IDP配置了Key斗篷,并在Key斗篷中导入了Azure AD federation数据。 但在某个地方出现了一些问题,因为我并没有在网络上获得任何链接,这些链接可以让我一步一步地将Keyclope与Azure广告集成

  • 问题内容: 有谁知道在自动化过程中使用Selenium或任何其他工具来处理浏览器身份验证吗? 问题答案: 警报方法authenticateUsing() 使您可以跳过“ Http基本身份验证”框。 从Selenium 3.4开始,它仍处于测试阶段 现在,仅针对 InternetExplorerDriver

  • 问题内容: 我的Web应用程序有一个登录页面,该页面通过AJAX调用提交身份验证凭据。如果用户输入正确的用户名和密码,则一切正常,但如果不正确,则会发生以下情况: Web服务器确定尽管请求中包含格式正确的Authorization标头,但标头中的凭据未成功进行身份验证。 Web服务器返回401状态代码,并包含一个或多个列出受支持的身份验证类型的WWW-Authenticate标头。 浏览器检测到对

  • 我正在尝试在一个microservice中配置一个microservice,但我正在尝试在另一个microservice中配置一个microservice如何进行身份验证。这就是我试图归档的体系结构: 我已经设法让用户授权工作并保护了微服务A,现在我正在尝试授权来自微服务B的请求,但我不确定如何做到这一点,我是否应该为微服务B在KeyCape中创建一个专用用户,或者在realm中创建客户端,或者其

  • 我正在尝试使用Keycloak配置Spring Boot应用程序以使其具有可供经过身份验证和未经身份验证的用户访问的endpoint。对于经过身份验证的用户,我想返回一些额外信息。这是我试图实现的一个简单示例: application.properties: 到目前为止,我只对这两种情况中的一种起作用。如果我使用上面的安全约束保护endpoint,那么只有经过身份验证的用户才能访问该endpoin

  • 本文向大家介绍asp.net mvc中Forms身份验证身份验证流程,包括了asp.net mvc中Forms身份验证身份验证流程的使用技巧和注意事项,需要的朋友参考一下 验证流程 一、用户登录 1、验证表单:ModelState.IsValid 2、验证用户名和密码:通过查询数据库验证 3、如果用户名和密码正确,则在客户端保存Cookie以保存用户登录状态:SetAuthCookie     1