从另一个Azure ActiveDirectory租户中的应用访问Azure KeyVault

问题描述:

我有一个Azure订阅,其中包含我的Web应用程序的所有资源。我创建了另一个ActiveDirectory租户,在租户中定义了一个AD应用程序,并将其设置为我的AppService的身份验证提供程序。现在,我想在我的订阅中创建一个KeyVault资源,并将我的AD应用程序访问权限授予KeyVault。从另一个Azure ActiveDirectory租户中的应用访问Azure KeyVault

Azure的KeyVault文件说,运行以下PS命令:

Set-AzureRmKeyVaultAccessPolicy -VaultName <KVName> -ObjectId <ClientId> -PermissionsToKeys get 

然而,这将返回以下错误:

Cannot find the Active Directory object '<ClientId>' in tenant '<MyDefaultTenantId>' 

这个问题似乎是我的KV不在与我的AD应用程序相同的AD租户,但Set-AzureRmKeyVaultAccessPolicy命令似乎没有TenatId参数。

有什么办法可以实现我想要的? 我是否必须将我的AD应用程序移动到我的默认AD租户?

+0

你在这里使用的手术室是什么? objectid应该是目标订阅 – sqlnewbie

第一个关键保管箱才能从租户它是在接受身份。

+0

tbh中与广告应用相对应的服务主体ID,这是令人失望的,因为我认为我可以为我的订阅中的各种应用服务设置不同的AD租户;这样我就可以分离每个应用服务的用户。 – Morteza

+0

您可以为同一个租户订购多个订阅@Morteza – 4c74356b41

当然,你可以让你的应用程序multi-tenant,同意将应用到包含密钥库并在订阅的Azure的AD目录将该应用程序添加为具有对门户中的密钥保管库的访问权限的主体。

然后,您的应用程序可以代表来自该目录的用户或使用客户端凭证以自己名义访问密钥保管库。

+0

您可以告诉我如何才能将目录X中定义的AD应用程序的许可过程执行到目录Y? – Morteza

+0

请看微软的这个例子:https://github.com/Azure-Samples/active-directory-dotnet-webapp-multitenant-openidconnect – MvdD