天天看點

Identity Server 4 從入門到落地(七)—— 控制台用戶端

建立Identity Server 4的控制台用戶端

前面的部分:

Identity Server 4 從入門到落地(一)—— 從IdentityServer4.Admin開始

Identity Server 4 從入門到落地(二)—— 了解授權碼模式

Identity Server 4 從入門到落地(三)—— 建立Web用戶端

Identity Server 4 從入門到落地(四)—— 建立Web Api

Identity Server 4 從入門到落地(五)—— 使用Ajax 通路 Web Api

Identity Server 4 從入門到落地(六)—— 簡單的單頁面用戶端

認證服務和管理的github位址: https://github.com/zhenl/IDS4Admin

用戶端及web api示例代碼的github位址:https://github.com/zhenl/IDS4ClientDemo

前面我們試驗的用戶端都是有最終使用者參與的,也就是需要使用者登入進行認證。如果項目中存在背景服務通路Web Api,這種情況下沒有使用者參與認證過程,就需要使用Client Credentials flow。我們建立一個簡單的控制台項目試驗一下。

首先在認證服務的管理應用中建立一個新的用戶端,選擇使用Client Credentials flow:

Identity Server 4 從入門到落地(七)—— 控制台用戶端

然後設定作用域和用戶端密鑰,這裡作用域中添加myapi,通路我們的測試Api:

Identity Server 4 從入門到落地(七)—— 控制台用戶端

在我們前面的測試解決方案中增加一個新的.Net 6控制台項目,名稱為IDSClientConsole,建立完成後,引入程式包IdentityModel:

Identity Server 4 從入門到落地(七)—— 控制台用戶端

修改Program.cs如下:

設定解決方案的啟動項目,将這個控台項目和Web Api設定為同時啟動:

Identity Server 4 從入門到落地(七)—— 控制台用戶端

項目啟動後,控制台應用通過認證,然後通路Web Api擷取資料,結果如下:

Identity Server 4 從入門到落地(七)—— 控制台用戶端

到這裡,我們已經試驗了在Web應用、單頁面應用和用戶端應用中通路認證服務進行認證,還測試了認證服務對Web Api的保護,接下來準備落地,為在項目中實際使用做準備,還有如下問題需要解決:

基于.Net Framework的遺留項目如何使用認證服務。

現有的使用Asp.Net Core使用Identity的項目如何改造。

簡化用戶端和Web Api的程式設計,将代碼中寫死的配置項移動到配置檔案。

認證服務和管理應用的多種部署方式:部署到IIS,部署到Docker容器等等。

接下來的部分我們将一一解決這些問題。

本文來自部落格園,作者:尋找無名的特質,轉載請注明原文連結:https://www.cnblogs.com/zhenl/p/15650262.html