简介
IdentityServer4是一个基于ASP.NET CORE2使用OAuth2.0协议和OpenID Connect的框架
特性如下:
- Authentiaction作为一个Service
集中的登录逻辑和工作流程应用于你所有类型的应用,IdentityServer是一个官方认证的OIDC解决方案。
- 单点登录(SSO)
- 获取API的控制权
- 联合网关
支持扩展的身份提供者,比如Azure 谷歌 facebook等。可以保护你的应用连接至这些外部扩展的细节。
- 专注于客户化
- 开源成熟
- 免费和商业支持
大纲
最常见的交互方式如图:
- 浏览器访问Web应用
- Web访问Web APIS(有时是自我行为,有时是用户行为)
- 浏览器访问API
- app访问API
- 服务端访问API
- API和API通信
每一层都有资源保护并且声明了认证和授权,针对的是同一组用户存储。
将这些基础的安全功能外包给一个安全密钥(token)服务,来防止在应用和端点上复制该功能。
认证
当一个应用知道当前用户的身份时,需要进行验证。这个应用指那些管理用户数据行为,并且确保用户能够访问用户所允许的数据。最常见的例子是(经典)Web应用程序——但基于本地和基于js的应用程序也需要进行身份验证。
最常见的认证协议是SAML2p,WS-Federation 和 OpenID Connect,saml2p是最流行和最广泛部署。而OIDC是最新的也最具潜力和未来的。
API ACCESS
应用程序访问API最基本的两种方式,一种是用应用的身份一种是用用户的身份,有时候也可以两者结合起来。
OpenID Connect and OAuth 2.0 – better together
oidc和oauth2结合起来更好
两者是非常相似的,事实上OIDC是基于OAuth2.0的一个扩展。他将身份验证和API访问这两个基本安全问题合并到一个单一协议中——通常只对安全令牌服务进行一次往返。
IdentityServer4是一种为了解决当今移动互联网常见的安全问题而将两种协议高度优化的协议。
IDS4如何运作
它其实是一种加了兼容OIDC连接和OAuth2.0 endpoints规范的ASP.NET CORE的中间件。
比如你创建了一个包含登录登出页面(按需可能有Consent(同意(授权))页面。IDS4会加一些必要的协议头,以至于客户端能够通过标准的协议来访问它。
虽然我们构建宿主应用程序时可以尽可能如你想的一样复杂,但通常建议仅通过与验证相关的UI来尽量减少攻击面。