IdentityServer4 SigningCredential(RSA 인증서 암호화) 예시에 대한 자세한 설명

零下一度
풀어 주다: 2018-05-22 16:08:07
원래의
3076명이 탐색했습니다.

IdentityServer4는 기본적으로 두 가지 인증서 암호화 구성을 제공합니다.

services.AddIdentityServer()
    .AddDeveloperSigningCredential()
    .AddTemporarySigningCredential();
로그인 후 복사

이 두 가지 인증서 암호화 방법은 프로젝트가 다시 시작될 때마다 새 인증서가 재생성되므로 한 가지 문제는 < 재시작 전에 생성된 code>access_token은 인증서가 변경되고 해당 암호화 방법도 변경되었기 때문에 재시작 후에는 더 이상 적용되지 않습니다. 따라서 다음과 같은 문제가 발생합니다. access_token,在重启之后,就不适用了,因为证书改变了,对应的加密方式也改变了,所以,就会出现下面这个问题:

IdentityServer4 SigningCredential(RSA 인증서 암호화) 예시에 대한 자세한 설명

错误信息:

Www-Authenticate:Bearer error="invalid_token", error_description="The signature key was not found"

解决方式,就是始终使用一个证书,我们先这样配置:

services.AddIdentityServer()
    .AddDeveloperSigningCredential();
로그인 후 복사

可以查看下AddDeveloperSigningCredential实现源码,启动项目,IdentityServer4 会在项目目录中生成一个tempkey.rsa证书文件:

{
    "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="
    }
}
로그인 후 복사

AddDeveloperSigningCredential中代码执行,会先判断tempkey.rsa证书文件是否存在,如果不存在的话,就创建一个新的tempkey.rsa证书文件,如果存在的话,就使用此证书文件。

所以,我们配置的时候,传递一个tempkey.rsa证书文件名,就可以了:

services.AddIdentityServer()
    .AddDeveloperSigningCredential("tempkey.rsa");
로그인 후 복사

当然,你也可以对tempkey.rsa

오류 메시지:
  • Www-Authenticate:Bearer 오류 ="invalid_token", error_description= "서명 키를 찾을 수 없습니다"

    해결책은 항상 인증서를 사용하는 것입니다. 먼저 다음과 같이 구성해 보겠습니다.
  • rrreee

  • AddDeveloperSigningCredential 소스 코드의 구현을 확인할 수 있습니다. 프로젝트를 시작하면 IdentityServer4는 프로젝트 디렉터리에 tempkey.rsa 인증서 파일을 생성합니다:

    rrreee

    AddDeveloperSigningCredential AddDeveloperSigningCredential의 코드가 실행될 때 , tempkey.rsa가 먼저 판단됩니다.인증서 파일이 존재하지 않는 경우 새로운 tempkey.rsa인증서 파일을 생성하십시오. 파일.
  • 따라서 구성할 때 tempkey.rsa 인증서 파일 이름을 전달하면 됩니다.

  • rrreee
  • 물론 tempkey.rsacode>도 전달할 수 있습니다. 인증서 파일 이름을 바꾸세요.
참조: 🎜🎜🎜🎜서명 키를 찾을 수 없습니다🎜🎜🎜🎜IdentityServer4 서비스 구성🎜🎜🎜🎜IdentityServer4 암호화, 키 및 HTTPS🎜🎜🎜🎜 ASP.NET Core OwnerPassword 및 ClientCredentials 패턴용 리소스 🎜 🎜🎜🎜IdentityServerBuilderExtensionsCrypto .cs🎜🎜🎜

위 내용은 IdentityServer4 SigningCredential(RSA 인증서 암호화) 예시에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