Heim > Backend-Entwicklung > C#.Net-Tutorial > Ausführliche Erläuterung des Beispiels IdentityServer4 SigningCredential (RSA-Zertifikatverschlüsselung).

Ausführliche Erläuterung des Beispiels IdentityServer4 SigningCredential (RSA-Zertifikatverschlüsselung).

零下一度
Freigeben: 2018-05-22 16:08:07
Original
3129 Leute haben es durchsucht

IdentityServer4 bietet standardmäßig zwei Zertifikatverschlüsselungskonfigurationen:

services.AddIdentityServer()
    .AddDeveloperSigningCredential()
    .AddTemporarySigningCredential();
Nach dem Login kopieren

Diese beiden Zertifikatverschlüsselungsmethoden sind temporär und müssen bei jedem Neustart neu gestartet werden , wird ein neues Zertifikat neu generiert, was zu einem Problem führt. Das vor dem Neustart generierte access_token ist nach dem Neustart nicht mehr anwendbar, da sich das Zertifikat geändert hat und sich auch die entsprechende Verschlüsselungsmethode geändert hat, sodass das folgende Problem auftritt :

Ausführliche Erläuterung des Beispiels IdentityServer4 SigningCredential (RSA-Zertifikatverschlüsselung).

Fehlermeldung:

Www-Authenticate:Bearer error="invalid_token", error_description="Der Signaturschlüssel wurde nicht gefunden"

Die Lösung besteht darin, immer ein Zertifikat zu verwenden. Konfigurieren wir es zunächst wie folgt:

services.AddIdentityServer()
    .AddDeveloperSigningCredential();
Nach dem Login kopieren

Sie können es überprüfenAddDeveloperSigningCredentialImplementieren Sie die Quelle Code und startet das Projekt. IdentityServer4 generiert eine tempkey.rsa-Zertifikatdatei im Projektverzeichnis: Wenn der Code in

{
    "KeyId": "4e1765de45ef639261115198826dfea7",
    "Parameters": {
        "D": "FnB7kIinBgoZDaRqIrRQHEF45FBF9amOrTn8oFdmsxPqJbh11bHeCw11AtCCC4p1mm750onDXeP+yoBHymr/wNn40VmGdhR4hnObHhhw5pyQKECIS41DFDatCZif9uhDgHsOvYHMRVNSapDFoDUvbTE6t7rv4prn2fDt5mzRD9AqdT2HyTcwa/H1haaZNwmy3UevYYy8ya4kKXvjRo6+O7BMBh+yBvHgezQ57Ye/NfZfDMITs4djbqELrYVXCTMltNsWWhQtS62cqvKboxoiXfSm67u/li5Fdusc5Z2zsyt5rE/V8h/ffBvS9N9v0VoDTdFqLYkuul0DvTZ/pqXtMQ==",
        "DP": "XQDf46csbwu/xX+jwo5VQQ8sKVlVBLuxSNTAbNS6O/aCg9eEjZ58EJ712JgqqORcDMg5JRejN3Zxxoij4roJogyvvw6QSws/H+UTmtuuudgT59OB1TyNGihMVSTLXaw4Kgdj8D8IK8v0okdFEpYugzIIFe1yl0lSzR7fkF+NKC0=",
        "DQ": "4TvT9ujJ38sTluz0dUSIUD3NCWJOMDKOB/cL3RaDyMf/MTSxNFfWDuuW55F2P8mncHhqLuANcg2l3h8xom+1ucn+ve45JNoWja4fpWQ16rmijPc5yKRe0uAGEaXJiTAEvIxXG18zvNA8Fab+L2X1h+1r35ZLZFYj+EyhkqQ7u5k=",
        "Exponent": "AQAB",
        "InverseQ": "nTAEt8v+DlAn6h7Z1Ey1x4Z56OfOmCvY01nte4f3OuSmBXoEaTSoGsXScweAMoSGb0aOG1qpvErtY+JykREeLJxvm4P3DAHL5lJWvDKPvCWJOD9jfzhBUyIhCoqQ8EIHjFxBNKyNefAsVuKdH6R+ApuhpF8XVhR59zLawUQWLEg=",
        "Modulus": "43j4tvNZy7IxuiDwZzWv9KiS5kSYIeBqEvQ7zkQmRT3IEsseiTv698iQx8qn+de8FeGFEa8O6igFU2VXqFyWJilTuPmeBPJxIMCqfxdxF+96giVSpN4rOFaH/V+IPNTQoYCLFwcUR2saFywUeKWpsRFhQCymsFIk3AlWu7jcqgKHrELsJpn5KVmedb6JZcVKMIfTrcY6hWQz2JNEhTOEI10ZVZ7ueEp2Q2+1/udvp47wPMhzriXJTFP7Y4ozU2THbuwIqCXM5DNBGUpEug0vlCAhwn6nvAo8e9fT0lpUzTd2T8wWzwuHkAgyjB0XTzSYR1fMJIKH1zDs25RqmlepgQ==",
        "P": "9lGtQw9yXz4nbepESFDxAMfDlmiI9Gj3Q3FecKIgGVVi9WVr19lzBcszhsVybA8n1OyPXHdOyuSWOiVp69ibo5OOXLL4iWzY1VOouXeZrYimxNPvVKlRf8AsVcv3n/0/FEhwY9gnQm4PZYUGwQ96WZ5Z/CWJ9xTORg54Wh79hk0=",
        "Q": "7Gmr/h33bM+9W4Ygh+tNh3/etECuT/RQ1LMS5uBXxXdvUl6wSm2+ec/CBRobxVHG2pDXdr0pegn0Yz4MprsLtS5KvFg6yopI3Y3TptTGNZPtbd1O7P4i6b+RNOYCq0Y99mkGofqAlAMnDG+SA2EJN2ugPjLelC7GWtfzNG5NMgU="
    }
}
Nach dem Login kopieren

AddDeveloperSigningCredential ausgeführt wird, wird zunächst ermittelt, ob die tempkey.rsa-Zertifikatdatei vorhanden ist Wenn es nicht existiert, erstellen Sie eine neue tempkey.rsa-Zertifikatsdatei und verwenden Sie diese Zertifikatsdatei, falls vorhanden.

Wenn wir also konfigurieren, übergeben Sie einfach einen tempkey.rsa Namen der Zertifikatsdatei:

services.AddIdentityServer()
    .AddDeveloperSigningCredential("tempkey.rsa");
Nach dem Login kopieren

Natürlich können Sie das auch Benennen Sie die Zertifikatsdatei tempkey.rsa um.

Referenz:

  • Der Signaturschlüssel wurde nicht gefunden

  • IdentityServer4 Dienste konfigurieren

  • IdentityServer4-Kryptographie, Schlüssel und HTTPS

  • ASP.NET Core implementiert die ResourceOwnerPassword- und ClientCredentials-Modi von OAuth2.0

  • IdentityServerBuilderExtensionsCrypto.cs

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung des Beispiels IdentityServer4 SigningCredential (RSA-Zertifikatverschlüsselung).. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage