Azure API 无法识别来自 Terraform 的服务主体

2024-04-04

为了使 Terraform azurerm 提供程序能够对将使用以下代码创建的服务主体进行身份验证,需要对下面的语法进行哪些具体更改?

问题

A secondTerraform 模块需要通过 azurerm 提供程序向 Azure 进行身份验证client_id and client_secret它是在早期的单独进程中以编程方式创建的。

提供者块secondTerraform 模块如下所示:

provider "azurerm" {
  subscription_id = var.subscriptionId
  client_id       = var.clientId
  client_secret   = var.clientSecret
  tenant_id       = var.tenantId
}  

当我们从之前的流程中验证的正确值不被接受为正确值时,就会出现问题var.clientIdvar.clientSecret在上面的提供者代码块中。

服务主体是如何创建的:

The client_id and client_secret用于验证secondTerraform 模块当前由firstTerraform 模块包括以下内容:

resource "azuread_application" "appReg" {
  name = var.appName
}

resource "azuread_service_principal" "example-sp" {
  application_id = azuread_application.appReg.application_id
}

resource "azuread_service_principal_password" "example-sp_pwd" {
  service_principal_id = azuread_service_principal.example-sp.id
  value                = "long-random-string"
  end_date             = "2021-06-02T01:02:03Z"
}

data "azurerm_subscription" "thisSubscription" {
  subscription_id = var.subscriptionId
}

resource "azurerm_role_assignment" "example-sp_role_assignment" {
  scope                = data.azurerm_subscription.thisSubscription.id
  role_definition_name = "Contributor"
  principal_id         = azuread_service_principal.example-sp.id
}

resource "azuread_application_app_role" "example-role" {
  application_object_id = azuread_application.appReg.id
  allowed_member_types  = ["User", "Application"]
  description           = "Admins can manage roles and perform all task actions"
  display_name          = "Admin"
  is_enabled            = true
  value                 = "administer"
}

地形报告Apply complete在上述之后first模块已运行,我们还可以在 Azure 门户中确认正确的 Active Directory 有一个名为的新应用程序注册var.appName并且 ID 等于我们在first模块tfstate file.

错误信息:

当 Terraform 尝试apply the second模块使用由创建的服务主体 ID 和密钥first模块,抛出以下错误:

Error: 
Error building account: 
Error getting authenticated object ID: 
Error listing Service Principals: 
autorest.DetailedError{
  Original:adal.tokenRefreshError{
    message:"adal: Refresh request failed. 
    Status Code = '400'. 
    Response body: {
      \"error\":\"unauthorized_client\",
      \"error_description\":\"AADSTS700016: 
          Application with identifier 'correct-app-id' was not found in the directory 'the-right-ad-id'. 
          This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant. 
          You may have sent your authentication request to the wrong tenant.\\r\\n
          Trace ID: some-trace-id\\r\\n
          Correlation ID: correlation-id-redacted\\r\\n
          Timestamp: 2020-12-31 19:02:19Z\",
          \"error_codes\":[700016],
          \"timestamp\":\"2020-12-31 19:02:19Z\",
          \"trace_id\":\"some-trace-id\",
          \"correlation_id\":\"correlation-id-redacted\",
          \"error_uri\":\"https://login.microsoftonline.com/error?code=700016\"
    }", 
    resp:(*http.Response)(0xc000ac2000)}, 
    PackageType:"azure.BearerAuthorizer", 
    Method:"WithAuthorization", 
    StatusCode:400, 
    Message:"Failed to refresh the Token for request to https://graph.windows.net/the-right-ad-id/servicePrincipals?%24filter=appId+eq+%27correct-app-id%27&api-version=1.6", 
    ServiceError:[]uint8(nil), 
    Response:(*http.Response)(0xc000ac2000)
}  

该错误消息似乎没有帮助,因为我们验证了该应用程序已注册到 AAD 实例。

我们如何解决这个问题并以编程方式创建一个client_id and client_secret将被接受并使用second module?


