2017-09-10 9 views
3

Nous sommes en train de mettre en œuvre Identity Server 4 avec notre application web .NET Core.Quelle est la référence de signature dans IdentityServer4?

J'ai parcouru la documentation d'Identity Server. Lors de la configuration du serveur d'identité (en utilisant DI), il y a la ligne:

.AddTemporarySigningCredential 

J'essaie de comprendre ce que ce titre de compétence de signature est mais n'a pas pu comprendre. Par conséquent, je ne sais pas si c'est bon d'utiliser le temporaire intégré, ou si je devrais en fournir un autre.

Ma question est: qu'est-ce qu'un certificat de signature et comment l'utiliser?

Dans la documentation du serveur d'identité telle est la définition:

Ajoute un service clé de signature qui fournit le matériel clé spécifiée pour les différents services de création/jeton de validation. Vous pouvez transmettre un certificat X509Certificate2, un certificat Signature ou une référence à un certificat à partir du magasin de certificats.

Il semble important :)

Répondre

8

Le serveur d'autorisation signera des jetons avec une clé. Les serveurs de ressources doivent vérifier l'intégrité du jeton avec une clé. Ensemble, ils forment une paire de clés asymétrique (par exemple publique/privée). Par défaut, IdentityServer publiera la clé publique pour la vérification des jetons sur le noeud final /.well-known/openid-configuration. Pour les scénarios de développement, vous voulez généralement ignorer les problèmes de gestion des secrets tels que les clés (ce qui est vraiment important de faire correctement en production!). Pour ces scénarios de développement, vous avez la possibilité d'utiliser des solutions adhoc telles que AddTemporarySigningCredential, qui a été utilisée pour .NET Core 1.x.

Avec .NET de base 2.x ce sera change et vous aurez besoin de la méthode d'extension AddDeveloperSigningCredential().

Cela répond à la question de ce que c'est. Comment l'utiliser: vous appelez simplement la méthode dont vous avez besoin en fonction de votre version .NET Core dans la méthode ConfigureServices(...) de la classe Startup de votre application. En dehors de cela, vous n'avez pas besoin de faire quelque chose de spécial, sauf bien sûr, veillez à utiliser une paire de clés appropriée en production. Voir aussi les documents sur Cryptography, Keys and HTTPS et the bit on Configuring Services for Keys. De ce dernier document, voici une alternative pertinente pour les cas de production:

  • AddSigningCredential

    Ajoute un service clé de signature qui fournit le matériel clé spécifiée aux différents services de création/jeton de validation. Vous pouvez transmettre un X509Certificate2, un SigningCredential ou une référence à un certificat du magasin de certificats.

+0

merci. J'ai lu les changements de rupture doc. Je n'ai pas compris ce que je devrais utiliser en production? –

+0

Oh, c'est vrai! Vous pouvez utiliser 'AddSigningCredential (...)', voir [ces documents] (http://docs.identityserver.io/en/release/topics/startup.html?highlight=x509#configuring-services). Mis à jour ma réponse un peu. – Jeroen

+0

C'est probablement parce que je ne comprends pas tout comme je devrais. Comment créer une clé pour AddSigningCredential? –