IdentityServer4授权模式应用场景
- OpenID 和 OAuth 的区别
- IdentityServer4,NET Core下的安全框架
- 客户端模式(Client Credentials)
- 密码模式(resource owner password credentials)
- 简化模式(implicit flow)
- 授权码模式(Authorization code flow)
- 混合模式(Hybrid Flow)
OpenID 和 OAuth 的区别
- OpenID:Authentication,即认证,用户是谁?
- OAuth:Authorization,即授权,用户能做哪些操作?
- OpenID Connect(OIDC):基于OAuth协议,是“认证”和“授权”的结合。
OAuth2提供了Access Token来解决授权第三方客户端访问受保护资源的问题。 OIDC在这个基础上提供了ID Token来解决第三方客户端标识用户身份认证的问题。。
IdentityServer4
IdentityServer4 是 ASP.NET Core的一个包含OpenID Connect和OAuth 2.0协议的框架,提供了单点登录,集中控制,API访问控制等功能。
客户端模式(Client Credentials)
适用于和用户无关,机器与机器之间直接交互访问资源的场景。
POST https://api.oauth2server.com/token
grant_type=client_credentials&
client_id=CLIENT_ID&
client_secret=CLIENT_SECRET
密码模式(resource owner password credentials)
适用于当前的APP是专门为服务端设计的情况。
POST https://api.oauth2server.com/token
grant_type=password&
username=USERNAME&
password=PASSWORD&
client_id=CLIENT_ID
简化模式(implicit flow)
适用于浏览器WEB应用,支持
- 用户认证(JavaScript 应用或传统服务端渲染的Web应用)
- 用户认证+授权(JavaScript应用)
简化模式下ID Token和Access Token都是通过浏览器的前端通道传递的。
所以如果是传统服务端Web应用并且仅是在服务端使用Access Token的话,推荐使用Hybrid Flow。
授权码模式(Authorization code flow)
授权码模式通过后台传输Tokens,相对于简化模式会更安全一点。
但每当考虑使用授权码模式的时候,请使用混合模式。混合模式会首先返回一个可验证的ID Token并且有更多其他特性。
混合模式(Hybrid flow)
适用于服务器端 Web 应用程序和原生桌面/移动应用程序。
混合模式是简化模式和授权码模式的组合。混合模式下ID Token通过浏览器的前端通道传递,而Access Token和Refresh Token通过后端通道取得。
参考
分类:
NET Core Basic
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端