Аутентификация и авторизация с помощью Entra ID

Azure API Management

Fiodar Sazanavets

Senior Software Engineer at Microsoft

Основные концепции OAuth

Интеграция Entra ID с APIM

Azure API Management

Зачем нужен поставщик удостоверений

Аналогия с парковщиком

  • IdP можно представить как парковщика
  • В бардачке вашего автомобиля хранятся ценности (защищённые данные)
  • Вы даёте парковщику специальный ключ для парковки
    • он позволяет только припарковать машину, но не доступ к ценностям
  • Аналогично IdP управляет безопасностью приложения, но не имеет доступа к данным внутри него
  • Пример: Entra ID выступает в роли IdP, а API Manager — в роли клиента
Azure API Management

Регистрация приложения в Entra ID

  • Entra ID находится на портале Azure
  • Для управления им требуется расширенный доступ уровня участника
  • Чтобы применить OAuth, добавьте новую запись в App Registration
  • Каждая регистрация требует уникального имени и корректного URL перенаправления
  • Для APIM в качестве URL перенаправления используется адрес экземпляра APIM
  • Это позволяет Entra ID возвращать запросы в APIM после входа в систему

Регистрация приложения в Entra ID

Azure API Management

Получение сведений о клиенте

Сведения о клиенте в Entra ID

  • Client ID и Tenant ID

    • Формируют публичный адрес приложения
    • Используются в коде, чтобы сообщить Entra ID, «кто» является приложением
  • Client Secret

    • Выступает в роли пароля приложения
    • Код предъявляет его для подтверждения личности
    • Должен храниться в безопасном месте и никогда не раскрываться в клиентском коде
Azure API Management

Получение URL конечных точек

  • Получите URL конечных точек IdP до подключения клиента

    • В Entra ID нажмите Endpoints на странице Overview регистрации приложения
    • Скопируйте конечные точки OAuth 2.0 authorization и token
  • Конечная точка авторизации

    • На неё код перенаправляет пользователей для входа
  • Конечная точка токена

    • Серверная часть обменивает код авторизации на токен доступа

Поток аутентификации Entra ID

Azure API Management

Подключение APIM к Entra ID

Подключение OAuth и OIDC в APIM

  • В APIM откройте OAuth 2.0 + OpenID Connect в разделе APIs

    • Создайте новый сервер авторизации
  • Настройте сервер, указав:

    • Конечные точки авторизации и токена
    • Client ID и Client Secret
    • Области (scopes), предоставляемые вашим API
Azure API Management

Давайте потренируемся!

Azure API Management

Preparing Video For Download...