建立使用Identity Server 4認證的Web 用戶端。
書接上回,我們已經搭建好了基于Identity Server 4的認證服務和管理應用(如果還沒有搭建,參看本系列前兩部分,相關代碼可以從github下載下傳:https://github.com/zhenl/IDS4Admin )。
現在我們來建立Web用戶端。基本上可以按照Identity Server官網教程來: https://identityserver4.readthedocs.io/en/latest/quickstarts/2_interactive_aspnetcore.html 。隻不過我使用的是.Net 6,代碼上有少許出入。
首先建立一個Asp.Net Core Web項目,使用MVC項目模闆,在建立時選擇不需要身份認證。然後引入程式包 Microsoft.AspNetCore.Authentication.OpenIdConnect。
接下來修改Program.cs,.Net 6引入了簡潔模式,代碼看上去有些不同。
增加的代碼進行了注釋。需要注意的是,由于我們的測試認證伺服器運作在http://localhost:4010,沒有使用HTTPS協定,是以增加了options.RequireHttpsMetadata = false。
還需要修改lanuch.json中的代碼,将項目改變為自啟動項目,不依賴IIS Express:
最後,修改Index.cshtml,顯示使用者資訊:
用戶端就編寫完成了,然後使用管理應用(我這裡是http://localhost:4003)向認證服務的資料庫中增加這個用戶端的定義。設定項很多,可以參考現有的管理用戶端進行設定,也可以克隆現有的用戶端進行修改。主要的設定是基本資訊和認證登出部分,特别注意别忘了設定用戶端密鑰,并且密鑰需要與用戶端代碼中的相同,還有就是允許作用域也要和代碼中的相同。這兩部分的截圖如下:

設定完成後,通路這個用戶端http://localhost:7002,會重定位到認證伺服器提示登入,登入後,會出現下面的界面:
同意确認後,回到我們需要通路的界面:
最後,增加登對外連結接,将這個連結增加到_Layout.chstml中,在菜單代碼下面增加這個連結:
簡化起見,我們在HomeController中增加登出代碼,很簡單:
到此,采用Identity Server 4進行認證管理的Web用戶端就初步搭建完成了。下一步,我們需要搭建一個受Identity Server 4 保護的Web Api。
上述代碼可以github下載下傳: https://github.com/zhenl/IDS4ClientDemo,喜歡的話給個star。
本文來自部落格園,作者:尋找無名的特質,轉載請注明原文連結:https://www.cnblogs.com/zhenl/p/15622734.html