我正在研究SSO,但我不知道的一件事是SSO消费者如何能够在不单击“登录”按钮的情况下获得会话。我可以解释以下情况:
我有:
当我进入myapp.com
->我没有权限或没有会话来访问服务器资源。
我点击Sign In
中的myapp.com
按钮,这将重定向到accounts.domain.com
,并且在通过身份验证后,我会通过本地会话返回到myapp.com
。
问题是:当我转到yourapp.com
时,我已经进行了会话,而没有单击Sign In
按钮。
实际情况是google.com
,accounts.google.com
,youtube.com
,...
我不知道它是如何工作的以及如何实现?
还有一个问题,我可以像Google一样使用Auth0
或Google Cloud Identity
或AWS Cognito
来构建我的Identity Provider
吗?
有人可以支持我吗?
答案 0 :(得分:0)
要更好地理解这一概念,您应该首先了解使用SSO登录时会发生什么情况。
我将以google和YouTube为例。
当您使用您的凭据登录到Google时,您不仅会获得本地会话,而且还会获得一次登录令牌。我们通常将其称为SAML,这是安全断言标记语言令牌。
在这种情况下,此SAML令牌将存储在您的客户端或浏览器中。 现在,当您尝试在同一浏览器中加载youtube时,此令牌将与请求一起发送到IDP。由于 IDP知道该用户已经通过身份验证,因此它将检查特定网站的授权(在这种情况下为YouTube),因此页面会加载。