我已经完成了On a high level, how does OAuth 2 work?,但我仍然有一些具体的内容 质疑oauth 2是如何运作的
以下是来自所述链接的oAuth的步骤序列
Site-A向Site-B注册,并获取Secret和ID。
当用户告诉Site-A访问Site-B时,用户被发送到Site-B,他告诉Site-B他确实希望为特定信息授予Site-A权限。
Site-B将用户重新定向回Site-A以及授权码。
然后,Site-A将该授权码及其秘密传递回Site-B以换取安全令牌。
然后,Site-A代表用户通过捆绑安全令牌和请求向Site-B发出请求。
我的问题是关于以下几点: -
1)身份验证: - 该步骤及其发生方式。没有人解释如何在这里实现身份验证
My Understanding on this point:-
来自William Jones
的回答看起来好像是在第2步发生了。如果是,它是如何发生的?我相信它正在发生
cookies的帮助(如果用户已经登录并且如果没有服务,那么当从基于java的应用程序的jsessionid的同一浏览器实例点击URL时会自动发送
提供者明确要求凭证)。这是对的吗?
2)授权码: - 我不确定这里是否使用了使用授权码。为什么站点B不能立即提供安全令牌。 我的意思是为什么步骤4和步骤2无法合并,其中sita通过cookie提供密码和经过身份验证的数据,而网站B提供安全令牌
3)安全/访问令牌: - 我的理解是,一旦安全令牌被共享,站点B将基于该共享信息。站点A已从站点获得安全令牌号100 B用户X.现在,如果站点A的用户Y获得一些安全令牌(我明白了 它可能不会像在SSL上那样嗅探,然后他可以访问用户X的公共信息
答案 0 :(得分:1)
您似乎正在描述一种称为授权代码流的协议流程。
有四个"演员"在OAuth 2.0中。
OAuth客户端,授权服务器和资源服务器通常都在同一台计算机上或在同一域中。如何执行授权服务器和资源服务器之间的通信并非由OAuth 2.0指定。
1)身份验证: - 该步骤及其发生方式。没有人 解释了身份验证在这里实际发生 记住OAuth 2.0 is not an authentication protocol.
2)授权码 您的步骤没有明确定义。尝试用图片查看Grant Type: Authorization Code。
3)安全/访问令牌 不共享。由授权服务器发布,并通过OAuth客户端呈现给资源服务器。