single-sign-on - 如何在不单击登录按钮的情况下首次检查 SSO 会话
问题描述
我正在研究 SSO,但我不明白的一件事是 SSO 消费者如何在不点击登录按钮的情况下获得会话。我可以解释如下:
我有:
- accounts.domain.com(身份服务器。已允许消费者 1 和 2)
- myapp.com(消费者 1)
- yourapp.com(消费者 2)
当我去myapp.com
-> 我没有权限或没有会话来访问服务器资源。
我点击Sign In
按钮myapp.com
,这将重定向到accounts.domain.com
并在经过身份验证后,我回到myapp.com
我的本地会话。
问题是:当我去的时候yourapp.com
,我已经有没有点击Sign In
按钮的会话。
真实情况是google.com
,,,, accounts.google.com
...youtube.com
我不知道它是如何工作的以及如何实现它?
还有一个问题,我可以使用Auth0
or Google Cloud Identity
orAWS Cognito
来构建我Identity Provider
的谷歌吗?
有人可以支持我吗?
解决方案
为了更好地理解这个概念,您首先应该知道当您使用 SSO 登录时会发生什么。
我将以 google 和 YouTube 为例。
当您使用您的凭据登录谷歌时,您不仅会获得本地会话,还会获得单点登录令牌。我们通常将其作为 SAML,它是安全断言标记语言令牌。
在这种情况下,此 SAML 令牌将存储在您的客户端或浏览器中。现在,当您尝试在同一浏览器中加载 youtube 时,此令牌将与请求一起发送到 IDP。由于IDP 知道该用户已经过身份验证,因此它将检查特定网站的授权(在这种情况下为 YouTube),页面加载。
推荐阅读
- code-formatting - 更漂亮:语法错误:只有 void 和外部元素可以自关闭
- xpages - 列数未知的 Xpages 动态表
- flutter - 我可以溢出 Container 中的小部件以使其像剪辑一样吗?
- computational-geometry - 使用 CGAL 的凸壳平面的可能错误方程
- laravel - VPS 上的 Voyager 管理菜单为空
- javascript - 在 useEffect React hook 中在不同时间实现多个 Firestore 调用
- c - 做..虽然循环不会停止等待 uinput
- ios - 图像视图未出现在屏幕上
- php - 如何使用验证检查数据库中是否不存在数据?
- c# - Unity C# Firebase 无法在任务范围内修改/访问列表变量