デプロイ¶
あなたのアイデンティティサーバーがあるだけ IdentityServerミドルウェアを含む、標準的なASP.NET Coreアプリケーション。まずパブリッシュとデプロイメントに関する公式Microsoftのドキュメントをお読みください。
典型的なアーキテクチャ¶
通常、高可用性のためにIdentityServerの配備を設計します。
IdentityServer自体はステートレスなので、サーバの親和性は必要ありませんが、インスタンス間で共有する必要があるデータがあります。
設定データ¶
これには、通常、
- リソース
- クライアント
- スタートアップ設定、例えばキーマテリアル、外部プロバイダ設定など
そのデータを格納する方法は、使用環境によって異なります。構成データがほとんど変更されない状況では、メモリ内のストアとコードまたは構成ファイルを使用することをお勧めします。
高度に動的な環境(Saasなど)では、データベースまたは構成サービスを使用して構成を動的にロードすることを推奨します。
IdentityServerは、コード構成と構成ファイル(ここを参照)をそのまま使用できます。データベースの場合は、Entity Framework Coreベースのデータベースをサポートします。
また、実装することで独自の構成ストアを構築することができますIResourceStoreし、IClientStore。
鍵素材¶
スタートアップコンフィギュレーションのもう一つの重要な部分は、キーマテリアルです。キーマテリアルと暗号の詳細については、ここを参照してください。
運用データ¶
特定の操作では、IdentityServerに状態を保存するための永続ストアが必要です。これには次のものがあります。
- 承認コードを発行する
- 参照およびリフレッシュトークンの発行
- 同意書を保管する
運用データの保存に従来のデータベースを使用することも、Redisのような永続性機能を備えたキャッシュを使用することもできます。上記のEFコア実装は、運用データもサポートしています。
またIPersistedGrantStore、デフォルトでIdentityServerがメモリ内バージョンをインジェクトするように実装することで、独自のカスタムストレージメカニズムのサポートを実装することもできます。