您的身份伺服器只是一個標準的ASP.NET Core應用程式,包括IdentityServer中間件。首先閱讀有關發佈和部署的官方Microsoft "文檔" (尤其是有關負載平衡器和代理的 "部分" )。 30.1 典型架構 通常,您將設計IdentityServer部署以實現高可用性: Iden ...
您的身份伺服器只是一個標準的ASP.NET Core應用程式,包括IdentityServer中間件。首先閱讀有關發佈和部署的官方Microsoft 文檔(尤其是有關負載平衡器和代理的部分)。
30.1 典型架構
通常,您將設計IdentityServer部署以實現高可用性:
IdentityServer本身是無狀態的,不需要伺服器關聯 - 但是有些數據需要在實例之間共用。
30.2 配置數據
這通常包括:
- 資源
- 客戶
- 啟動配置,例如密鑰材料,外部提供商設置等......
存儲數據的方式取決於您的環境。在配置數據很少更改的情況下,我們建議使用記憶體存儲和代碼或配置文件。
在高度動態的環境(例如Saas)中,我們建議使用資料庫或配置服務動態載入配置。
IdentityServer支持開箱即用的代碼配置和配置文件(請參閱此處)。對於資料庫,我們為基於Entity Framework Core的資料庫提供支持。
您還可以通過實現IResourceStore
和IClientStore
構建自己的配置存儲。
30.3 密鑰材料
另一個重要的啟動配置是您的主要材料,請參閱此處以獲取有關密鑰材料和加密的更多詳細信息。
30.4 運營數據
對於某些操作,IdentityServer需要持久性存儲來保持狀態,這包括:
- 發佈授權碼
- 發出參考和刷新令牌
- 存儲同意
您既可以使用傳統資料庫來存儲操作數據,也可以使用具有Redis等持久性功能的緩存。上面提到的EF Core實現也支持運營數據。
您還可以通過實現IPersistedGrantStore
對自己的自定義存儲機制的支持- 預設情況下IdentityServer會註入記憶體中的版本。
30.5 ASP.NET Core 數據保護
ASP.NET Core本身需要共用密鑰材料來保護敏感數據,如cookie,狀態字元串等。請參閱此處的官方文檔。
您可以重覆使用上述持久性存儲之一,也可以使用像共用文件這樣的簡單文件。