无法将 Microsoft.Azure.Cdn 服务主体添加到 Key Vault 访问策略
Can't add Microsoft.Azure.Cdn service principal to Key Vault access policies
我无法将 Microsoft.Azure.Cdn 服务主体添加到 Key Vault 访问策略。
我在 PowerShell 中有 运行 以下命令。
New-AzureRmADServicePrincipal -ApplicationId "xxxxxx-xxxx-xxxx-xxxx-xxxxxxx"
我得到了以下结果。
Secret: System.Security.SecureString
ServicePrincipalNames : {xxxxxx-xxxx-xxxx-xxxx-xxxxxxx,
https://microsoft.onmicrosoft.com/yyyyyyy-yyyy-yyyy-yyyy-yyyyyyyy}
ApplicationId: xxxxxx-xxxx-xxxx-xxxx-xxxxxxx
DisplayName: Microsoft.Azure.Cdn
Id: zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzz
AdfsId:
Type: ServicePrincipal
然后我去 Key Vault 的访问策略那里添加主体,但我在列表中找不到它。
更新
当我尝试添加它时,我得到了这个结果。
但是当我执行评论中建议的以下操作时:
"First, navigate to the Azure Active Directory in the portal -> Enterprise applications -> filter with All applications -> search for the ApplicationId in your result, make sure the service principal is existing."
然后我没有结果。
首先,导航到门户中的 Azure Active Directory
-> Enterprise applications
-> 使用 All applications
筛选 -> 在结果中搜索 ApplicationId
,确保服务主体存在。
在 Add access policy
页面中,搜索结果中的 Id
(即 SP 的 Object ID
),应该可以。
或者您可以使用 Set-AzureRmKeyVaultAccessPolicy
将服务主体添加到访问策略,-ObjectId
是您结果中的 Id
。
样本:
Set-AzureRmKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -ObjectId 34595082-9346-41b6-8d6b-295a2808b8db -PermissionsToSecrets Get,Set
更新:
按照以下步骤操作。
在门户中导航到您的密钥保管库 -> 复制 Directory ID
和 Subscription ID
。
使用Connect-AzureRmAccount -TenantId "<Directory ID>" -Subscription "<Subscription ID>"
登录,使用上面的两个属性。
如果您已经登录,只需使用Set-AzureRmContext -Tenant "<Directory ID>" -SubscriptionId "<Subscription ID>"
。
然后使用 New-AzureRmADServicePrincipal -ApplicationId "xxxxxx-xxxx-xxxx-xxxx-xxxxxxx"
创建服务主体,当您成功创建它时,导航到您的密钥库中的 access polices
以尝试再次添加它。
另一种解决此问题的方法是使用 Azure CLI.
首先按照以下步骤检查您使用的订阅是否正确:
登录到 Azure
az login
获取您的订阅列表
az account list --output table
将列表中的订阅设置为当前活动订阅
az account set --subscription "<SUBSCRIPTION_NAME>"
现在,当您启用“自定义域 HTTPS”选项时,复制蓝色框中显示的服务主体 ID
使用该 ID 创建服务主体
az ad sp create --id "d4631ece-daab-479b-be77-ccb713491fc0"
转到您的“KeyVault/Access 策略”并添加新的访问策略
授予“机密”和Select 最近创建的委托人“获取”和“列出”权限
不要忘记保存您的更改
大功告成!您现在可以启用“自定义域 HTTPS”选项并使用您的 KeyVault。
我无法将 Microsoft.Azure.Cdn 服务主体添加到 Key Vault 访问策略。
我在 PowerShell 中有 运行 以下命令。
New-AzureRmADServicePrincipal -ApplicationId "xxxxxx-xxxx-xxxx-xxxx-xxxxxxx"
我得到了以下结果。
Secret: System.Security.SecureString
ServicePrincipalNames : {xxxxxx-xxxx-xxxx-xxxx-xxxxxxx,
https://microsoft.onmicrosoft.com/yyyyyyy-yyyy-yyyy-yyyy-yyyyyyyy}
ApplicationId: xxxxxx-xxxx-xxxx-xxxx-xxxxxxx
DisplayName: Microsoft.Azure.Cdn
Id: zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzz
AdfsId:
Type: ServicePrincipal
然后我去 Key Vault 的访问策略那里添加主体,但我在列表中找不到它。
更新
当我尝试添加它时,我得到了这个结果。
但是当我执行评论中建议的以下操作时:
"First, navigate to the Azure Active Directory in the portal -> Enterprise applications -> filter with All applications -> search for the ApplicationId in your result, make sure the service principal is existing."
然后我没有结果。
首先,导航到门户中的 Azure Active Directory
-> Enterprise applications
-> 使用 All applications
筛选 -> 在结果中搜索 ApplicationId
,确保服务主体存在。
在 Add access policy
页面中,搜索结果中的 Id
(即 SP 的 Object ID
),应该可以。
或者您可以使用 Set-AzureRmKeyVaultAccessPolicy
将服务主体添加到访问策略,-ObjectId
是您结果中的 Id
。
样本:
Set-AzureRmKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -ObjectId 34595082-9346-41b6-8d6b-295a2808b8db -PermissionsToSecrets Get,Set
更新:
按照以下步骤操作。
在门户中导航到您的密钥保管库 -> 复制 Directory ID
和 Subscription ID
。
使用Connect-AzureRmAccount -TenantId "<Directory ID>" -Subscription "<Subscription ID>"
登录,使用上面的两个属性。
如果您已经登录,只需使用Set-AzureRmContext -Tenant "<Directory ID>" -SubscriptionId "<Subscription ID>"
。
然后使用 New-AzureRmADServicePrincipal -ApplicationId "xxxxxx-xxxx-xxxx-xxxx-xxxxxxx"
创建服务主体,当您成功创建它时,导航到您的密钥库中的 access polices
以尝试再次添加它。
另一种解决此问题的方法是使用 Azure CLI.
首先按照以下步骤检查您使用的订阅是否正确:
登录到 Azure
az login
获取您的订阅列表
az account list --output table
将列表中的订阅设置为当前活动订阅
az account set --subscription "<SUBSCRIPTION_NAME>"
现在,当您启用“自定义域 HTTPS”选项时,复制蓝色框中显示的服务主体 ID
使用该 ID 创建服务主体
az ad sp create --id "d4631ece-daab-479b-be77-ccb713491fc0"
转到您的“KeyVault/Access 策略”并添加新的访问策略
授予“机密”和Select 最近创建的委托人“获取”和“列出”权限
不要忘记保存您的更改
大功告成!您现在可以启用“自定义域 HTTPS”选项并使用您的 KeyVault。