如何在不同的目录中使用 Azure Key Vault 和 Azure Active Directory B2C?
How to use Azure Key Vault & Azure Active Directory B2C in different directories?
我正在尝试按照 these instructions 设置 Azure Key Vault,我正在 "Register an application with Azure Active Directory"。
在说明中,有这样一条准则:
Important: To complete the tutorial, your account, the vault, and the application that you will register in this step must all be in the same Azure directory.
关于我的配置的三个重要信息:
- 由于我们的团队使用的是 Azure Active Directory B2C 而不是 Azure AD,因此 AAD B2C 实例位于不同的目录中,如下面屏幕截图的右上角所示。
- 我们的网络应用程序(名称
MyApp
)已在 Directory2
内注册到 AAD B2C,如下面屏幕截图中间的圆圈所示。
- 然而,实际的Web应用程序资源在
Directory1
中,如下面的截图所示
我该如何前进?我应该将 KeyVault 和 MyApp 移动到 Directory2 还是将 AAD B2C 实例移动到 Directory1?
很遗憾,您不能将 Azure KeyVault 用于 Azure AD B2C 应用程序。
为什么?
1.For 你的场景,一般来说,我们可以使用 Azure AD 和 Azure AD B2C 保护 Azure Web App。但是,对于 Azure AD B2C 应用程序,密钥只能由 Azure 生成。您不能为 AAD 应用程序使用自定义密钥。
2.AAD B2C 应用程序没有服务主体。如果您想授权应用程序使用密钥或秘密,您可以使用以下 powershell 脚本:
Set-AzureRmKeyVaultAccessPolicy -VaultName 'ContosoKeyVault' -ServicePrincipalName 8f8c4bbd-485b-45fd-98f7-ec6300b7b4ed -PermissionsToKeys decrypt,sign
但是,此 powershell cmdelet 需要指定一个 Serviceprincipal Name
。 AAD B2C 没有服务主体。因此,您不能将此 powershell 用于 AAD B2C 应用程序。
因此,即使您可以让 Key Vault 和 AAD B2C 应用程序在同一个租户中,但您仍然不能将 Key Vault 用于 AAD B2C。
我的建议:
虽然您可以集成 AAD B2C 来为您的 Azure Web 应用程序做 authentication/authorization,但此功能是为 AAD 而设计的,而不是 Azure AD B2C。但是,您仍然可以将 AAD B2C 与您的 Web 应用程序集成,但您不能将 keyvault 用于您的 B2C 应用程序。我很抱歉这次诉讼,但 B2C 是针对开发环境的,它不像 AAD。
如果您介意使用 Azure 生成的密钥并需要此功能,您可以 post 在 this Feedback Forum 中提出您的想法,Azure 团队将对其进行审查。
希望对您有所帮助!
我正在尝试按照 these instructions 设置 Azure Key Vault,我正在 "Register an application with Azure Active Directory"。
在说明中,有这样一条准则:
Important: To complete the tutorial, your account, the vault, and the application that you will register in this step must all be in the same Azure directory.
关于我的配置的三个重要信息:
- 由于我们的团队使用的是 Azure Active Directory B2C 而不是 Azure AD,因此 AAD B2C 实例位于不同的目录中,如下面屏幕截图的右上角所示。
- 我们的网络应用程序(名称
MyApp
)已在Directory2
内注册到 AAD B2C,如下面屏幕截图中间的圆圈所示。 - 然而,实际的Web应用程序资源在
Directory1
中,如下面的截图所示
我该如何前进?我应该将 KeyVault 和 MyApp 移动到 Directory2 还是将 AAD B2C 实例移动到 Directory1?
很遗憾,您不能将 Azure KeyVault 用于 Azure AD B2C 应用程序。
为什么?
1.For 你的场景,一般来说,我们可以使用 Azure AD 和 Azure AD B2C 保护 Azure Web App。但是,对于 Azure AD B2C 应用程序,密钥只能由 Azure 生成。您不能为 AAD 应用程序使用自定义密钥。
2.AAD B2C 应用程序没有服务主体。如果您想授权应用程序使用密钥或秘密,您可以使用以下 powershell 脚本:
Set-AzureRmKeyVaultAccessPolicy -VaultName 'ContosoKeyVault' -ServicePrincipalName 8f8c4bbd-485b-45fd-98f7-ec6300b7b4ed -PermissionsToKeys decrypt,sign
但是,此 powershell cmdelet 需要指定一个 Serviceprincipal Name
。 AAD B2C 没有服务主体。因此,您不能将此 powershell 用于 AAD B2C 应用程序。
因此,即使您可以让 Key Vault 和 AAD B2C 应用程序在同一个租户中,但您仍然不能将 Key Vault 用于 AAD B2C。
我的建议:
虽然您可以集成 AAD B2C 来为您的 Azure Web 应用程序做 authentication/authorization,但此功能是为 AAD 而设计的,而不是 Azure AD B2C。但是,您仍然可以将 AAD B2C 与您的 Web 应用程序集成,但您不能将 keyvault 用于您的 B2C 应用程序。我很抱歉这次诉讼,但 B2C 是针对开发环境的,它不像 AAD。
如果您介意使用 Azure 生成的密钥并需要此功能,您可以 post 在 this Feedback Forum 中提出您的想法,Azure 团队将对其进行审查。
希望对您有所帮助!