OpenID 隐式流与标准流的示例用例是啥?
Posted
技术标签:
【中文标题】OpenID 隐式流与标准流的示例用例是啥?【英文标题】:What are example use cases for OpenID implicit flow vs standard flow?OpenID 隐式流与标准流的示例用例是什么? 【发布时间】:2016-07-20 06:51:25 【问题描述】:在什么情况下您会使用 OpenID Connect 隐式流程: http://openid.net/specs/openid-connect-core-1_0.html#ImplicitFlowAuth
与标准流程相比? http://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth
【问题讨论】:
【参考方案1】:授权代码流向用户隐藏生成的令牌,并确保只有正确的客户端应用程序才能访问它。这是一种三向通信:
-
用户向 openid 提供者进行身份验证。
openid 提供程序向用户的浏览器返回一个授权码。
用户的浏览器将授权码传递给客户端应用程序。
客户端应用程序使用 授权码 和 客户端密码 调用 openid 提供程序,以确保它确实是客户端应用程序。
openid 提供程序返回实际的访问令牌。
此流程对于基于服务器的应用程序更安全,因为访问令牌永远不会暴露给客户端浏览器。服务器应用程序还使用客户端密钥对自己进行身份验证,因此其他人无法使用它。
当整个客户端在浏览器中以javascript运行时使用隐式流。 javascript 客户端无法保持“客户端机密”,因此没有任何用处,并且 javascript 客户端应该获取浏览器中可用的令牌。简单的解决方案是让 openid 提供者直接将访问令牌返回给浏览器。
【讨论】:
以上是关于OpenID 隐式流与标准流的示例用例是啥?的主要内容,如果未能解决你的问题,请参考以下文章
Styled-Components 的 .attrs() 函数的用例是啥?
cudaGraphicsGLRegisterImage中cudaGraphicsRegisterFlagsWriteDiscard的用例是啥?