Русский
  • management-api
  • api
  • logto
  • machine-to-machine
  • jwt

Использование управляющего API Logto: пошаговое руководство

Узнайте, как использовать управляющее API Logto для вашего приложения в различных сценариях.

Gao
Gao
Founder

Хотя Logto предоставляет веб-консоль для управления идентификациями, использование управляющего API является мощной альтернативой, если вы хотите автоматизировать свой рабочий процесс или получить программный доступ к Logto. Это руководство проведет вас через шаги по использованию управляющего API Logto в различных сценариях.

Обзор

Вы можете заметить, что в Logto Console есть встроенный ресурс API "Управляющее API Logto". Он будет ключевой фигурой в этом руководстве.

По сравнению с другими ресурсами API, в настоящее время управляющее API Logto не позволяет прямой доступ со стороны конечных пользователей, так как он предназначен для связи между машинами, и оно настолько мощно, что может использоваться для управления вашей учетной записью и ресурсами Logto.

Вот несколько типичных сценариев, в которых вы можете захотеть использовать управляющее API Logto:

CI/CD

Коммуникация между сервисами

Одностраничное приложение

Веб-сервер, который рендерит HTML

Архитектура

Независимо от сценариев, есть два шаблона, которые вы можете использовать для доступа к управляющему API Logto.

Шаблон 1: Прямой доступ

В этом шаблоне ваш клиент или сервис будет напрямую получать доступ к управляющему API Logto. В Logto клиент или сервис называется "приложением для связи между машинами".

Пример использования сервиса на бекенде:

Шаблон 2: Косвенный доступ

В этом шаблоне ваш клиент или сервис будет получать доступ к управляющему API Logto через сервис на бекенде. Шаблон 2 построен на основе шаблона 1, в котором участвует другое приложение. Новым приложением может быть традиционное веб-приложение, нативное приложение или одностраничное приложение, которое будет получать доступ к сервису на бекенде.

Пример использования одностраничного приложения:

Этот шаблон полезен, когда вы хотите иметь пользовательскую логику, чтобы контролировать доступ к управляющему API Logto. Например, вы можете захотеть вернуть все заказы для потребителя и прикрепить информацию о продавце к каждому заказу. В этом случае вы можете использовать одностраничное приложение для запроса сервиса на бекенде, чтобы получить заказы, и в сервисе на бекенде вы можете использовать управляющее API Logto, чтобы получить информацию о продавце.

Доступ к управляющему API Logto

Создайте приложение для связи между машинами

Сначала вам нужно создать приложение для связи между машинами в Logto Console. Перейдите на вкладку "Приложения" и нажмите кнопку "Создать приложение". Затем нажмите "Начать создание" в карточке "Связь между машинами".

Настройте роль для связи между машинами

Чтобы получить доступ к управляющему API Logto, вам нужно создать роль для связи между машинами с соответствующими разрешениями. В Logto Console перейдите на вкладку "Роли" и нажмите кнопку "Создать роль". Нажмите "Показать больше опций" и выберите "Роль приложения связи между машинами" в разделе "Тип роли".

Теперь вы можете увидеть, что "Управляющее API Logto" появляется в разделе "Назначить разрешения". Отметьте ресурс API для всех разрешений и нажмите кнопку "Создать роль".

Как только роль создана, вы можете назначить её приложению для связи между машинами, которое вы создали на предыдущем шаге.

Получите токен доступа

Вы можете следовать шагам в этой статье, чтобы получить токен доступа через предоставление учетных данных клиента для вашего приложения связи между машинами. Протестируйте токен доступа, отправив запрос к конечной точке в управляющем API Logto.

Теперь вы готовы к шаблону 1. Обратите внимание, что токен доступа действителен в течение короткого периода времени, поэтому, если вы хотите его кэшировать, вам, возможно, потребуется его периодически обновлять.

Добавьте дополнительный слой

Хотя доступ к управляющему API Logto не разрешен для конечных пользователей, вы можете добавить дополнительный слой, чтобы использовать мощь управляющего API Logto и позволить ему расширить возможности вашего сервиса.

Например, вы создаете онлайн-сообщество с одностраничным приложением и сервисом на бекенде. Вы можете захотеть иметь функцию, которая позволяет вошедшим в систему пользователям видеть 10 лучших пользователей, у которых больше всего подписчиков. Будет создана конечная точка GET /api/top-users:

Чтобы убедиться, что конечная точка доступна только для вошедших в систему пользователей, вы можете создать "одностраничное приложение" в Logto Console и интегрировать Logto SDK в это приложение. Затем вы можете использовать SDK, чтобы получить токен доступа и отправить запрос к конечной точке:

В сервисе на бекенде вы можете сначала запросить 10 лучших пользователей из базы данных, а затем использовать управляющее API Logto, чтобы получить информацию о пользователях:

Наконец, вы можете вернуть ответ одностраничному приложению:

Полная диаграмма последовательности:

В этом потоке участвуют два типа токенов доступа: один для сервиса на бекенде для доступа к управляющему API Logto, и другой для одностраничного приложения для доступа к сервису на бекенде.

Первый токен доступа - это тот, который вы получили в предыдущем разделе. Второй токен доступа - это токен, который вы можете получить из Logto SDK.

Мой токен доступа в одностраничном приложении не является JSON Web Token (JWT)

Если вы не указываете ресурс при вызове метода getAccessToken в Logto SDK, токен доступа будет непрозрачной строкой, которая предназначена для использования с конечной точкой userinfo. Чтобы получить JWT:

  1. Определите ресурс API в Logto Console, например, https://api.example.com.
  2. Добавьте ресурс API в конфигурацию resources Logto SDK, например, resources: ['https://api.example.com'].
  3. Вызовите метод getAccessToken с ресурсом API, например, getAccessToken('https://api.example.com').

Чтобы проверить JWT в вашем сервисе на бекенде, пожалуйста, обратитесь к Проверка токена авторизации API-запроса.

Что означает JWT в одностраничном приложении?

JWT лишь означает, что пользователь вошел в систему и пытается получить доступ к ресурсу API. Это не означает, что у пользователя есть конкретные разрешения на ресурс API. Решение о предоставлении пользователю доступа к ресурсу API за вами.

Если вам нужен более детальный контроль доступа, вы также можете применить управление доступом на основе ролей (RBAC) к пользователю. Дополнительную информацию смотрите в разделах 🔐 Управление доступом на основе ролей (RBAC).

Заключительные примечания

Управляющее API Logto мощное и гибкое для множества сценариев. С помощью стандартных протоколов вы можете легко интегрировать управляющее API Logto в ваше приложение и построить безопасную и масштабируемую систему. Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь обращаться к нам.