OAuth2 授权方式
2020-05-12 15:36:35 0 举报
登录查看完整内容
OAuth2 验证码授权
作者其他创作
大纲/内容
SSO认证鉴权中心
{ \"access_token\":\"ACCESS_TOKEN\
Browser
response_type=code // 要求返回授权码client_id=CLIENT_ID // 表明请求方redirect_uri=CALLBACK_URL // 回调scope=read // 授权范围
3. SSO上用户登录,并授权APP;此时携带授权码code跳回App
1.访问APP(未授权)
App应用
2. 用户登录成功并授权
凭证式
用户
1. 跳转SSO,请求用户授权
response_type=token // 直接返回令牌client_id=CLIENT_ID // 表明请求方redirect_uri=CALLBACK_URL // 回调scope=read // 授权范围
2. 返回令牌
关于令牌颁发回调网址:为了进一步保证安全,即使你拿到了 A 的 AUTHORIZATION_CODE、client_i,甚至client_secret,但你没有控制 A 的网站,你依然拿不到 access_token。access_token只发向已经在 B 注册的域名。
4. 请求令牌
令牌的位置是 URL 锚点(fragment),而不是查询字符串(querystring),这是因为 OAuth 2.0 允许跳转网址是 HTTP 协议,因此存在\"中间人攻击\"的风险,而浏览器跳转时,锚点不会发到服务器,就减少了泄漏令牌的风险。
1. 请求授权
密码式
App应用后端
隐藏式
Client
授权码
(命令行)
#token=ACCESS_TOKEN
grant_type=client_credentials // 授权方式client_id=CLIENT_ID // 表明请求方client_secret=CLIENT_SECRET // 同上
5. 向redirect_uri指定的网址发送一段 JSON 数据,颁发令牌
grant_type=password // 授权方式username=USERNAME // 用户名password=PASSWORD // 密码client_id=CLIENT_ID // 表明请求方
client_id=CLIENT_ID // 表明请求方client_secret=CLIENT_SECRET // 同上(需要保密)grant_type=authorization_code // 授权码授权code=AUTHORIZATION_CODE // 授权码redirect_uri=CALLBACK_URL // 令牌颁发回调网址
2. 跳转SSO,请求用户授权
code=AUTHORIZATION_CODE
收藏
0 条评论
回复 删除
下一页