据我所知,您的 Terraform 代码没有问题。它应该工作正常。但是您收到错误,在租户中找不到该应用程序。所以你需要做的是检查第二个模块中的租户Id是否真的正确。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure API 无法识别来自 Terraform 的服务主体 的相关文章

  • 如何让 Terraform 将空值替换为默认值?

    Terraform 文档表明这应该已经发生 https www terraform io docs language expressions types html https www terraform io docs language e
  • 流分析作业 -> 数据湖输出

    我想使用 StreamAnalytics 作业设置 CI CD ARM 模板 并将输出设置为 DataLake Store https learn microsoft com en us azure templates microsoft
  • .NET Core Azure WebJobs 不从 Azure 应用程序设置读取

    I have an app service running with it s respective ConnectionString from Azure Portal The ConnectionString is point to A
  • 如何从 SQL Azure V11 升级到 V12?

    我正在使用 V11 SQL Azure 在此阶段 我不想升级包含我当前所有 QA 和生产数据库的现有 SQL 服务器 从逻辑上讲 为 V12 创建新的 SQL Server 设置似乎更安全 然后以某种方式将 V11 数据库实例从我的 V11
  • Azure webjob - 队列处理功能的正常关闭

    我有一堆 webjob 队列处理函数 public static void ProcessSomething QueueTrigger testrequest TestThing thing TextWriter logger Cancel
  • 当我进行部署槽交换时,为什么 azure 会重新启动网站?

    我有一个在 Azure 网站上运行的 net 4 5 网站 我已经设置了暂存部署 我预热两个站点 然后运行交换过程 从 azure 门户和 Azure powershell 无论我尝试什么 交换过程都会重新启动我的网站 两个 并且它们需要大
  • Laravel:运行队列:在 Windows Azure Web App 上连续监听

    我觉得问这个问题有点傻 但我似乎无法在互联网上找到这个问题的答案 经过几个小时的搜索后 我发现在 Linux 服务器上 您使用 Supervisor 在您的网站上连续运行 php artisanqueue listen 无论有或没有守护进程
  • 如何在azure上托管和部署ASP.Net core 2.0 web api?

    我在 Visual Studio 2017 中创建了一个解决方案 其中创建了以下项目 客户端 使用核心 2 1 的 Angular 模板 服务器 使用 core 2 0 的 web api 因为我是在天蓝色上部署我的应用程序的新手 因此 通
  • 受 Azure AD B2C 保护的自动化端点测试

    我有一个 WebAPI 应用程序 它使用用户通过凭据登录获得的 Azure B2C 令牌对用户进行身份验证 我现在需要针对我的 WebAPI 编写一些测试 但考虑到我需要登录 我不确定如何自动获取令牌https login microsof
  • 我可以在同一个 Azure 容器上创建和添加多少个访问策略?

    我通过搜索没有找到答案 我认为我应该能够在一个容器上创建许多存储访问策略 至少数千个 但经过测试 我的程序最多只能在一个容器上添加5个策略 然后我尝试了Microsoft Azure Storage Explorer 它也有这个限制 最多只
  • 如何在 access_token 中添加角色声明,目前它是在 id_token 中?

    我正在使用 PKCE 跟踪身份验证代码流 我的身份提供程序是 Azure Active Directory 我从应用程序注册创建了一个应用程序 客户端应用程序 在清单中 我添加了如下所示的 appRoles appRoles allowed
  • 费率计费计算

    Azure 价目表 API 返回 MeterRates 字段 请参阅文档 https msdn microsoft com en US library azure mt219004 aspx Azure 使用情况聚合给出了数量 请参阅文档
  • 如何识别 SQL Azure 中的死锁?

    我有一个由两个实例组成的 Windows Azure 角色 有时交易会失败并显示SqlException与以下文字 事务 进程 ID N 在锁资源上与另一个进程发生死锁 并被选为死锁牺牲品 重新运行事务 现在我已经谷歌搜索了一段时间并阅读这
  • Azure Graph API 身份验证_MissingOrMalformed

    我正在使用 Azure Graph API 从 Azure AD 导入用户 在天蓝色门户中 我添加了多个应用程序 我从 protal 获取 clientId tenantId 并创建一个有效期为一年的密钥 使用这些值 我创建一个 acces
  • 如何在本地启动Azure函数并附加调试器以通过launch.json和tasks.json动态处理?

    在 Mac 上使用 NET Core 和 Visual Studio Code 我尝试在本地托管 Azure Function 并将调试器附加到它 手动地 我可以通过启动该函数来使其工作func host start 然后按 IDE 中的调
  • Azure SQL 数据仓库 DWU 与 Azure SQL DTU

    我正在考虑从 Azure SQL 迁移到 Azure SQL 数据仓库 它似乎提供了我们需要的一些功能 但是价格是从小规模开始的一个问题 100 DWU 数据仓库的价格相当高 521 月 https azure microsoft com
  • launch.json 中不允许使用属性 env [VSCode]

    我所做的就是在 VS 中初始化一个模板 Azure Functions 项目 当我尝试通过设置运行配置环境变量时launch json VS直接警告我这是不 允许的 此外 即使当我尝试运行我的 ps1无论如何 对于 env 来说 它不起作用
  • Azure 表存储 - CreateIfNotExistsAsync 上的 501 NotImplemented

    我正在使用我知道可以工作的存储帐户和帐户密钥 信用 我有一个使用完全相同的连接字符串的 blob 容器 可以正常工作 我正在有效地这样做 CloudStorageAccount Parse connectionString CreateCl
  • 直接向订阅发送消息

    是否可以将消息直接发送到订阅队列 设想 消息失败 被丢弃到死信中 该消息已使用 defer 手动拾取 克隆 并且需要发送到它首先被发送到死信的队列 但不是主题 我可以直接向订阅者发送消息吗 我考虑过为每个订阅者创建一个单独的重试队列 处理服
  • Azure函数版本2.0-应用程序blobTrigger不工作

    我有一个工作功能应用程序 它有一个 blob 输入和一个事件中心输出 在测试版中工作 随着最新的更改 我的功能不再起作用 我尝试根据发行说明更新 host json 文件 但它没有引用 blob 触发器 version 2 0 extens

