Azure Key Vault错误消息 “AKV10000: 请求缺少Bearer或PoP令牌。”

huangapple go评论108阅读模式
英文:

Azure Key Vault error message "AKV10000: Request is missing a Bearer or PoP token."

问题

我在Azure上有一个密钥保管库,并为应用程序注册添加了访问策略,具有秘密权限(获取、列出、设置、删除、恢复、备份、还原)。
我编写了Java代码:

  1. String keyVaultUri = "https://myKeyVault.azure.net";
  2. ClientSecretCredential paramClientSecretCredential = new ClientSecretCredentialBuilder()
  3. .clientId("MyApplicationId")
  4. .clientSecret("MyApplicationSecretKey")
  5. .tenantId("MyTenantId")
  6. .build();
  7. SecretClient secretClient = new SecretClientBuilder()
  8. .vaultUrl(keyVaultUri)
  9. .credential(paramClientSecretCredential)
  10. .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS))
  11. .buildClient();
  12. KeyVaultSecret storedSecret = secretClient.getSecret("mySecret");
  13. System.out.println("Secret value: " + storedSecret.getValue());

我使用以下Maven依赖项:

  1. azure-security-keyvault-secretss(版本4.6.2)
  2. azure-core(版本1.39.0)
  3. azure-identity(版本1.9.0-beta.1)

在我启动代码后,我收到了以下错误消息:状态码401,“{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing a Bearer or PoP token."}}”

您有关于如何修复这个问题的建议吗?

英文:

I have Key Vault on Azure and I added Access policies for App registrations with Secret permissions (Get, List, Set, Delete, Recover, Backup, Restore)
I wrote Java code:

  1. String keyVaultUri = "https://myKeyVault.azure.net";
  2. ClientSecretCredential paramClientSecretCredential = new ClientSecretCredentialBuilder()
  3. .clientId("MyApplicationId")
  4. .clientSecret("MyApplicationSecretKey")
  5. .tenantId("MyTenantId")
  6. .build();
  7. SecretClient secretClient = new SecretClientBuilder()
  8. .vaultUrl(keyVaultUri)
  9. .credential(paramClientSecretCredential)
  10. .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS))
  11. .buildClient();
  12. KeyVaultSecret storedSecret = secretClient.getSecret("mySecret");
  13. System.out.println("Secret value: "+storedSecret.getValue());

I'm using these Maven dependencies:

  1. azure-security-keyvault-secretss (version 4.6.2)
  2. azure-core (version 1.39.0)
  3. azure-identity (version 1.9.0-beta.1)

After I started my code I got this error message Status code 401, "{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing a Bearer or PoP token."}}"

Do you have any suggestions on how to fix this?

答案1

得分: 0

我对您的代码进行了一些更改,成功获取了我的密钥保管库的密钥

代码:

  1. import com.azure.identity.ClientSecretCredential;
  2. import com.azure.identity.ClientSecretCredentialBuilder;
  3. import com.azure.security.keyvault.secrets.SecretClient;
  4. import com.azure.security.keyvault.secrets.SecretClientBuilder;
  5. import com.azure.security.keyvault.secrets.models.KeyVaultSecret;
  6. public class KeyVaultKam {
  7. public static void main(String[] args) {
  8. String keyVaultUri = "https://<keyvault-name>.vault.azure.net/";
  9. String secretName = "<secrete-name>";
  10. ClientSecretCredential credential = new ClientSecretCredentialBuilder()
  11. .clientId("<client-ID>")
  12. .clientSecret("<client-secrete>")
  13. .tenantId("<tenant-ID>")
  14. .build();
  15. SecretClient secretClient = new SecretClientBuilder()
  16. .vaultUrl(keyVaultUri)
  17. .credential(credential)
  18. .buildClient();
  19. try {
  20. KeyVaultSecret secret = secretClient.getSecret(secretName);
  21. System.out.println("Secret value: " + secret.getValue());
  22. } catch (Exception e) {
  23. System.out.println("Error retrieving secret: " + e.getMessage());
  24. }
  25. }
  26. }

