【问题标题】:Azure DevOps Api not working with django-allauth azureAzure DevOps Api 不适用于 django-allauth azure
【发布时间】:2020-11-30 07:13:29
【问题描述】:

我使用 django-allauth 使某人可以使用 azure 提供程序链接他的 microsoft 帐户,现在我想访问 Azure DevOps Api。我在 Azure Active Directory 中注册了该应用并启用了 Azure DevOps 权限。当我尝试访问https://dev.azure.com/{organization}/{project}/_apis/git/repositories?api-version=5.1 时,返回状态码 203。

查看文档 (https://docs.microsoft.com/en-us/rest/api/azure/devops/git/repositories/list?view=azure-devops-rest-5.1#oauth2) 我可以看到 Azure DevOps 身份验证所需的令牌 url 是:https://app.vssps.visualstudio.com/oauth2/token 但 django-allauth 从 https://login.microsoftonline.com/common/oauth2/v2.0/token 获取它的 azure 令牌。

我的问题是:我可以以某种方式链接这 2 个令牌吗?像使用我现有的令牌向https://app.vssps.visualstudio.com/oauth2/token 发出请求并为 Azure DevOps 获取新令牌之类的东西?如果是,我会怎么做?欢迎任何帮助

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 不多,我想我会尝试编写自己的提供程序

标签: python django azure-devops azure-active-directory django-allauth


【解决方案1】:

恐怕您无法链接令牌,OAuth 中的令牌颁发是基于范围完成的。由于范围不同,您不能使用一个提供商颁发的令牌来访问另一个端点上的 API。

我认为两种选择中的一种对你有用,虽然我很害怕,但我对 django-allauth 的了解有限。

首先,您可以在 Azure AD 中创建一个新的应用注册,然后通过门户中的 API 权限授予该应用对 Azure DevOps API 的访问权限。其次,您可能需要扩展 django-allauth 以指向不同的 OAuth 令牌端点,以便它可以从正确的范围请求令牌。否则,恐怕你哪儿也去不了。

【讨论】:

  • 我想我还是得写一个新的提供者
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-26
  • 2020-06-12
  • 2022-11-15
  • 1970-01-01
相关资源
最近更新 更多