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.
Добавьте область действия в Expose an API
, выбрав согласие в качестве администраторов и пользователей, как показано на рисунке ниже.
Использование 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
Выберите Access tokens , ID tokens в разделе Authentication и сохраните его.
В приложении postman добавьте разрешения API для созданного вами приложения Api.
Выберите Delegated permissions и Permissions of api и добавьте разрешение.
- Добавьте клиентский секрет в приложение Postman.
- Создайте новую среду с уникальным именем и добавьте переменные, начальные и текущие значения, как показано на рисунках ниже .
- Замените значения productAPiURl из Django API, callbackurl, clientid, tenantld, scope и clientSecret.
Создайте новый запрос и выберите Auth Type как OAuth 2.0 .
Измените Callback URL, Auth URL, Access Token URL, Client ID, Client Secret, Scope и State с деталями приложения Postman
.
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, чтобы войти в систему и создать новый токен.
- Используйте токен в заголовках в качестве имени ключа с авторизацией .
Замените Django API Url и отправьте запрос.