如何为 Azure DevOps 静默获取用户令牌并将其用于访问 DevOps REST API?
How to get user token silently for Azure DevOps and use it for accessing DevOps REST APIs?
问题陈述:
我正在尝试在 C# 控制台应用程序中创建一个模块,我打算在它运行后插入并在 Azure Bot 中使用。我想将我的机器人连接到 Azure DevOps。我可以使用 PAT 令牌来做到这一点,但我需要机器人只显示登录用户有权访问的 DevOps 资源。
尝试次数:
- 我可以使用 PAT 令牌获取必要的详细信息。无论登录的用户详细信息如何,它都会为我提供所有项目。
- 我已尝试为登录用户使用 Azure AD 令牌,但在尝试使用它调用 Azure DevOps REST API 时出现未经授权的错误
- 参考了 this 文章,但我无法静默获取授权码或令牌。
总而言之,我基本上是在寻找:
- 静默获取 Azure DevOps 的用户令牌(无需用户单击确认)
- 使用 REST API 获取项目、工作项等详细信息
个人访问令牌继承了创建它的用户的权限。因此,如果您作为项目集合管理员创建一个令牌,则该令牌与您一样具有 samwe 权限。
遗憾的是,没有可用于在运行时创建令牌的 public REST API。它们必须由登录用户通过门户创建。
另一个选项是使用 OAuth。 OAuth 要求用户登录,然后给您一个可以在 REST API 中使用的令牌。不幸的是,这不符合用户无需执行任何操作的条件,
我看到的唯一其他方法是将用户添加到他们有权访问的资源中。然后从您的 REST API 您可以使用管理员 PAT 检查他们的权限,然后只检索他们被允许看到的内容。这也不是很漂亮:-(
问题陈述: 我正在尝试在 C# 控制台应用程序中创建一个模块,我打算在它运行后插入并在 Azure Bot 中使用。我想将我的机器人连接到 Azure DevOps。我可以使用 PAT 令牌来做到这一点,但我需要机器人只显示登录用户有权访问的 DevOps 资源。
尝试次数:
- 我可以使用 PAT 令牌获取必要的详细信息。无论登录的用户详细信息如何,它都会为我提供所有项目。
- 我已尝试为登录用户使用 Azure AD 令牌,但在尝试使用它调用 Azure DevOps REST API 时出现未经授权的错误
- 参考了 this 文章,但我无法静默获取授权码或令牌。
总而言之,我基本上是在寻找:
- 静默获取 Azure DevOps 的用户令牌(无需用户单击确认)
- 使用 REST API 获取项目、工作项等详细信息
个人访问令牌继承了创建它的用户的权限。因此,如果您作为项目集合管理员创建一个令牌,则该令牌与您一样具有 samwe 权限。
遗憾的是,没有可用于在运行时创建令牌的 public REST API。它们必须由登录用户通过门户创建。
另一个选项是使用 OAuth。 OAuth 要求用户登录,然后给您一个可以在 REST API 中使用的令牌。不幸的是,这不符合用户无需执行任何操作的条件,
我看到的唯一其他方法是将用户添加到他们有权访问的资源中。然后从您的 REST API 您可以使用管理员 PAT 检查他们的权限,然后只检索他们被允许看到的内容。这也不是很漂亮:-(