Azure DevOps Api 无法与 django-allauth azure 一起使用

Azure DevOps Api not working with django-allauth azure

我使用 django-allauth 使某人可以 link 使用 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) I can see the token url needed for Azure DevOps authentication is: https://app.vssps.visualstudio.com/oauth2/token but django-allauth get it's token for azure from https://login.microsoftonline.com/common/oauth2/v2.0/token.

我的问题是:我能以某种方式 link 那 2 个标记吗?比如使用我现有的令牌向 https://app.vssps.visualstudio.com/oauth2/token 发出请求并为 Azure DevOps 获取一个新令牌?如果是,我该怎么做?欢迎任何帮助

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

我认为两个选项中的一个适合您,但我对 django-allauth 的了解有限。

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