在对移动应用程序使用OAuth 2.0授权码流时,浏览器是否应向移动应用程序返回授权码或访问令牌? 我们知道:
在在对移动应用程序使用OAuth 2.0授权码流时,浏览器是否应向移动应用程序返回授权码或访问令牌? 我们知道:,oauth,oauth-2.0,single-sign-on,access-token,pkce,Oauth,Oauth 2.0,Single Sign On,Access Token,Pkce,在OAuth 2.0的授权代码流中有几个实体: A) 用户 B) 用户代理(浏览器) C) 客户端应用程序(移动应用程序) D) 机密客户端(中间人Web服务器) E) 授权服务器 我们还知道Web服务器保留客户机密,而授权服务器的/token路由需要授权码和客户机密来返回访问令牌 我的问题: 当用户通过browser和Authorization Server登录Authorization Provider并将授权代码返回到重定向URL(到Web服务器)时,应采用以下哪种方法?为什么? 十)
OAuth 2.0
的授权代码流中有几个实体:
- A)
用户
- B) 用户代理(
浏览器
)
- C) 客户端应用程序(
移动应用程序
)
- D) 机密客户端(中间人
Web服务器
)
- E)
授权服务器
我们还知道Web服务器
保留客户机密
,而授权服务器
的/token
路由需要授权码
和客户机密
来返回访问令牌
我的问题:
当用户通过browser
和Authorization Server
登录Authorization Provider
并将授权代码
返回到重定向URL(到Web服务器
)时,应采用以下哪种方法?为什么?
十)
Web服务器
应以适当的格式返回授权代码
,作为对浏览器
的响应
浏览器
打开移动应用
,并将授权码
传递给它
移动应用程序
用于将授权代码
发送到Web服务器
(通过调用API),而Web服务器
将请求发送到授权服务器
,以获取访问令牌
,并将其返回到移动应用程序
Y)
Web服务器
应通过接收到的授权码
获取访问令牌
,并将访问令牌
以格式返回给浏览器作为响应
浏览器
打开移动应用
,并将访问令牌
传递给它
我看到了下图:
并且认为正确的方式是X,因为在X方式中,Mobile App
通过API
直接获取访问令牌,而无需浏览器
深度链接,X是安全的。但我需要一份有效的文件,并在答复中提及官方文件
我想确定
哪一个是正确的方法?X还是Y?
Discalimer:我不是一个移动应用程序开发者
我认为X是正确的,因为:
坚持标准流程
从Web服务器获取access_令牌,然后重定向到应用程序是不安全的,因为该令牌的格式为明文(url),可能被拦截或记录李>
我认为关于设计的第6点可以由一个帖子来完成吗?请求和值位于响应的主体中(无日志记录),并且您可以使用PKCE来提高安全性李>
其他有用的链接: