使用应用程序注册作为 Azure DevOps 的 PAT

问题描述 投票:0回答:1

我有一个应用程序,它使用 Azure DevOps PAT 在存储库和管道中执行写入和读取操作。

最近我发现,我可以使用 Azure Entra ID

App Registrations
联合凭据来完成此操作。

我对 Azure Entra ID 非常陌生,找不到任何资源,如何使用这些凭据执行任何操作,就像使用 Azure DevOps PAT 一样。

我发现了这个(https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure?tabs=azure-portal%2Clinux#add-federated-credentials)在哪里对于

github
但似乎我不确定如何为我的用例做到这一点;

  • 实现更新/读取 azure devops 存储库的应用程序

如果您遇到或实施过这样的解决方案,有人可以帮助我吗?

azure azure-devops microsoft-entra-id
1个回答
1
投票

据我所知,在 Azure DevOps 中,Microsoft Entra 应用程序的联合凭据只能用于 Azure Resource Manager 服务连接

如果您想使用 Microsoft Entra 应用程序作为访问 Azure DevOps 资源的身份验证,您可以尝试按照以下步骤为应用程序生成访问令牌(Microsoft Entra ID 令牌):

AAD 的先决条件

  1. 如果当前租户中没有服务主体,请转至 Microsoft Entra ID > 应用程序注册 创建服务主体。

  2. 打开服务主体,转到证书和机密 > 客户端机密选项卡,如果没有现有的有效客户端机密,可为服务主体创建客户端机密。复制并记住客户端密钥的值。

Azure DevOps 组织的先决条件

  1. 转到 组织设置 > Microsoft Entra,确保组织已连接到服务主体所在的租户。

  2. 转到 组织设置 > 用户,搜索服务主体并将其添加到组织中。

  3. 将服务主体添加到组织的某个组中,以便您可以通过组织中的该组来管理服务主体的权限。

为服务主体生成 Microsoft Entra ID 令牌

您可以使用以下方式之一来生成令牌:

  1. 使用 Bash 脚本。

    access_token=$(curl -X POST \
    -H "Content-Type: application/x-www-form-urlencoded" \
    'https://login.microsoftonline.com/{tenant_ID}/oauth2/v2.0/token' \
    -d 'grant_type=client_credentials&client_id={client_id}&client_secret={client_secret}&scope=499b84ac-1321-427f-aa17-267ca6975798/.default' \
    | jq -r '.access_token')
    
    • {tenant_ID}
      替换为租户的 目录(租户)ID
    • {client_id}
      替换为服务主体的应用程序(客户端)ID
    • {client_secret}
      替换为在服务主体中创建的客户端密钥的值。
  2. 使用邮递员。

注:

此 Microsoft Entra ID 令牌的有效期只有 24 小时,因为 Microsoft Entra 将定期轮换令牌。因此,您需要至少每 24 小时刷新一次令牌。

有关更多详细信息,请参阅“使用服务主体和托管身份”。


© www.soinside.com 2019 - 2024. All rights reserved.