随机推荐

  • Html5 视频和 Flash 方法

    研究 HTML5 视频标签 并研究哪些浏览器支持哪些视频文件类型 我最初的想法是事情变得比仅仅使用 Flash 更困难 我想知道是否有人已经找到一些骨架代码 与视频的开发方法相结合 来执行以下操作 如果闪光灯可用 请使用它 如果没有 请尝试
  • SimpleITK 体积数据旋转(例如 MRI)

    我有一个 32x32x3 高度 宽度 深度 的图像 我试图在 satk 中围绕 z 轴旋转 45 度 然而 我要旋转的 z 深度轴似乎是成一定角度的 如何旋转图像 以便在查看图像的一个切片时 我会看到该切片从中心旋转 45 度 下面是我的代
  • 从外部文件加载配置的最佳 PySpark 实践是什么

    我想初始化配置一次 然后在我的 PySpark 项目的许多模块中使用它 我看到有两种方法可以做到这一点 将其加载到入口点并作为参数传递给每个函数 main py with open sys argv 1 as f config json l
  • 如何根据标志启用/禁用 selectManyCheckbox 中的项目

    我需要您的帮助来禁用和启用项目selectManyCheckboxjsf 页面中的组件 首先 selectManyCheckbox 组件显示三个复选框 分别是 Loan Health Transfer 该列表将从具有以下代码的 bean 中
  • 如何在 PHP 中循环 JSON 对象值?

    我有一个 JSON 对象 我想循环遍历这些值 json 1 a 2 b 3 c 4 d 5 e obj json decode json TRUE for i 0 i
  • 如何在 EditText 中设置最小文本(强制)和最大文本

    In my EditText字段 我想给一些最小文本作为强制 最大文本作为限制 有什么方法可以实现这一点吗 如果要输入文本 则数字计数必须减少 我该怎么做呢
  • 将自定义 CSS 传递给 Polymer 元素

    我希望能够通过CSSwidth到我的自定义元素 Shadow DOM 自定义元素称为my list 定义如下
  • 使用 Jest 和 Redux 的异步组件快照

    我发现 Jest 在测试我的 Redux React 应用程序时非常有用 然而 有很多关于如何测试异步操作创建器的示例 但我无法真正弄清楚如何对异步组件进行快照 我想做的是类似的事情Facebook 自己的教程中的悬停链接示例 https
  • Rebus 如何与 Azure 服务总线主题配合使用?

    我是 Rebus 和 Azure 服务总线的新手 想了解 Rebus 如何与 Azure 服务总线主题和队列配合使用 我已经成功地让 Rebus 与 ASB 合作 但对幕后发生的事情有点困惑 我有一个 ASP NET Core 应用程序 它
  • Excel VB 打开文件 OSX 和 Windows

    我有一个电子表格 它使用一些基本代码来让用户选择一个文件 txt 文件 它在 Windows 上完美运行 但在 OSX 上显然由于 FileDialog 调用的差异而失败 我已经做了一些研究 但似乎找不到太多有关在 OSX 和 Window
  • Verilog 中的 If 语句和分配连线

    我试图弄清楚基于组合逻辑分配电线的基础知识 I have wire val wire x wire a wire b always begin if val 00 I want to assign x a if val 01 I want
  • Webservice方法返回XmlDocument,Reference看到一个XmlNode

    我遇到了一个无法解决的问题 所以我请求你帮助我 我正在使用 WebService 并尝试从名为 GetSystemDocument 的 WebService 方法返回 XmlDocument 该方法如下所示 WebMethod Descri
  • 当overflow-x:hidden时禁用鼠标滚动[CSS,HTML]

    问题 我的 div 的内容定位为 绝对 并且内容的宽度大于 div 根据需要 使用 overflow x hidden 剪辑 额外 内容 不过 如果我尝试使用鼠标滚动进行水平滚动 内容就会变得可见 我怎样才能不让这种事发生呢 我可以使用 J
  • While 循环不运行indexOf 搜索

    我试图找出一个字符串在另一个字符串中出现了多少次 在我的测试中 我对第一个单词使用 ea 对第二个单词使用 Ilikedthebestontheeastbeachleast 我的输出为 appearance 变量返回 0 该变量应该存储 e
  • 如何在 SwiftUI 中删除 List 和 ScrollView 的底部填充

    我想删除底部填充 即红色空间之间的空白 有什么办法可以实现吗 测试代码 struct ContentView View var body some View return NavigationView VStack the same res
  • Fabric.js 鼠标右键单击

    有没有办法在 Fabric js 画布上接收右键单击鼠标事件 以下代码仅适用于左键单击 canvas observe mouse down function console log mouse down NOTE 上面的大多数答案都已经过时
  • Rails 项目中的 rake 范围?

    我在我正在从事的项目中使用了许多解析器 当使用另一个 rake 中已经存在的方法名称时 并且因为它们都使用相同的环境 所以我会遇到冲突 有没有办法限制 rake 文件在其命名空间内的范围 我认为这就是命名空间的全部意义 Example na
  • 如何在WebLogic上查找JNDI资源?

    我在 WebLogic 11g 上部署了一个遗留应用程序 该应用程序具有以下代码 Context context new InitialContext dataSource javax sql DataSource context look
  • vaadin gwt 编译器错误未知参数:-war

    我的 vaadin 项目有问题 由于我对 vaadin 相当陌生 所以我不确定如何解决它 我想重新编译我的小部件集 但即使在自定义 Eclipse 之后 我也会收到相同的错误消息 首先它通过命令行执行编译器 接下来它告诉我小部件集是从某个类
  • Azure API 无法识别来自 Terraform 的服务主体

    为了使 Terraform azurerm 提供程序能够对将使用以下代码创建的服务主体进行身份验证 需要对下面的语法进行哪些具体更改 问题 A secondTerraform 模块需要通过 azurerm 提供程序向 Azure 进行身份验