无法使用Ruby ADAL Gem检索Vault.azure.net的ADAL令牌

时间:2016-01-26 23:06:38

标签: adal

我使用下面找到的ADAL ruby​​ gem并遵循user credentials文件夹中的samples示例:

https://github.com/AzureAD/azure-activedirectory-library-for-ruby

我在Azure AD中设置了一个本机客户端。我能够成功获取https://management.core.windows.net/的令牌并使用该令牌执行部署。同样,我可以通过Postman在HTTPS请求中使用它来检索我的azure密钥保险库。

问题:

我需要从我的密钥保险库中检索一个秘密。使用上面的令牌,我得到401 unauthorized。我尝试生成新令牌,这次将RESOURCE设置为https://vault.azure.net,我收到以下错误:

  

AADSTS65001:用户或管理员未同意使用ID为{client-id}的应用程序。发送此用户和资源的交互式授权请求。

我正在使用Azure支持,我们一直在遵循相同的步骤。当我使用ruby gem时,他正在使用.NET库。我的请求与Azure支持之间存在显着差异:

Azure支持获取令牌的请求会发送grant_type标头,其值设置为client_credentials。我发送了相同的标头但是以password作为值。

我也尝试过创建一个Web应用程序而不是本机应用程序来测试它。我正在关注ruby gem repo中给出的样本。这也无法检索management.corevault.azure.net的令牌。它确实成功获得了图API的令牌。

对于为什么我无法使用此库获取azure密钥保管库的令牌,我们非常感谢。

1 个答案:

答案 0 :(得分:2)

Azure支持已经确认这是使用password授权类型的本机应用程序的错误(在验证本机应用程序时应该使用该类型。)

在Azure在已注册的AD应用程序中添加密钥保管库应用程序权限设置之前,您需要使用Powershell的客户端ID:

1950a258-227b-4e31-a9cf-717495945fc2