|
|
Опубликовано1 минута назад
|
|
|
|

Требования: При запросе API будет включена информация об аутентификации токена JWT. Бэкенд должен проверить, валидна ли подпись токена, затем проверить, истёк ли её, информацию о выпуске и т.д.
URI веб-набора ключей JSON
jwks_uri (JSON Web Key Set URI) является стандартным элементом конфигурации в спецификациях OAuth 2.0 и OpenID Connect (OIDC).
Проще говоря, это публичный URL-адрес (или конечная точка), указывающий на место, где сервер аутентификации публикует свой «набор открытых ключей». В стандартном процессе OIDC сервер аутентификации предоставляет конечную точку обнаружения сервиса, содержащую адрес jwks_uri.
Её популярная метафора
Если JWT (или ID Token), выпущенный сервером аутентификации, сравнится с буквой с официальной печатью, тогда:
• Приватный ключ: «физическая пломба», запертая в сейфе, хранящемся на сервере аутентификации, используемая для печати (подписи). • jwks_uri: Это раздел «раскрытия узоров печати», размещённый на официальном сайте сервером аутентификации. • Стороннее приложение (клиент или сервер ресурсов): после получения письма скачайте дизайн печати (публичный ключ) с этого jwks_uri адреса и сравните его с штампом на письме, чтобы доказать, что письмо действительно было выпущено официальной компанией и не подвергалось вмешательству.
Здесь значение использования в коллекции ключей таково:
"sig": Подпись, используемая для проверки или генерации сигнатур с целью обеспечения целостности данных и защиты от подделок. "enc": шифрование, используемое для шифрования или расшифровки данных, а также для управления ключами (шифрование ключей) для обеспечения конфиденциальности данных.
Как показано ниже:
Информация о разборе JWT
Сначала установите пакет nuget:System.IdentityModel.Tokens.Jwt, гласит информацию о претензиях из jwt, код выглядит следующим образом:
Результат выглядит следующим образом:
Носитель 1059EC2E-FFA8-4FF5-BC47-F25D7E37AA5A
Проверьте достоверность подписи JWT
Сначала нужно обратиться к пакету System.IdentityModel.Tokens.Jwt. Существует два способа проверить достоверность подписи.
Решение 1: цепочка сертификатов X.509
Десериализация выполняется в соответствии с международным стандартом X.509, извлекая всю структурированную информацию из сертификата (такую как открытый ключ, эмитент, дата истечения срока действия, серийный номер и т.д.) и генерируя объект X509Certificate2. Наконец, скрытый открытый ключ RSA внутри получается для проверки токена JWT. Код выглядит следующим образом:
Как показано ниже:
Решение 2: JsonWebKey
Конвертировать в Security Key: Он автоматически определяет тип алгоритма внутри. Затем проверяется валидность токена. Код выглядит следующим образом:
(Конец) |
Предыдущий:.NET/C# Получите свойства объекта, поля и комментарии на основе Roslyn
|