gpt4 book ai didi

oauth - 在移动应用程序中使用 OAuth 2.0 授权代码流时,浏览器应该向移动应用程序返回授权代码或访问 token 吗?

转载 作者:行者123 更新时间:2023-12-04 15:42:50 27 4
gpt4 key购买 nike

我们知道:

OAuth 2.0 中,Authorization Code Flow 有几个实体:

  • A) 用户
  • B) 用户代理(浏览器)
  • C) 客户端应用程序(移动应用程序)
  • D) secret 客户(中间人 Web 服务器)
  • E) 授权服务器

我们还知道 Web Server 保存 Client SecretAuthorization Server/token 路由> 需要 Authorization CodeClient Secret 来返回 Access Token

我的问题:

当用户通过浏览器登录到Authorization Provider时,Authorization Server返回Authorization Code给重定向 URL(到 Web 服务器)应该采用以下哪一种方式?为什么?

X)

  1. Web 服务器 应返回授权码 作为对浏览器 的响应,格式为deep-linking格式。
  2. 浏览器打开移动应用并传递授权码给它
  3. 移动应用使用PKCE授权码 发送到 Web 服务器(通过调用 API),Web 服务器 将请求发送到 Authorization Server 获取 Access token 并将其返回给 Mobile App

是)

  1. Web Server 应该通过接收到的Authorization Code 获取Access Token 并返回Access Token 作为deep-linking 中对浏览器的响应格式。
  2. 浏览器打开移动应用并将访问 token 传递给它。

我看过下面的图here :

enter image description here

并认为正确的方法是 X 因为在 XMobile App 获取 Access Token直接通过 API 无需 Browser 深度链接和 X 是安全的。但我需要一份有效的文件,并在答案中引用官方文件。

我想确定...哪一个是正确的方法? X还是Y?

.

最佳答案

Discalimer: I'm not a mobile app developer.

我认为 X 是正确的,因为:

  1. 遵守标准流程
  2. 从 WebServer 获取 access_token 然后重定向到应用程序是不安全的,因为 token 采用明文格式 (url),可能会被拦截或记录。
  3. 我认为关于设计的第 6 点可以通过 POST 执行?请求和值在响应的正文中(无日志记录),您还可以使用 PKCE 以获得更好的安全性。

其他有用的链接:
oAuth2 for native app
oAuth2 Best pratices for native apps

关于oauth - 在移动应用程序中使用 OAuth 2.0 授权代码流时,浏览器应该向移动应用程序返回授权代码或访问 token 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57147028/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com