当前位置: 首页 > 知识库问答 >
问题:

如何将OAuth2身份验证用于DevOps REST services API-服务到服务?

金骞尧
2023-03-14

我试图代表应用程序,而不是登录到它的用户,从我的应用程序到ADO,执行一个服务到服务的ADO REST调用。

Microsoft提供RESTAPI来执行创建发布管道之类的操作。请参见此处:

https://docs.microsoft.com/en-us/rest/api/azure/devops/release/releases/create?view=azure-devops-rest-5.1#安全

这里的文档非常混乱,因为它将Oauth 2流称为“accessCode”,据我所知,它不是任何有效类型流的名称。

在调用API的主文档中

https://docs.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/oauth?view=azure-devops公司

它说请求主体应该是这样的:

client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&client_assertion={0}&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion={1}&redirect_uri={2}

哪里

{0}:注册应用时获取的URL编码客户端机密

{1} :通过代码查询参数向回调URL提供的URL编码的“代码”

{2} :在应用程序中注册的回调URL

这与创建版本(第一个链接)的文档不一致,其中指出:

类型:oauth2流:访问代码

授权URL:https://app.vssps.visualstudio.com/oauth2/authorize

令牌URL:https://app.vssps.visualstudio.com/oauth2/token?client_assertion_type=urn:ietf:params:oauth:client-断言类型:jwt承载

那么首先,有人知道哪些文档是正确的吗,第一个文档还是第二个文档?

其次,如何使服务到服务从我的应用程序调用,代表应用程序而不是用户调用这些API?

我不希望应用程序的用户拥有在应用程序中创建版本的权限,因为许多人甚至不是ADO用户,更不用说拥有创建版本的权限了。

我原以为API会支持Oauth 2授予类型的client\u凭据(授权代码授予),但在ADO REST服务的文档中,我看不到这方面的任何示例。

共有1个答案

西门安民
2023-03-14

要验证web应用用户的REST API访问权限,应遵循以下文档:

https://docs.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/oauth?view=azure-devops公司

首先,注册Web应用并从Azure运营模式服务获取应用ID。使用该应用ID,将用户发送到Azure运营模式服务,以授权应用访问其组织。接下来,使用该授权获取该用户的访问令牌。为该用户调用Azure运营模式服务API时,请使用该用户的访问令牌。

 类似资料:
  • 问题内容: 我正在尝试制作一个服务器应用程序,以定期从自己的GA帐户提取Google Analytics(分析)数据。请注意,它是访问我自己的数据的个人服务器端应用程序,即 没有最终用户访问此应用程序。 因此,我在Google API控制台中将我的应用程序注册为 服务应用程序 ,这给了我一个 客户端ID 和一个 私钥 。据我了解,服务应用程序不使用 应用程序密钥 和 重定向URL, 因为此服务器到

  • 如何使用spring oauth2和DB实现资源服务器和身份验证服务器,以及如何使用以下模式:https://github.com/spring-projects/spring-security-oauth/blob/master/spring-security-oauth2/src/test/resources/schema.sql 测试数据会很棒!!!

  • 我正在构建一个自定义移动应用程序,它有一个客户端,自定义后端服务器(我正在构建),并与许多其他API交互。其中一个API是Microsoft Bookings。 我面临的问题是,我需要通过服务器对服务器进行身份验证,并使用共享的客户端秘密。我知道多发性硬化症有很多医生,但还没有找到解决办法。我想知道服务器到服务器是否可以预订。 我能够获得一个access_token服务器到具有这些权限的服务器。(

  • react中的前端 基于Spring Boot“resource-service”的后端服务 keycloak 其他后端服务(使用者) 前端和使用者服务都使用REST API与后端通信。我们使用Keycloak作为我们的用户管理和身份验证服务。 我们希望通过提供web应用程序和服务流来将基于Spring的服务“资源服务”与Keycloak集成: > 基于web application-react的

  • 我正在尝试在一个microservice中配置一个microservice,但我正在尝试在另一个microservice中配置一个microservice如何进行身份验证。这就是我试图归档的体系结构: 我已经设法让用户授权工作并保护了微服务A,现在我正在尝试授权来自微服务B的请求,但我不确定如何做到这一点,我是否应该为微服务B在KeyCape中创建一个专用用户,或者在realm中创建客户端,或者其

  • 我试图扩展用户身份验证示例,这里也给出了这个示例,以便多个用户可以登录到服务器。我还想为每个用户分配一个不同的主目录。到目前为止,我还没有找到Apache SSHD API提供的任何此类实用程序,因此我尝试了以下解决方案,使用Apache FTPServer提供的实用程序。 我试图做的是: