/ / Sprawdzanie poprawności podpisywania certyfikatu podczas korzystania z OpenId Connect - certyfikat, jwt, openid-connect, tożsamość serwer3

Sprawdzanie poprawności certyfikatu podpisywania przy korzystaniu z OpenId Connect - certyfikat, jwt, openid-connect, identityserver3

Próbuję zrozumieć, czy mój interfejs WWW hostowany przez Owin musi zweryfikować certyfikat użyty do podpisania tokenu JWT.

Skonfigurowałem dostawcę tożsamości za pomocą IdentityServer. Po stronie „polegającej na stronie” mam ASP.NET WebApi hostowane przy użyciu Owin. Po stronie RP używam UseOpenIdConnectAuthentication do zainstalowania OpenIdConnectAuthenticationMiddleware w potoku Owin.

Co do tej pory działa:

  1. Każdy nieuwierzytelniony użytkownik odwiedzający moją aplikację internetową jest przekierowywany na stronę logowania na IdentityServer
  2. Użytkownik loguje się
  3. Użytkownik zostaje przekierowany z powrotem do mojej aplikacji internetowej
  4. Moja aplikacja internetowa otrzymuje JWT zawierający token id i token dostępu
  5. Moja aplikacja internetowa wywołuje punkt końcowy informacji o użytkowniku, aby pobrać oświadczenia za pomocą tokena dostępu

Brakuje mi logiki do sprawdzenia certyfikatu, który został użyty do podpisania JWT zawierającego token tożsamości.

Za pomocą Fiddlera mogłem zobaczyć, że OpenIdConnectAuthenticationMiddleware pobiera klucze z serwera tożsamości (dzwoniąc https://myidentityserver.example.com/core/.well-known/jwks HTTP / 1.1)

Czy OpenIdConnectAuthenticationMiddleware wykonuje jakąś weryfikację certyfikatu? Czy powinienem sam pisać ten kod?

Odpowiedzi:

1 dla odpowiedzi № 1

Opisany przepływ opiera się na fakcie, żecertyfikat weryfikacyjny jest pobierany z punktu końcowego chronionego TLS (URL JWK), który przedstawia prawidłowy certyfikat serwera SSL. Ten certyfikat serwera SSL gwarantuje, że rozmawiasz z właściwym dostawcą OpenID Connect.


0 dla odpowiedzi nr 2

Znaleziono kilka wyjaśnień tutaj

Do sprawdzania poprawności tokenów referencyjnych udostępniamyprosty punkt końcowy zwany punktem końcowym sprawdzania poprawności tokenu dostępu. Ten punkt końcowy to np. używane przez nasze oprogramowanie pośredniczące do sprawdzania poprawności tokenów dostępu, które jest na tyle sprytne, aby odróżnić samodzielne (JWT) od tokenów referencyjnych i wykonuje weryfikację lokalnie lub przy użyciu punktu końcowego. Wszystko to jest całkowicie przejrzyste dla API.

Po prostu podaj uprawnienie (podstawowy adres URL usługi IdentityServer), a oprogramowanie pośrednie użyje go do pobrania konfiguracji (klucze, nazwa wystawcy itp.) I zbudowania adresu URL do punktu końcowego sprawdzania poprawności