pom.xml:

我向pom.xml文件添加了以下依赖项

  1. <dependencies>
  2. <dependency>
  3. <groupId>com.azure</groupId>
  4. <artifactId>azure-security-keyvault-secrets</artifactId>
  5. <version>4.6.2</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>com.azure</groupId>
  9. <artifactId>azure-core</artifactId>
  10. <version>1.39.0</version>
  11. </dependency>
  12. <dependency>
  13. <groupId>com.azure</groupId>
  14. <artifactId>azure-identity</artifactId>
  15. <version>1.4.0</version>
  16. </dependency>
  17. </dependencies>

我为客户端应用程序创建了如下的访问策略

Azure Key Vault错误消息 “AKV10000: 请求缺少Bearer或PoP令牌。”

输出:

成功运行并且获取了我的密钥输出如下,

Azure Key Vault错误消息 “AKV10000: 请求缺少Bearer或PoP令牌。”

英文:

I made some changes with your code and I got the secrete of my key vault at output.

Code:

  1. import com.azure.identity.ClientSecretCredential;
  2. import com.azure.identity.ClientSecretCredentialBuilder;
  3. import com.azure.security.keyvault.secrets.SecretClient;
  4. import com.azure.security.keyvault.secrets.SecretClientBuilder;
  5. import com.azure.security.keyvault.secrets.models.KeyVaultSecret;
  6. public class KeyVaultKam {
  7. public static void main(String[] args) {
  8. String keyVaultUri = &quot;https://&lt;keyvault-name&gt;.vault.azure.net/&quot;;
  9. String secretName = &quot;&lt;secrete-name&gt;&quot;;
  10. ClientSecretCredential credential = new ClientSecretCredentialBuilder()
  11. .clientId(&quot;&lt;client-ID&gt;&quot;)
  12. .clientSecret(&quot;&lt;client-secrete&gt;&quot;)
  13. .tenantId(&quot;&lt;tenant-ID&gt;&quot;)
  14. .build();
  15. SecretClient secretClient = new SecretClientBuilder()
  16. .vaultUrl(keyVaultUri)
  17. .credential(credential)
  18. .buildClient();
  19. try {
  20. KeyVaultSecret secret = secretClient.getSecret(secretName);
  21. System.out.println(&quot;Secret value: &quot; + secret.getValue());
  22. } catch (Exception e) {
  23. System.out.println(&quot;Error retrieving secret: &quot; + e.getMessage());
  24. }
  25. }
  26. }

pom.xml:

I added below dependencies to the pom.xml file,

  1. &lt;dependencies&gt;
  2. &lt;dependency&gt;
  3. &lt;groupId&gt;com.azure&lt;/groupId&gt;
  4. &lt;artifactId&gt;azure-security-keyvault-secrets&lt;/artifactId&gt;
  5. &lt;version&gt;4.6.2&lt;/version&gt;
  6. &lt;/dependency&gt;
  7. &lt;dependency&gt;
  8. &lt;groupId&gt;com.azure&lt;/groupId&gt;
  9. &lt;artifactId&gt;azure-core&lt;/artifactId&gt;
  10. &lt;version&gt;1.39.0&lt;/version&gt;
  11. &lt;/dependency&gt;
  12. &lt;dependency&gt;
  13. &lt;groupId&gt;com.azure&lt;/groupId&gt;
  14. &lt;artifactId&gt;azure-identity&lt;/artifactId&gt;
  15. &lt;version&gt;1.4.0&lt;/version&gt;
  16. &lt;/dependency&gt;
  17. &lt;/dependencies&gt;

I created access policy for the client application as below,

Azure Key Vault错误消息 “AKV10000: 请求缺少Bearer或PoP令牌。”

Output:

It runs successfully and got the output of my secrete as below,

Azure Key Vault错误消息 “AKV10000: 请求缺少Bearer或PoP令牌。”

huangapple
  • 本文由 发表于 2023年6月13日 18:29:10
  • 转载请务必保留本文链接:https://go.coder-hub.com/76463957.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定