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

使用Azure KeyVault,在Azure Active Directory租户中找不到对象

董建德
2023-03-14

使用Azure KeyVault,我按照以下指南设置了资源组、KeyVault和密钥:

https://azure.microsoft.com/en-gb/documentation/articles/key-vault-get-started/

我已经在Active Directory中设置了应用程序客户端。然而,当我尝试使用:

Set-AzureKeyVaultAccessPolicy

向服务主体帐户授予权限时,我收到以下错误:

“在租户”tenantId“中找不到Active Directory对象”clientId“。请确保您正在授权的应用程序服务主体的用户已在当前订阅的Azure Active Directory中注册。”

clientId是正确的,因为它是从门户中的应用程序配置页面复制的。租户ID是当前订阅的租户ID…但不是活动目录的租户ID。

问题似乎是Active Directory的租户ID与我正在使用的订阅的租户标识不同。如何更改Azure门户中Active Directory的租户ID以匹配订阅租户ID?

共有2个答案

杨飞
2023-03-14

你可以在https://learn . Microsoft . com/en-us/azure/key-vault/key-vault-get-started # a-idauthorizeauthorize-the-application-to-use-the-key-or-secret上找到的文档有两个错误

1)-ServicePr

2)如果您没有使用门户创建您的广告应用程序,而是从Powershell Azure资源管理器脚本创建的,则还没有为您的广告应用程序创建服务主体。在运行Set-azuremkeyvaultaccesspolicy之前,必须使用New-azuremadserviceprincipal cmdlet完成此操作。

总之,你应该有

$app =  New-AzureRmADApplication -DisplayName "Test" -HomePage "http://myapp.contoso.com" -IdentifierUris "http://myapp.contoso.com" -Password "password" 

New-AzureRmADServicePrincipal -ApplicationId $app.ApplicationId

Set-AzureRmKeyVaultAccessPolicy -VaultName "vaultname" -ServicePrincipalName "http://myapp.contoso.com" -PermissionsToSecrets Get 

你也可以在 https://social.msdn.microsoft.com/Forums/azure/en-US/ae8d2782-ecf7-4d35-9859-d4455e65a668/setazurermkeyvaultaccesspolicy-cannot-find-the-active-directory-object-in-tenant-?forum=AzureKeyVault 上找到这方面的讨论

秦俊发
2023-03-14

租户ID是指Azure AD目录的唯一标识符。每个Azure订阅都与一个目录(或“租户”)相关联。

听起来好像您在与Azure订阅关联的目录不同的目录中创建了应用程序,而您在Azure订阅中创建了密钥库。

注册应用程序时,转到Azure管理门户的Active Directory部分时,请确保选择与订阅相关联的目录(创建Azure Key Vault的订阅)相同的目录。

 类似资料:
  • 我们在 Users 表中添加一个 TenantId 字段,但是没有在 UserRow 中定义,并且也不能在用户对话框中看到该字段。 该字段只能被 admin 用户查看和编辑。即使是授予了访问管理租户权限的其他用户也不能查看或者修改这些信息。 首先把 TenantId 字段添加到 UserRow.cs: namespace MultiTenancy.Administration.Entities {

  • 我正在使用和。每当我尝试执行insert语句时,我都会得到错误。 表clears存在于中,但是我遇到了这个错误。 offersdao.java

  • 我遵循了以下基本的Spring批量教程https://spring.io/guides/gs/batch-processing/ . > 我正在使用IntelliJ 14并创建了一个Spring批处理项目 我在用Mavin。我还有pom。xml文件。 Mvn clean install运行良好,即使应用程序。java告诉我“无法自动连线。找不到JdbcTemplate类型的bean”@Autowi

  • 问题内容: 因此,我已经在Google和堆栈中进行搜索,我发现了一堆错误相同的ppl,但是没有一种解决方案似乎可以解决我的问题。 我正在使用什么: Java 8 JavaEE7 TomEE 7.0 M3 JPA 2.0 ORM 1.0 Postgres 我认为问题在于命名查询,也许还有ManyToMany关系。 实体 User.java SystemRole.java XML配置 persiste

  • 我发现这个错误在整个互联网上出现了很多次,但我根本没有找到适合我的情况的解决方案。我有一个 HSQL 数据库 - 我已成功连接到数据库中的一个表。我继续在数据库中创建另一个表 - 根据需要修改完全相同的 Java 代码,但它带来了错误:java.sql.SQLSyntaxErrorException:用户缺少权限或找不到对象:USER。 我发现在我的文件存储脚本中,PRODUCT表创建的代码就在那

  • 所以我已经在谷歌和stack上搜索过了,我找到了一堆有同样错误的人,但是没有一个解决方案能解决我的问题。 我正在使用的: Java 8 JavaEE7 TomEE 7.0 M3 JPA 2.0 ORM 1.0 Postgres公司 我认为问题在于命名查询,也许还有ManyToMany关系。 User.java SystemRole.java 持久性.xml user-orm.xml context