每当需要某些身份验证时,是否每次都会向此IdP发送SAML请求,或者首先在存储在浏览器Cookie中的会话中检查SAML请求,如果找到会话,则会自动进行身份验证?
答案 0 :(得分:0)
通常,当用户首次向该SP进行身份验证时,SP会存储会话。如果SP需要对用户进行身份验证,则首先查找本地会话。但是,如果用户在一个SP上有会话,然后尝试访问第二个SP的资源,则此SP将不会拥有来自第一个SP的本地会话,并且需要向IDP发送authnrequest。
据我记得,这不是SAML规范中的规定,但通常是如何完成的。
答案 1 :(得分:0)
要访问Web应用程序(SP),您通常需要向其提供一些内容,以证明您有权访问它。通常,此权利是用户名/密码组合。一旦SP验证您的权利(可能将用户名/密码与db进行比较),它会根据SP的策略为您生成一个时间限制的会话。
使用SAML
访问SP时,您没有用户名/密码。在这种情况下,您的权利来自您的IdP发布到SP的属性。一旦SP验证您的属性,它就会生成您的会话,这与您从用户名/密码验证中获得的会话类型完全相同。
SP可以通过多种方式再次向IdP询问属性:
SAML
属性已过期(他们有时间生效)。SAML
属性已过期。在高安全性SP中可能就是这种情况,您可能只有一小时的许可。您的SAML
属性可能只有一小时的TTL。然后,SP会要求您的IdP中的属性刷新您的权利。如果SP的原生会话过期但您的SAML
属性仍然有效,则可以选择不询问您的IdP,而是根据您当前的SAML
属性创建新会话。这一切都取决于SP的安全政策。
如果您转到另一个SP,您通常不必再次在您的IdP上进行身份验证,因为您的IdP可能会在登录第一个SP后为您提供会话,并且只会将您的属性发布到第二个SP。 / p>