OpenID Connect(OIDC):基于OAuth协议,是“认证”和“受权”的结合。html
OAuth2提供了Access Token来解决受权第三方客户端访问受保护资源的问题。 OIDC在这个基础上提供了ID Token来解决第三方客户端标识用户身份认证的问题。。前端
IdentityServer4 是 ASP.NET Core的一个包含OpenID Connect和OAuth 2.0协议的框架,提供了单点登陆,集中控制,API访问控制等功能。后端
适用于和用户无关,机器与机器之间直接交互访问资源的场景。api
POST https://api.oauth2server.com/token grant_type=client_credentials& client_id=CLIENT_ID& client_secret=CLIENT_SECRET
适用于当前的APP是专门为服务端设计的状况。浏览器
POST https://api.oauth2server.com/token grant_type=password& username=USERNAME& password=PASSWORD& client_id=CLIENT_ID
适用于浏览器WEB应用,支持安全
简化模式下ID Token和Access Token都是经过浏览器的前端通道传递的。服务器
因此若是是传统服务端Web应用而且仅是在服务端使用Access Token的话,推荐使用Hybrid Flow。
框架
受权码模式经过后台传输Tokens,相对于简化模式会更安全一点。ide
但每当考虑使用受权码模式的时候,请使用混合模式。混合模式会首先返回一个可验证的ID Token而且有更多其余特性。ui
适用于服务器端 Web 应用程序和原生桌面/移动应用程序。
混合模式是简化模式和受权码模式的组合。混合模式下ID Token经过浏览器的前端通道传递,而Access Token和Refresh Token经过后端通道取得。