当前位置: 首页 > 知识库问答 >
问题:

使用Azure KeyVault Rest API进行身份验证而无需客户端机密?

司徒云
2023-03-14

如何在不传递客户端机密的情况下通过rest api向Azure keyvault进行身份验证?我的应用程序是On-Prem。我找到的示例使用客户端机密进行身份验证,如果我必须将客户端机密存储在本地,这似乎首先就违背了KeyVault的目的。我确实有我证书的租户ID、应用程序ID和SubjectSpeguishedName。有没有办法用Rest api或其他不涉及使用客户端机密或其他敏感数据的方式进行身份验证?

共有1个答案

郎增
2023-03-14

当然可以,我假设您使用客户端凭据流来获取令牌,您可以使用client_assertion而不是client_secret来获取访问令牌。

POST https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token

client_id=<client_id>
&scope=https://vault.azure.net/.default
&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion=eyJhbGciOiJSUzI1NiIsIng1dCI6Imd4OHRHeXN5amNScUtqRlBuZDdSRnd2dxxx
&grant_type=client_credentials

请参阅带有证书的访问令牌请求,并阅读有关证书凭据的信息,以了解如何注册证书和断言的格式。

 类似资料:
  • 问题内容: 我需要导入证书,以便向Spring Boot应用程序中的外部服务发出http请求。 我该如何设置Spring Boot来做到这一点? 那里有很多信息,但我发现所有这些都令人困惑。似乎我可能只需要创建类似“ truststore.jks”密钥库的内容并导入正确的证书,然后将一些条目添加到我的application.properties中即可。 问题答案: 打开您的终端或 回答所有问题。在

  • 我遵循此处共享的文档-https://learn.microsoft.com/en-us/azure/databricks/data/data-sources/azure/azure-datalake-gen2#adls2-aad凭据来使用服务主体挂载我的datalake帐户。文档中提到了使用Azure AD App的客户端机密进行此操作的步骤。我找不到使用客户端证书的方法。此流是否支持使用证书凭

  • 如何用Apache CXF实现这一点?

  • 我不熟悉SSL和证书。我一直在做关于客户端证书认证的研究。我看过这个和wiki。 因此,如果我必须为我的B2B REST服务实现客户端证书身份验证解决方案,我应该执行以下操作 要求客户端生成自己的私钥,并为其公钥生成证书(CA 颁发?)。通过电子邮件或 USB 闪存盘发送该证书。 在服务器端将客户端的公共证书导入信任存储区并启用客户端身份验证 在握手期间,客户端会出示其证书并进行身份验证,因为服务

  • 授权服务器为进行客户端身份验证的目的,为Web应用客户端创建客户端凭据。授权服务器被鼓励考虑比客户端密码更强的客户端身份验证手段。Web应用程序客户端必须确保客户端密码和其他客户端凭据的机密性。 授权不得向本地应用程序或基于用户代理的应用客户端颁发客户端密码或其他客户端凭据用于客户端验证目的。授权服务器可以颁发客户端密码或其他凭据给专门的设备上特定安装的本地应用程序客户端。 当客户端身份验证不可用

  • 在向令牌端点发起请求时,机密客户端或其他被颁发客户端凭据的客户端必须如2.3节所述与授权服务器进行身份验证。客户端身份验证用于: 实施刷新令牌和授权码到它们被颁发给的客户端的绑定。当授权码在不安全通道上向重定向端点传输时,或者 当重定向URI没有被完全注册时,客户端身份验证是关键的。 通过禁用客户端或者改变其凭据从被入侵的客户端恢复,从而防止攻击者滥用被盗的刷新令牌。改变单套客户端凭据显然快于撤销