我正在VSTS中使用以下Azure Powershell命令。
static CVReturn MyDisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeStamp* now, const CVTimeStamp* outputTime,
CVOptionFlags flagsIn, CVOptionFlags* flagsOut, void *userInfo)
{
static dispatch_queue_t sDisplayQueue;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sDisplayQueue = dispatch_queue_create("com.company.app.displayLink", NULL);
});
dispatch_sync(sDisplayQueue, ^{
<stuff>
});
return kCVReturnSuccess;
}
我在VSTS中运行时遇到## [错误]访问被拒绝的错误,但是从整体上讲它可以正常工作。
我已经在KV的访问策略中添加了SPN,并且还具有对秘密的GET和SET权限。
需要帮助进行故障排除。
答案 0 :(得分:2)
要将VSTS链接到您,需要授予服务主体(该主体在VSTS中形成服务端点)访问密钥库;你已经知道了
可能令人困惑的是,您可以根据您的用例分配应用程序和服务主体以访问密钥库。因此,必须确保将正确的对象分配给访问策略。
确保分配正确对象的最佳方法是通过Azure Powershell进行操作。
运行已登录的Azure Powershell会话:
$spObjectId = Get-AzureRmAdServicePrincipal -SearchString <ServicePrincipalName> | Foreach-Object {$_.Id}
Set-AzureRmKeyVaultAccessPolicy -VaultName <VaultName> -ObjectId $spObjectId -PermissionsToSecrets Get,Set
如果您想查看访问策略的更多详细信息(对象ID,权限等),还可以通过Powershell获得这些信息:
Get-AzureRmKeyVault -VaultName <VaultName> | Foreach-Object {$_.AccessPolicies}