OAuth2.0
2025-02-10 15:45:48 0 举报
AI智能生成
OAuth 2.0是一种安全协议,允许用户提供一个令牌,而不是用户名和密码来访问他们存储在特定服务提供者的数据。核心内容包括授权码、简化流程、密码凭证和客户端凭证四种授权模式。文件类型通常表现为文档、规范或标准,详细规定了如何在网站或移动应用中实施安全和授权机制。修饰语通常强调其开放性和互联网行业的广泛采纳,如“行业标准授权框架”或“广泛采用的安全协议”,以及它为开发者提供的灵活性和便捷性,例如“简化API访问”和“精细权限控制”。OAuth 2.0为现代移动和网络服务提供了一种灵活且可扩展的交互方式。
作者其他创作
大纲/内容
实现
authelia
dex
cas
Hydra
sso
ory
spring-authorization-server
casbin
casdoor
工具
json-web-key-generator
安全最佳实践
Proof Key for Code Exchange by OAuth Public Clients
OAuth 2.0 Demonstrating Proof of Possession (DPoP)
OAuth 2.0 Threat Model and Security Considerations
协议
痛点
需要第三方应用来存储资源<br>所有者将来使用的凭据,通常是明文密码<br><br>
需要服务器支持密码认证
第三方应用程序获得了对所有者的受保护资源的过度广泛的访问<br><br>
资源所有者不能撤销对第三方的访问
任何第三方应用程序的妥协都会导致妥协<br>最终用户的密码以及所有受此保护的数据<br>密码。
角色
资源拥有者
资源服务器
客户端
授权服务器
协议流
授权许可
授权码
隐式
隐式授权是经过优化的简化授权代码流对于在浏览器中使用脚本语言实现的客户端,如<br>作为JavaScript
资源所有者密码凭据
客户端凭据
客户代表自己行事
访问令牌
刷新令牌
客户端注册
客户端标识符
客户端认证
客户端密码
协议的端点
授权端点
重定向端点
绝对URI
可以添加查询参数
不能包含片段
必须HTTPS
令牌端点
可以添加查询参数
post
https
客户端认证
访问令牌的范围
Authorization Server Metadata
/.well-known
openid-connect
实现
OpenID-Connect-Java-Spring-Server
ory
腾讯云idam
阿里云idaas
hydra
kratos
协议
交互流程
ID Token
iss
sub
aud
iat
auth_time
nonce
acr
amr
azp
身份验证
使用授权代码流进行身份验证
客户端准备一个包含所需请求参数的身份验证请求
客户端向授权服务器发送请求
授权服务器对终端用户进行认证
授权服务器获取终端用户同意/授权
授权服务器使用授权代码将终端用户发送回客户端
客户端使用令牌端点的授权码请求响应
客户端接收到响应体中包含ID令牌和访问令牌的响应
身份令牌验证
客户端验证ID令牌并检索终端用户的主题标识符
使用隐式流进行身份验证
客户端准备一个包含所需请求参数的身份验证请求
客户端向授权服务器发送请求
授权服务器对终端用户进行认证
授权服务器获取终端用户同意/授权
授权服务器向终端用户发送一个ID令牌和一个访问令牌(如果请求的话)
所有响应参数都被添加到重定向URI的片段组件中
客户端验证ID令牌并检索终端用户的主题标识符
客户端需要让用户代理解析片段编码的值,<br>并将它们传递给客户端的处理逻辑以供使用
使用混合流进行身份验证
客户端准备一个包含所需请求参数的身份验证请求
客户端向授权服务器发送请求
授权服务器对终端用户进行认证
授权服务器获取终端用户同意/授权
授权服务器向终端用户发送授权代码,并根据响应类型将一个或多个附加参数发送回客户机
客户端使用令牌端点的授权码请求响应
客户端接收到响应体中包含ID令牌和访问令牌的响应
客户端验证ID令牌并检索终端用户的主题标识符
客户端认证
client_secret_basic
client_secret_post
client_secret_jwt
private_key_jwt
none
发现
定义客户端如何动态发现关于OpenID提供程序的信息
客户端动态注册
客户端元数据
客户端注册端点
客户端注册端点是OAuth 2.0保护资源,通过它可以请求新的客户端注册
OpenID 提供者可能需要带外提供的初始访问令牌以将注册请求限制为仅授权客户或开发人员
客户端注册请求
V2.1
0 条评论
下一页