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

如何用在Azure Active Directory中创建的应用程序注册本地创建的应用程序?

孟选
2023-03-14

下面是学习AzureKeyVault配置设置的说明

    null
  • 配置[“section:secretname”]
  • config.getSection(“section”)[“secretname”]

好的,所以我已经将应用程序的名称作为“企业应用程序”复制到Azure Active Directory中。我还为我刚刚创建的添加对象添加了Azure中的“get”和“list”的“访问策略”。然而,当我试图启动应用程序时,程序中出现了这样一个错误:

Exception: {"error":"unauthorized_client","error_description":"AADSTS70001: 
Application with identifier '(guid)' was not found in the directory ...(continues)

更新8-4-18好的,我发现Azure使用本地AppSettings.json中的'ClientId'和'ClientSecret'连接到Azure在本教程中注册的内容:https://docs.microsoft.com/en-us/Azure/azure-resource-manager/resource-group-create-service-principal-portal#log-in-as-the-application

  1. 在appsettings.json中从ADD上的applicationId获得clientId,我使用ADD>app registrations>new
  2. 创建appsettings.json
  3. 我在刚刚创建的应用程序中单击ADD中的settings,并创建一个过期的密钥,以ClientSecret的形式存储在AppSettings.json中。
  4. 我将appsettings中的“存储库”更改为命名存储库。
  5. 我运行上面的powershell来提供访问权限,或者在Add中进行访问。

所以现在我得到了一个更简单的错误:

'Microsoft.Azure.KeyVault.Models.KeyVaultErrorException: 'Access denied''

我尝试在Visual Studio中以管理员身份运行。我在Azure订阅>Access Control>(IAM)>将我的新应用程序设置为Reader下。

共有1个答案

贺善
2023-03-14

因此,powershell失败的原因是因为您试图分配用户主体-一个用户,而实际上您需要的是服务主体

我无法看到您的C#支持更多,因为当您使用SDK作为服务主体登录时,您使用的是应用程序/服务主体的应用程序id(它是相同的id)。

服务主体的行为类似于本地目录中的用户,但您作为应用程序登录。

我查看了您发布的示例,并自己运行了它,遇到了非常类似的问题。然而,我已经让它工作了。以下是步骤:

  1. 创建注册的应用程序。我通过Azure Portal来完成此操作,这样就会自动创建服务主体。记下applicationid.
  2. 在创建的应用程序上生成密钥凭据并记录下来。
  3. 在应用程序中,单击指向本地目录中的托管应用程序的链接。这是服务主体,请记下objectid

>

  • 创建keyvault-我使用PowerShell来完成此操作。new-azurermkeyvault

    Set-AzureRmKeyVaultAccessPolicy -VaultName <vault> -ResourceGroupName <ResourceGroupName> -ObjectId <Object Id of the Created Service Principal> -PermissionsToSecrets Get,List
    

    在应用程序设置中,遵循以下格式:

    {
      "Vault": <the name of your vault>,
      "ClientId": <ApplicationId of the Registered Application>,
      "ClientSecret": <Credential generated from the Registered Application>
    }
    

    这对我很有效,让我可以运行样本并从金库中检索秘密。

  •  类似资料:
    • Ember CLI,Ember的命令行界面提供了一个标准的项目结构,一组开发工具和一个插件系统。这允许Ember开发人员专注于构建应用程序,而不是构建使它们运行的​​支持结构。可通过ember --help显示Ember CLI提供的命令,或通过ember help <command-name>查看特定命令的信息。 创建应用程序 $ ember new super-rentals 上述ember

    • 过去几天我一直在尝试在我的Windows PC上安装Rails。我从www.railsinstaller那里得到了这个包裹。org,它安装得很好。创建新应用程序时,我可以看到所有应用程序文件都已创建,然后出现以下错误: DL已弃用,请使用FIDLE从中获取gem元数据https://rubygems.org/..........正在解析依赖项。。。Gem::RemoteFetcher::Fetch

    • 我使用的是Eclipse Kepler,我已经安装了Spring IDE和STS,但当我创建Spring MVC Template项目时,出现了错误,然后我转到Maven Update选项,但出现了错误。我不知道为什么。求求你,救命! 错误:项目构建过程中出错[firstSpring]构建过程中发生错误。在项目“firstSpring”上运行构建器“分面项目验证构建器”时出错。无法初始化类org.

    • 我们将使用Flash Builder 4.5创建Flex应用程序。 让我们从一个简单的HelloWorld应用程序开始。 第1步 - 创建项目 第一步是使用Flash Builder IDE创建一个简单的Flex项目。 使用File 》 New 》 Flex Project选项启动项目向导。 现在使用向导窗口将项目命名为HelloWorld ,如下所示 - 选择应用程序类型Web (runs in

    • 要创建一个简单的EJB模块,我们将使用NetBeans“新建项目”向导。 在下面给出的示例中,我们将创建一个名为Component的EJB模块项目。 创建项目 在NetBeans IDE中,选择“ File 》 New Project 》 。 您将看到以下屏幕 在类别Java EE下选择项目类型,将项目类型选择为EJB Module 。 单击“ Next 》按钮。 您将看到以下屏幕。 输入项目名称

    • 由于GWT的功能在于使用Java Write in Java, Run in JavaScript , Write in Java, Run in JavaScript ,我们将使用Java IDE Eclipse来演示我们的示例。 让我们从一个简单的HelloWorld应用程序开始 - 第1步 - 创建项目 第一步是使用Eclipse IDE创建一个简单的Web应用程序项目。 使用Google