web-dev-qa-db-ja.com

IdentityServer4の署名資格情報とは何ですか?

現在、.NET Core WebアプリでIdentity Server 4を実装しています。

Identity Serverのドキュメントを確認しました。 (DIを使用して)Identityサーバーを構成する場合、次の行があります。

.AddTemporarySigningCredential

私はこの署名証明書が何であるかを理解しようとしていますが、理解できませんでした。したがって、組み込みの一時を使用しても大丈夫なのか、別のものを提供する必要があるのか​​はわかりません。

私の質問は、署名資格情報とは何ですか、どのように使用すればよいですか?

Identityサーバーのドキュメントでは、これが定義です。

指定された鍵素材をさまざまなトークン作成/検証サービスに提供する署名鍵サービスを追加します。 X509Certificate2、SigningCredential、または証明書ストアからの証明書への参照を渡すことができます。

だからそれは重要だと思う:)

14
Shaul Zuarets

承認サーバーは、キーでトークンに署名します。リソースサーバーは、トークンとキーの整合性を検証する必要があります。一緒になって、非対称(たとえば、公開/秘密)キーペアを形成します。デフォルトでは、IdentityServerは_/.well-known/openid-configuration_エンドポイントでトークンを検証するための公開鍵を公開します。

開発シナリオでは、通常、前述のキーのような秘密を適切に管理するという大騒ぎをスキップしたいでしょう(これは本当に本番環境で適切に行うことが重要です!)。これらの開発シナリオでは、。NET Core 1.xに使用されたAddTemporarySigningCredentialなどのアドホックソリューションを使用するオプションがあります。

。NET Core 2.xでは、これは change となり、AddDeveloperSigningCredential()拡張メソッドが必要になります。

それは、それが何であるかの質問に答えます。使用方法については、アプリケーションのStartupクラスのConfigureServices(...)メソッド内で、.NET Coreバージョンに応じて必要なメソッドを呼び出すだけです。

それとは別に、本番環境で適切なキーペアを使用することに注意することを除いて、特別なことをする必要はありません。

暗号化、キー、およびHTTPS および キーのサービスの構成に関するビット のドキュメントも参照してください。後者のドキュメントから、生産ケースに関連する代替手段を次に示します。

  • AddSigningCredential

    指定された鍵素材をさまざまなトークン作成/検証サービスに提供する署名鍵サービスを追加します。 _X509Certificate2_、SigningCredential、または証明書ストアからの証明書への参照を渡すことができます。

25
Jeroen