Проверка jwt на собственных платформах

Я создаю собственное приложение для iOS, оно использует OAuth 2.0 / OIDC для аутентификации и авторизации. Сервер аутентификации - это сервер идентификации 4.

Просматривая такие документы, как https://tools.ietf.org/html/rfc8252, я установили, что правильным потоком для использования является поток «кода авторизации», даже если мы владеем приложением, сервером аутентификации и ресурсами. Я также узнал, что нам нужно использовать безопасный браузер, такой как SFSafariViewController, и что нам нужно использовать PKCE и не забывать использовать ключ «состояния» в запросе и проверять его при возврате.

Моя проблема заключается в проверке jwt на устройстве iOS. Я использую https://github.com/kylef/JSONWebToken.swift, как это предлагается на jwt. io

Чтобы проверить действительность jwt, нам нужно убедиться, что он был подписан нашим сервером аутентификации. Сервер подписывает с помощью асинхронного ключа rs256 и предоставляет открытый ключ на конечной точке. JSONWebToken.swift не поддерживает rs256, и я не смог найти какую-либо библиотеку iOS, которая поддерживает, так как другие люди проверяют jwt на устройствах iOS? Я предполагаю, что мы могли бы переключиться на HS256, который поддерживается JSONWebToken.swift, но это алгоритм синхронизации и потребует от нас сохранить ключ на устройстве, что было бы небезопасно.

Как решить эту проблему, конечно, не только у меня ...


person iCediCe    schedule 24.10.2017    source источник


Ответы (1)


Вы можете использовать пакет Vapor по адресу https://github.com/vapor/jwt, который поддерживает RS256. , но вам нужно будет получить JWK самостоятельно.

person Martin OConnor    schedule 05.10.2018