使用 Azure AD 和 Postman 的 Django API 身份验证问题

问题描述 投票:0回答:1

我已经使用 django_auth_adfs 库设置了一个 django 项目,以使用 Azure Active Directory 进行身份验证阶段。我已经使用rest_framework 设置了它的API,现在我尝试使用Postman 向它发送请求。我的问题是,如果我发送带有或不带有访问令牌的请求,我的结果只是 Microsoft 登录页面的原始 html 代码。我使用此链接来生成我的访问令牌:

https://dev.to/425show/calling-an-azure-ad-secured-api-with-postman-22co

我为我的 Azure 应用程序尝试了不同的 API 权限,例如 Azure Active Directory Graph、Microsoft Graph,以及我自己的项目名称下的一个权限,该权限来自我在公开 API 中配置为范围的权限。另外我想知道公司是否应该授予我在公开 API 中配置的 api 的访问权限?

这是我得到的结果,这是我的邮递员环境。在令牌注册过程中,系统提示我使用用户名、密码和发送到手机的验证码登录,然后令牌就成功生成了。但是,尽管我在标头中使用了令牌,但我仍然收到登录页面。另外关于 django 广告配置,它工作正常。人们可以使用他们的 Microsoft 帐户登录和注销,因此问题不应该存在。

django azure django-rest-framework postman adfs
1个回答
1
投票

使用 Azure Active Directory (AD) 验证 Django API 并通过 Postman 访问它的步骤。

在 Microsoft Entra ID 的应用程序注册中创建应用程序。选择支持的帐户类型作为 Microsoft Entra ID 租户 - api 的多租户和个人 Microsoft 帐户。

enter image description here

通过选择同意作为管理员和用户,在

Expose an API
中添加范围,如下图所示。 enter image description here

enter image description here

在 Django API 中使用 Instance 、ClientId 和 TenantId 。

 "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
  • 使用以下回调 url 在 Microsoft Entra ID 中为邮递员创建另一个应用程序

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

enter image description here

在“身份验证”中选择“访问令牌”、“ID 令牌”并保存。 enter image description here

在邮递员应用程序中为您创建的 Api 应用程序添加 API 权限。

enter image description here

选择委托权限和api权限并添加权限。 enter image description here

  • 在 Postman 应用程序中添加客户端密钥。

enter image description here

  • 创建一个具有唯一名称的新环境并添加变量、初始值和当前值,如下图所示。

enter image description here enter image description here

  • 替换Django API的productAPIURl、callbackurl、clientid、tenantld、scope和clientSecret的值。

enter image description here

  • 创建新请求并选择身份验证类型为 OAuth 2.0 。

  • 使用 Postman 应用程序详细信息更改回调 URL、身份验证 URL、访问令牌 URL、客户端 ID、客户端密钥、范围和状态

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}}
  • 单击“获取新访问令牌”以登录并生成新令牌。

enter image description here

enter image description here

  • 使用标头中的令牌作为具有授权的密钥名称。

enter image description here

替换 Django API Url 并发送请求。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.