gpt4 book ai didi

c# - 在 Azure Active Directory 身份验证中为什么使用授权代码流

转载 作者:行者123 更新时间:2023-12-03 01:32:33 27 4
gpt4 key购买 nike

我正在开发一个 .net MVC 和 Web API 项目,并使用 Active Directory 对 API 用户进行身份验证,在身份验证时,从 AD 返回代码,我必须交换代码才能获取 token 并使用该 token 调用API,问题是为什么会返回code,为什么我必须用它来交换token?我可以直接获得 token 吗?

最佳答案

这都是出于安全原因。

OAuth 2.0 希望满足这两个标准:

  • 所有开发者都不会拥有启用 SSL 的服务器,您应该允许他们使用非 HTTPS 重定向 URI
  • 您不希望黑客能够通过拦截请求来窃取访问/刷新 token 。

由于授权代码授予具有将授权代码交换为访问 token 的额外步骤,因此它提供了隐式授予类型中不存在的附加安全层。

根据 Nate Barbettini 的说法,我们需要将身份验证代码交换为访问 token 的额外步骤,因为身份验证代码可以在前 channel 中使用(安全性较低),而访问 token 可以在后 channel 中使用(更安全)。

因此,安全优势在于访问 token 不会暴露给浏览器,因此无法从浏览器拦截/抓取。我们更信任通过反向 channel 进行通信的 Web 服务器。然后, secret 的访问 token 可以保留在 Web 服务器上,并且不会暴露给浏览器(即前端 channel )。

有关更多信息,请观看这​​段精彩的视频:

OAuth 2.0 和 OpenID Connect(简单英语)https://youtu.be/996OiexHze0?t=26m30s (开始 26 分钟)

关于c# - 在 Azure Active Directory 身份验证中为什么使用授权代码流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60986622/

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