gpt4 book ai didi

authentication - 没有浏览器的 SAML 2.0

转载 作者:行者123 更新时间:2023-12-03 17:48:13 24 4
gpt4 key购买 nike

假设我有一个目前是这样的系统:

  • Monolithic Web App:包含自己的帐户并依赖客户端使用(本质上)HTTP BasicAuth 登录。也就是说,用户名和密码被传递到服务器。
  • 胖客户端:登录上述应用程序,接收访问 token ,此后用于 REST API 调用。

  • 基本上,我想将上述转换为这种系统:
  • SAML 2.0 IdP:身份记录系统
  • 相同的 Web 应用程序,减去身份验证责任
  • 胖客户端:不变。 <-- 硬性要求

  • 因此,至关重要的是,我不能让胖客户端执行标准的 SAML 2.0 浏览器 SSO 重定向。有什么解决办法吗?本质上,我想要与 OAuth2 相同的功能 password_grant ,但在 SAML 2.0 世界中。

    做一些研究,我遇到了 SAML Enhanced Client or Proxy ,但支持似乎参差不齐。令人沮丧的是,我在 WebApp 上拥有明文形式的该死的凭证;有没有一些简单的方法可以使这项工作?

    请问 HTTP Artifact Binding做的伎俩?

    最佳答案

    注意:这个问题最好在 https://security.stackexchange.com/. 上问。
    如果您无法更改胖客户端,则您无法使用 SAML 或任何形式的基于浏览器的单点登录 (SSO)。就这么简单。
    此外,您期望用户将其 SSO 凭据输入到胖客户端,然后通过 HTTP 基本身份验证发送它们并自动将它们输入到表单中的方法是不安全的,原因如下:

  • 用户的纯文本密码需要通过几个永远不会看到它的实例,并且它可能也将存储在胖客户端中。即使它是加密的(在传输中或静止时),这也不如密码仅作为散列存储在 IdP 上(以及用户的内存或密码管理器中)安全。
  • 期望用户在 IdP 登录表单之外的任何其他地方输入他们的 SSO 凭证会促进凭证的危险使用,这会使用户更容易受到网络钓鱼的影响。

  • 如果您计划将 IdP 用于 SSO 到多个客户端而不是这一传统胖客户端,则可以使用类似应用程序密码的内容:
  • 用户使用 SSO (SAML) 登录到 Web 应用程序
  • 用户创建应用程序密码(也可以选择撤销它)
  • 然后将应用程序密码用于胖客户端。

  • “应用程序密码”可以是简单的唯一 ID(作为“用户名”输入)和随机生成的长字符串(作为“密码”发送)的组合。如果胖客户端可以存储这些凭据,那么这种方法将在一定程度上对用户友好,但不如真正的 SSO 安全。
    从长远来看,请考虑更新胖客户端。

    关于authentication - 没有浏览器的 SAML 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28439920/

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