Я пытаюсь понять, должен ли мой веб-Api, поддерживаемый Owin, проверять сертификат, используемый для подписи JWT-токена.Проверка сертификата подписи при использовании OpenId Connect
Я установил поставщика удостоверений, используя IdentityServer. На стороне «полагающейся стороны» у меня есть ASP.NET WebApi, где используется Owin. На стороне RP я использую UseOpenIdConnectAuthentication для установки OpenIdConnectAuthenticationMiddleware в конвейере Owin.
Что работает до сих пор:
- Любой неаутентифицированное пользователя посетив веб-приложение будет перенаправлен на страницу входа на IdentityServer
- Пользователь регистрируется на
- пользователь перенаправляется обратно на мой веб-приложение
- Мое веб-приложение получает JWT, содержащий токен доступа и токен доступа
- Мое веб-приложение вызывает конечную точку информации пользователя, чтобы получить претензии, используя токен доступа
Отсутствует логика для проверки сертификата, который использовался для подписи JWT, содержащего токен идентификации.
Использование Фидлер, я был в состоянии видеть, что OpenIdConnectAuthenticationMiddleware получает ключи от сервера идентичности (вызывая https://myidentityserver.example.com/core/.well-known/jwks HTTP/1.1)
ли OpenIdConnectAuthenticationMiddleware выполнения какой-то проверки сертификата? Или я должен сам писать этот код?
Я не думаю, что это действительно так. Похоже, что это используется, когда у вас есть только API, и вы предполагаете, что входящие запросы уже содержат токен с самого начала. В моем случае я хочу полный неявный поток. Кажется, что валидатор должен использоваться в потоке учетных данных владельца ресурса/клиента. – Martin