Django API с бэкендом аутентификации Azure Active Directory с помощью Postman

Я создал проект django с использованием библиотеки django_auth_adfs для использования Azure Active Directory на этапе аутентификации. Я настроил его API с помощью rest_framework и теперь пытаюсь отправлять запросы к нему с помощью Postman. Моя проблема заключается в том, что если я отправляю запрос с маркером доступа или без него, то в результате получаю только необработанный html-код страницы входа в систему Microsoft. Я использовал эту ссылку для генерации маркера доступа: https://dev.to/425show/calling-an-azure-ad-secured-api-with-postman-22co

Я пробовал различные разрешения API для своего приложения Azure App, такие как Azure Active Directory Graph, Microsoft Graph и одно под собственным именем проекта, которое происходит из того, что я настроил в качестве области действия в Expose an API. Также мне интересно, должна ли компания предоставлять доступ к api, который я настроил в Expose an API?

Шаги по аутентификации Django API с помощью Azure Active Directory (AD) и доступу к нему через Postman.

Создайте приложение в App registrations of Microsoft Entra ID.Выберите Supported account types as Microsoft Entra ID tenant - Multitenant and personal Microsoft accounts for api.

enter image description here

Добавьте область действия в Expose an API, выбрав согласие в качестве администраторов и пользователей, как показано на рисунке ниже. enter image description here

enter image description here

Использование Instance, ClientId и TenantId в Django API .

 "Instance": "https://login.microsoftonline.com/",
 "ClientId": "18", //Application (Client) ID from 'Catalogue.Api' app registration overview blade
 "TenantId": "932" // Tenant ID from '.Catalogue.Api' app registration overview blade
  • Создайте другое приложение в Microsoft Entra ID для почтальона с указанным ниже url обратного вызова
  • .

https://www.postman.com/oauth2/callback

enter image description here

Выберите Access tokens , ID tokens в разделе Authentication и сохраните его. enter image description here

В приложении postman добавьте разрешения API для созданного вами приложения Api.

enter image description here

Выберите Delegated permissions и Permissions of api и добавьте разрешение. enter image description here

  • Добавьте клиентский секрет в приложение Postman.

enter image description here

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

enter image description here enter image description here

  • Замените значения productAPiURl из Django API, callbackurl, clientid, tenantld, scope и clientSecret.

enter image description here

  • Создайте новый запрос и выберите Auth Type как OAuth 2.0 .

  • Измените Callback URL, Auth URL, Access Token URL, Client ID, Client Secret, Scope и State с деталями приложения Postman

    .

enter image description here

  Callback URL:  {{callbackUrl}}
  Auth URL:  https://login.microsoftonline.com/{{tenantid}}/oauth2/v2.0/authorize
  Token URL : https://login.microsoftonline.com/{{tenantid}}/oauth2/v2.0/token
  Client ID :  {{clientId}}
  Client Secret :  {{clientSecret}}
  Scope:  {{scope}}
  • Нажмите на Get New Acccess token, чтобы войти в систему и создать новый токен.

enter image description here

enter image description here

  • Используйте токен в заголовках в качестве имени ключа с авторизацией .

enter image description here

Замените Django API Url и отправьте запрос.

enter image description here

Вернуться на верх