Я создаю собственное приложение для 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, но это алгоритм синхронизации и потребует от нас сохранить ключ на устройстве, что было бы небезопасно.
Как решить эту проблему, конечно, не только у меня ...