Azure devops 使用Azure AD令牌向Azure DevOps进行身份验证
我正在写一个web API。其中一件事是使用Team Foundation核心DLL命中Azure DevOps。由于我们有Azure AD(Azure Active Directory)的支持,我想我可以让我的应用程序针对Azure AD进行身份验证,并将该令牌/授权用于Azure DevOps。这并不是它将使用的唯一服务进行身份验证。我能做这个吗?我还可以通过什么方式实现这个目标?我不想在Azure AD每次访问一个独特的服务时提示用户对其进行授权,特别是因为它们都有Azure AD的支持。是的,您可以这样做 注意:我假设您的API由Azure AD保护,并且为了调用您的API,用户需要使用Azure AD登录到您的API客户端 假设您希望您的API不仅向Azure DevOps发出请求,还向Microsoft Graph发出请求(以Azure AD保护的另一个API为例——这当然可以是任何其他API,包括您自己的第二个API),并且您希望这些请求代表登录用户。即,代表在API接收的访问令牌中标识的用户 您可以执行以下操作(下图):Azure devops 使用Azure AD令牌向Azure DevOps进行身份验证,azure-devops,azure-active-directory,Azure Devops,Azure Active Directory,我正在写一个web API。其中一件事是使用Team Foundation核心DLL命中Azure DevOps。由于我们有Azure AD(Azure Active Directory)的支持,我想我可以让我的应用程序针对Azure AD进行身份验证,并将该令牌/授权用于Azure DevOps。这并不是它将使用的唯一服务进行身份验证。我能做这个吗?我还可以通过什么方式实现这个目标?我不想在Azure AD每次访问一个独特的服务时提示用户对其进行授权,特别是因为它们都有Azure AD的支持。
+----------++-----------++-----------------+
(用户)+-->+-(2)--->+-(4)-->|
|客户端| |你的API,所以你说我可以使用相同的Azure AD令牌访问任何Azure AD身份验证服务(例如Azure Devops)不,我是说服务可以将一个用于自身的Azure AD访问令牌交换为另一个受Azure AD保护的资源的访问令牌。是的,这就是我要传达的意思。使用AAD令牌获得Azure Devops的身份验证并获得Azure Devops令牌我的权限使用什么?我目前拥有我在setup.auth中使用的内容login.microsoftonline.com/${appID}
如果它只是login.microsoftonline.com,或者我的azure devops Urit不应该是../{app id}
,那是行不通的。权限应为https://login.microsoftonline.com/{租户id或域名}
。
+--------+ +-----------+ +-----------------+
(User)+---> +-(2)--> +-(4)---> |
| Client | | Your API <-------+ Azure DevOps |
| <------+ | | |
+----^---+ | +-(6)+ +-----------------+
| | | <--+ |
| | +---^----^--+ | | +-----------------+
(1) (3) (5) | +--> |
| | || || +----+ Microsoft Graph |
| | +--v----v--+ | (or other API) |
| +--------> | | |
| | Azure AD | +-----------------+
+----------+ |
+----------+