SAML 2.0 密码认证
SAML 2.0 password authentication
我知道 SAML 如何用于单点登录 (SSO)。也就是说,从 SP 重定向到 IDP 并从 SAML response/assertion.
获取用户身份
我的问题是 - SAML 2.0 规范是否定义了如何将用户名和密码作为 SAML 请求 xml 的一部分进行身份验证?请注意,我不是在谈论单点登录,只是想要 username/password.
的身份验证
谢谢,
SAML 标准支持在 <AuthnRequest>
(即身份验证请求)的 <saml:Subject>
字段中传递用户标识符。
然而,没有内置支持将密码作为 AuthnRequest
的一部分传递。恕我直言,这样做违反了 SAML2 的原则,因为它期望 Idp 在进行身份验证时仅使用密码。通常,Idp 可以使用它认为合适的任何方式来确认主体的身份。这可能是一个密码,也可能是一个证书或通过 SMS 进行的一次一密交换。或者其他 - 这取决于 Idp。
也就是说,<AuthnRequest>
中有一个 <Extensions>
元素可以用来携带密码。这样做需要谨慎的安全考虑,因为 AuthnRequest
内容并非旨在保密。如果使用 Http Redirect 绑定,内容将记录在 Web 服务器中并在浏览器历史记录中可见。如果使用 Http POST 绑定密码仍然对浏览器可见。我建议使用 SOAP 或 Artifact 绑定来确保数据直接从 SP 传输到 Idp。但是请注意,这些绑定在框架中的支持要少得多。
我知道 SAML 如何用于单点登录 (SSO)。也就是说,从 SP 重定向到 IDP 并从 SAML response/assertion.
获取用户身份我的问题是 - SAML 2.0 规范是否定义了如何将用户名和密码作为 SAML 请求 xml 的一部分进行身份验证?请注意,我不是在谈论单点登录,只是想要 username/password.
的身份验证谢谢,
SAML 标准支持在 <AuthnRequest>
(即身份验证请求)的 <saml:Subject>
字段中传递用户标识符。
然而,没有内置支持将密码作为 AuthnRequest
的一部分传递。恕我直言,这样做违反了 SAML2 的原则,因为它期望 Idp 在进行身份验证时仅使用密码。通常,Idp 可以使用它认为合适的任何方式来确认主体的身份。这可能是一个密码,也可能是一个证书或通过 SMS 进行的一次一密交换。或者其他 - 这取决于 Idp。
也就是说,<AuthnRequest>
中有一个 <Extensions>
元素可以用来携带密码。这样做需要谨慎的安全考虑,因为 AuthnRequest
内容并非旨在保密。如果使用 Http Redirect 绑定,内容将记录在 Web 服务器中并在浏览器历史记录中可见。如果使用 Http POST 绑定密码仍然对浏览器可见。我建议使用 SOAP 或 Artifact 绑定来确保数据直接从 SP 传输到 Idp。但是请注意,这些绑定在框架中的支持要少得多。