如何解决没有 OIDC 的 OAuth2.0普通 OAuth2.0
据我所知,我们可以使用不同帐户登录的应用程序使用 OpenID Connect(OAuth2.0 的配置文件)。
OAuth 用于授权,OIDC 用于身份验证(它有 ID Token-User Info Endpoint)。
-
如果普通 OAuth 不能用于身份验证,它是/曾经用于什么?
我的意思是“授权”究竟是什么?
使用访问令牌从资源服务中得到什么?
解决方法
我一直觉得围绕这个的行话没有帮助,所以我理解你的困惑。这是一个简单的英文摘要:
OAuth 2.0
在 OIDC 应用使用 OAuth 2.0 获取令牌之前,这涉及可选的用户同意。获取代币的过程称为“委托”。
实际上,尽管所有现实世界的 OAuth 2.0 提供商也包括身份验证,以确保其系统安全。 OAuth 规范中没有定义如何进行身份验证。
OAuth 主要用于保护数据,其中范围和声明是机制。这些链接提供了更多信息:
OIDC
这只是对身份验证前后的身份验证消息应该如何工作添加了一些更清晰的定义:
- 客户端只需包含一个
openid
范围即可使用 OpenID Connect - 客户端可能会在重定向期间通过
prompt=login
参数强制登录 - 客户端可以通过
acr_values
参数请求身份验证方法 - 一旦身份验证完成,客户端就会收到一个 ID 令牌(断言),如果需要,可以对其进行数字验证,然后使用其中的信息(例如用户名)
OIDC 仍然没有定义实际的身份验证是如何工作的。
一起使用
现在几乎所有受 OAuth 保护的应用(和库)都一起使用,因此身份验证和委托都使用基于标准的解决方案。它为您提供最好的应用程序功能和设计模式,以便做好安全工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。