我们说我的系统目前是这样的:
单片Web应用程序:包含自己的帐户,并依赖客户端(基本上)使用HTTP BasicAuth登录。也就是说,用户名&密码被传递到服务器。
胖客户端:登录到上面的应用程序,接收其后用于REST API调用的访问令牌。
基本上,我想将上述内容转换为这种系统:
SAML 2.0 IdP:身份记录系统
相同的Web应用程序,减去身份验证责任
胖客户端:不变。 < - 硬性要求
所以,至关重要的是,我无法让胖客户端执行标准的SAML 2.0浏览器SSO重定向。有什么解决方案吗?从本质上讲,我喜欢与OAuth2 password_grant
相同的功能,但在SAML 2.0世界中。
进行一些研究,我遇到了SAML Enhanced Client or Proxy,但支持似乎不稳定。令人沮丧的是,我在WebApp上以明文获得了darn凭证;是否有一些简单的方法可以使这项工作?
HTTP Artifact Binding可以解决这个问题吗?
答案 0 :(得分:0)
注意:这个问题最好在 https://security.stackexchange.com/.
如果您无法更改胖客户端,则您无法使用 SAML 或任何形式的基于浏览器的单点登录 (SSO)。就这么简单。
此外,您期望用户将他们的 SSO 凭据输入胖客户端,然后通过 HTTP 基本身份验证发送它们并自动将它们输入表单的方法是不安全的,原因如下:
如果您计划将 IdP 用于 SSO 到多个客户端而不是这个传统胖客户端,您可以使用类似应用程序密码的内容:
“应用程序密码”可以是简单的唯一 ID(作为“用户名”输入)和随机生成的长字符串(作为“密码”发送)的组合。如果胖客户端可以存储这些凭据,那么这种方法会在一定程度上对用户友好,但不如真正的 SSO 安全。
从长远来看,请考虑更新胖客户端。