azure sql的azure用户分配的身份失败

时间:2020-06-10 19:13:37

标签: azure azure-active-directory azure-sql-database azure-managed-identity

我正在尝试使用用户分配的身份(来自Azure容器实例)来连接到Azure sql数据库。

遵循本指南: https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-sql

它适用于系统分配的身份,但不适用于用户分配的身份。尝试创建包含的用户时,使用用户分配的标识我收到此错误

Msg 33134, Level 16, State 1, Line 1
Principal 'user-assigned-identity-name' could not be resolved. Error message: 'AADSTS7000219: 'client_assertion' or 'client_secret' is required for the 'urn:ietf:params:oauth:grant-type:jwt-bearer' grant type

我在这里遗漏了什么吗?还是我误解了用户分配的身份?它们可以用于登录和查询sql server吗?

1 个答案:

答案 0 :(得分:0)

您遵循的指南用于系统分配的受管身份,因为它使您可以验证支持Azure AD身份验证的服务,而无需在代码中插入凭据 em>。但是,对于用户分配的托管身份,凭据是必需的。

您可以参考this,并使用way来获得access_token

$response = Invoke-WebRequest -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&client_id=af825a31-b0e0-471f-baea-96de555632f9&resource=https://management.azure.com/' -Method GET -Headers @{Metadata="true"}
$content = $response.Content | ConvertFrom-Json
$ArmToken = $content.access_token