gpt4 book ai didi

java - IDP 在现有应用程序中启动了 SSO 实现

转载 作者:行者123 更新时间:2023-12-02 03:14:42 24 4
gpt4 key购买 nike

我有一个现有的应用程序,突然我被分配了一项任务来实现 IDP 发起的 SSO。有一个 IDP URL,单击它会要求我使用 IDP 提供的凭据登录,成功登录后,路由将移动到我们的应用程序,然后我的任务开始识别用户并提供正确的访问权限。我有我们的 IDP 提供的证书。我怎样才能做到这一点?我的应用程序是 Spring MVC Java 应用程序。我正在使用 JBOSS AS 7。我以前没有做过类似的事情。任何人都可以详细说明这一点吗?我看到了 Spring SAML 扩展,但我无法正确理解它以使其与我现有的应用程序集成。任何在这方面的帮助都将受到高度赞赏。

最佳答案

IdP 发起的 SSO

IdP-Initiated SSO with POST Binding

  1. 如果用户在 IdP 处没有有效的本地安全上下文,在某些时候,用户将需要向 IdP 站点 idp.example.org 提供其凭据。
  2. 用户提供有效凭据,并在 IdP 处为用户创建本地登录安全上下文。
  3. 用户在 IdP 上选择菜单选项或链接来请求访问 SP 网站 sp.example.com。这会导致调用 IdP 的单点登录服务。
  4. 单点登录服务构建代表用户登录安全上下文的 SAML 断言。由于将使用 POST 绑定(bind),因此断言在放入 SAML 消息之前会经过数字签名。然后,该消息作为名为 SAMLResponse 的隐藏表单控件放置在 HTML FORM 中。 (如果 IdP 和 SP 支持识别 SP 处特定应用程序资源的约定,则 SP 处的资源 URL 也会使用名为 RelayState 的隐藏表单控件编码到表单中。)单点登录服务发送HTML 表单以 HTTP 响应返回给浏览器。为了便于使用,HTML 表单通常会包含脚本代码,用于自动将表单发布到目标站点。
  5. 由于用户操作或“自动提交”脚本的执行,浏览器会发出 HTTP POST 请求以将表单发送到 SP 的断言消费者服务。服务提供者的断言消费者服务从HTML FORM中获取消息进行处理。必须首先验证 SAML 断言上的数字签名,然后处理断言内容,以便为 SP 上的用户创建本地登录安全上下文。完成后,SP 检索 RelayState 数据(如果有)以确定所需的应用程序资源 URL,并向浏览器发送 HTTP 重定向响应,指示浏览器访问所请求的资源(未显示)。
  6. 进行访问检查以确定用户是否具有访问资源的正确授权。如果访问检查通过,则资源将返回给浏览器。

参见saml-tech-overview-2.0

因此,如果您要实现 SP,则必须遵循步骤 5 和 6,否则必须遵循步骤 1 - 4。

如果您无法使用 Spring SAML 扩展来实现,您可以使用 OpenSaml

关于java - IDP 在现有应用程序中启动了 SSO 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40485553/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com