Вот мое понимание потока обмена токенами:
Сначала я должен следовать этому разделу документов: https://developers.tapkey.io/api/authentication/identity_providers/
После создания поставщика удостоверений я хочу зарегистрировать своего тестового пользователя, используя эту конечную точку https://developers.tapkey.io/openapi/tapkey_access_management_web_api_v1/#/Identity%20Provider%20Users/OwnerIdentityProviderUsers_Put.
Первый вопрос, связанный с конечной точкой выше, заключается в том, как авторизовать этот запрос? В документации swagger есть только варианты clientCredential и AuthorizationCodeAuth. Означает ли это, что мне нужен один из этих типов авторизации, чтобы я мог авторизовать запрос с моего сервера (скажем, с точки зрения приложения).
Для конечных точек, таких как:
Теперь предположим, что я зарегистрировал пользователя, используя учетные данные клиента для авторизации запроса.
Я пытаюсь войти в систему, следуя разделу Token Exchange в документах.
Там написано, что мне нужно использовать это POST https://login.tapkey.com/connect/token, я форматирую jwt, как указано в документах, и отправляю на эту конечную точку. Я использую client_id из моего клиента обмена токенами oAuth. Я получил сообщение об ошибке со следующим сообщением, которое мне довольно ясно, но я не могу найти для него решение.
{ error: 'unauthorized_client', error_description: 'Client not authorized' }





В основном типы проверки подлинности списка в документах swagger должны иметь возможность тестировать конечные точки в пользовательском интерфейсе swagger. Таким образом, можно создать клиент oAuth, передать его пользовательскому интерфейсу swagger и протестировать конечные точки.
Сами конечные точки не различаются по типу аутентификации.
В зависимости от целей следует использовать метод аутентификации.
Поток кода авторизации
Если у вас есть сервис, который работает от имени пользователя Tapkey, следует использовать поток кода авторизации.
Например. у вас есть платформа бронирования, и ваш клиент должен иметь возможность предоставлять доступ к принадлежащим ему замкам.
Невозможно использовать поток кода авторизации для входа в Tapkey Mobile SDK и разблокировки замков. Клиент авторизации не может запрашивать требуемые области действия.
Поток учетных данных клиента
Для связи с сервером 2 для управления вашими услугами, например. для добавления пользователей поставщика удостоверений или управления блокировками, принадлежащими вашим службам, поток учетных данных клиента будет хорошим выбором.
Для этого клиент учетных данных клиента должен быть авторизован в качестве администратора для конкретной системы запирания.
Поток обмена токенов
Чтобы ваши пользователи могли войти в ваше приложение и использовать Tapkey Mobile SDK для разблокировки замков, вы должны подписать свои собственные токены JWT на своем сервере, а затем обменять их на клиенте с помощью поток обмена токенами.
Имейте в виду: невозможно использовать поток кода авторизации для входа в качестве пользователя Tapkey, а затем обменять его с помощью обмена токенами.
Полагаю, это прояснило мне ситуацию. Спасибо за ответ!
Проблема заключалась в том, что старый OAuthClient не мог быть подключен к новому провайдеру indetity (после нескольких попыток). Итак, я только что создал новую биржу токенов OAuthClient. Любая обратная связь с моим предположением о потоке будет высоко оценена. Спасибо!