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經過後端通道取得。