我已经在Azure中创建了一个保管库,并授予其对API管理(在AAD中注册的应用程序)的访问权限。我试图在进行API调用时不将任何密码存储在标头中,而是从密钥库中获取密码。有没有办法做到这一点?如果是,怎么办?
过去几天没找到东西
谢谢
答案 0 :(得分:4)
您需要使用API管理策略来完成工作(https://docs.microsoft.com/en-us/azure/api-management/api-management-policies)。
需要构造该策略以将HTTP请求发布到Azure AD OAuth终结点以接收访问令牌(https://docs.microsoft.com/en-us/azure/api-management/api-management-transformation-policies#TransformationPolicies)。使用访问令牌,您只需调用Key Vault API并检索机密(https://docs.microsoft.com/en-us/azure/api-management/api-management-advanced-policies#SendRequest)。该秘密将在您的标头(set-header
)中传递
答案 1 :(得分:0)
这是Azure API管理和Azure Key Vault的端到端示例,包括如何在Azure AD中设置授权,以便APIM可以从Key Vault中读取机密,证书等。
https://github.com/kevinhillinger/azure-api-management-keyvault
集成要求在Key Vault实例所属的订阅的Azure AD租户中注册服务主体。然后,我们将授权它与密钥库进行对话。
在提供的示例中,我正在检索证书,因为这是更“困难”的选项。
以下是Azure Key Vault集成的流程: