2017-03-17 57 views
1

我有一個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

回答

3

第一個關鍵保管箱才能從租戶它是在接受身份。

+0

tbh中與廣告應用相對應的服務主體ID,這是令人失望的,因爲我認爲我可以爲我的訂閱中的各種應用服務設置不同的AD租戶;這樣我就可以分離每個應用服務的用戶。 – Morteza

+0

您可以爲同一個租戶訂購多個訂閱@Morteza – 4c74356b41

1

當然,你可以讓你的應用程序multi-tenant,同意將應用到包含密鑰庫並在訂閱的Azure的AD目錄將該應用程序添加爲具有對門戶中的密鑰保管庫的訪問權限的主體。

然後,您的應用程序可以代表來自該目錄的用戶或使用客戶端憑證以自己名義訪問密鑰保管庫。

+0

您可以告訴我如何才能將目錄X中定義的AD應用程序的許可過程執行到目錄Y? – Morteza

+0

請看微軟的這個例子:https://github.com/Azure-Samples/active-directory-dotnet-webapp-multitenant-openidconnect – MvdD