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的用例是啥?

bash中noop [:]的用例是啥?

NSURLSessions 后台会话的正确用例是啥?

DataSet Spark 的用例是啥?

NuxtJs asyncData 的用例是啥?