如何使用 CLI 2.x 添加 preAuthorizedApplications

2023-12-11

在 Azure AD 中,在公开 API 部分下,我希望使用 CLI 2.x 自动注册 API 和 Web 应用程序。我查看了文件here但找不到任何涉及 preAuthorizedApplications 的内容。搜索仅产生了遗留支持的信息。哪儿是CLI 2.x支持设置 preAuthorizedApplications 数据吗?

enter image description here

通过门户 UI 填充时,清单包含相关信息

"preAuthorizedApplications": [
{
        "appId": "d22xxxxxxx",
        "permissionIds": [
            "ef92yyyyyy"
        ]
    }
 ],...

这是可以直接插入清单的东西吗?任何对文件或样品的参考将不胜感激。

Edit:尝试使用 null 值写入属性失败,并显示错误“找到没有类型名称的值,并且没有可用的预期类型......”

az ad app update --id $appId --set preAuthorizedApplications='[]'

如果我显示应用程序属性,我会在列表中看到 preAuthorizedApplications 具有空值

az ad app list --display-name $appName

enter image description here

因此,由于某种原因,该属性似乎无法注入到清单中。


@joy-wang 的出色回答让我走上了正轨,但仍然花了几个小时才弄好。

  1. 不再使用/beta/,使用1.0
  2. PermissionIds 现在称为 delegatedPermissionIds
  3. 标题规范现在看起来风格不同。当按照 Joy 的方式指定时,我得到了 [1]
  4. 与乔伊所说的相呼应,是的,你需要非常小心引用。在意识到我需要在正文周围使用双引号并在值内部使用单引号之前,我对错误的事情做了很多实验,反之则给出了错误 [2]

以下工作有效:

$permsJson = az ad sp show --id $apiApplicationId --query 'oauth2Permissions[].{Value:value, Id:id, UserConsentDisplayName:userConsentDisplayName}' -o json
$permsHash = $permsJson | ConvertFrom-Json
$permId = $permsHash.Id  #in my case that app only had one permission, you may need to do differently

$apiObjectId = az ad app show --id $apiApplicationId --query objectId

          az rest  `
            --method PATCH `
            --uri "https://graph.microsoft.com/v1.0/applications/$apiObjectId" `
            --headers 'Content-Type=application/json' `
            --body "{api:{preAuthorizedApplications:[{appId:'$preAuthedAppApplicationId',delegatedPermissionIds:['$permId']}]}}"

[1] 该命令因意外错误而失败。这是回溯: 没有足够的值来解压(预期为 2,实际为 1) 回溯(最近一次调用最后一次): 文件“D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/util.py”,第 510 行,位于 shell_safe_json_parse 中 文件“json_init_.py”,第 367 行,负载中 文件“json\decoder.py”,第 339 行,在解码中 文件“json\decoder.py”,第 355 行,在 raw_decode 中 json.decoder.JSONDecodeError:需要用双引号括起来的属性名称:第 1 行第 2 列(字符 1)

在处理上述异常的过程中,又出现了一个异常:

回溯(最近一次调用最后一次): 文件“D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/util.py”,第 516 行,位于 shell_safe_json_parse 中 文件“ast.py”,第 85 行,位于literal_eval 中 文件“ast.py”,第 66 行,位于 _convert 文件“ast.py”,第 65 行,位于 文件“ast.py”,第 77 行,在 _convert 中 文件“ast.py”,第 84 行,在 _convert 中 ValueError:格式错误的节点或字符串:<_ast.name>

在处理上述异常的过程中,又出现了一个异常:

回溯(最近一次调用最后一次): 文件“D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/util.py”,第 807 行,在 send_raw_request 中 文件“D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/util.py”,第 521 行,位于 shell_safe_json_parse 中 knack.util.CLIError:需要用双引号括起来的属性名称:第 1 行第 2 列(字符 1)

在处理上述异常的过程中,又出现了一个异常:

回溯(最近一次调用最后一次): 文件“D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\knack/cli.py”,第 233 行,在调用中 文件“D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/init.py”,第 660 行,执行中 文件“D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/init.py”,第 723 行,在 _run_jobs_serially 中 文件“D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/init.py”,第 716 行,在 _run_job 中 文件“D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\six.py”,第 703 行,重新引发 文件“D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/init.py”,第 694 行,在 _run_job 中 文件“D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/init.py”,第 331 行,在call文件“D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/init.py”,第 811 行,在 default_command_handler 中 文件“D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/command_modules/util/custom.py”,第 17 行,在rest_call 中 文件“D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/util.py”,第 810 行,在 send_raw_request 中 ValueError:没有足够的值来解压(预期为 2,实际为 1) 要打开问题,请运行:“az Feedback”

[2] 错误请求({"error":{"code":"BadRequest","message":"无法读取 JSON 请求有效负载。请确保设置了 Content-Type 标头并且有效负载具有有效的 JSON 格式。","innerError" :{“日期”:“2021-06-19T12:49:52”,“请求id”:“13fe58d2-ef15-4a57-8f95-4f30dcece5cc”,“客户端请求id”:“13fe58d2-ef15-4a57 -8f95-4f30dcece5cc"}}})

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

如何使用 CLI 2.x 添加 preAuthorizedApplications 的相关文章

随机推荐

  • 为什么相同的日期有不同的时间?

    也许答案很明显 但我不明白 为什么代码片段中的日期不同 该格式是否也说明了有关时间的信息 console log 2017 1 9 gt console log new Date 2017 1 9 console log 2017 1 09
  • 如何获取加载的样式表的内容

    我想从页面头部链接的 css 文件中获取样式表规则 或 css textContent document styleSheets似乎适用于所有主流浏览器 但是styleSheets 0 cssRules当然在 IE 对于 IE 你可以使用r
  • 列表从索引中切片[重复]

    这个问题在这里已经有答案了 gt gt gt a a b c d e f g h l gt gt gt a 30 gt gt gt a 30 a b c d e f g h l 我试图理解这种切片背后的逻辑 例如 当我们尝试通过索引访问元素
  • Python中根据多个条件返回列的方法

    我有一个数据框如下 基于一些条件 我需要检索该列 Wifi User1 Wifi User2 Wifi User3 Thermostat Act User1 Act User2 Act User3 58 48 60 18 0 1 0 60
  • Webkit 和 Excel 文件(PHPexcel)

    我有一个可以下载的 excel 文件 例如 NAME xlsx 很好 它在 firefox 中工作 但在 webkit safari chrome 中它也附加到名称扩展名 xhtml那么它的名称将是 NAME xlsx html 它应该是仅
  • 如何创建数字选择器对话框?

    我希望能够创建一个对话框 允许用户从指定范围中选择一个数字 我知道现有的小部件 例如来自 Quietlycoding 的小部件和 SimonVT 的小部件 已经做到了这一点 但我很难将它们正确地集成到我的应用程序中 此外 这些主要是小部件
  • MySQL - 当嵌套选择使用该表时如何从表中删除?

    我正在尝试做这样的事情 DELETE FROM table 1 WHERE table 1 id IN SELECT table 1 id FROM table 1 table 2 table 3 WHERE table 1 id tabl
  • 像 xcode 一样批量优化 iphone/ipad 显示的 PNG

    我正在为 ipad 开发杂志查看器 但我在性能方面遇到了困难 我发现显示 png 最昂贵的部分是加载过程 我知道 xcode 能够在构建过程中优化 png 并且此类图像的加载速度要快得多 但我无法将所有图像都包含到构建中 因为它会很大 您知
  • Angular2 路由器中的生命周期挂钩

    在 angular2 路由器中添加生命周期挂钩时遇到问题 如果任何人都可以分享在 Angular2 路由器中添加生命周期挂钩的代码 那将会很有帮助 我了解了如何添加 可以激活 挂钩 感谢埃里克的帮助 与其他生命周期挂钩不同 CanActiv
  • WCF REST 错误 HTTP 307

    我有一个 REST WCF 服务 当尝试对此服务执行如下操作的 POST 时 我收到以下错误 OperationContract WebInvoke Method POST UriTemplate RequestFormat WebMess
  • 有没有一种干净的方法可以在 Spring Web API 中将字符串返回为 json?

    例如 我必须执行如下 RequestMapping value get string method RequestMethod GET public ResponseBody String getString return Hello Wo
  • Python <> 运算符是什么

    到底是什么 lt gt Python 中的运算符 为什么它没有文档记录 据我所知 是不是一样 or is not In Python 2 x lt gt 是相同的 i e 不等于 而不是is not这是 不等同于 但后者是首选 比较运算符
  • MySQL:要求 SSL 未显示在拨款中

    MySQL 8 不显示REQUIRE SSL in the SHOW GRANTS output 在 MariaDB 上 当我使用创建用户时REQUIRE SSL 它显示在补助金中 Server version 10 2 22 MariaD
  • 如何将 C# 数据表传递给 JavaScript 函数

    我在代码隐藏中有这些数据 并尝试以各种格式将其传递给 javascript 函数 列表数组 json 字符串 但无法通过 javascript var 对象获取数据 这是后面代码中最后一个数据格式 List
  • 如何阻止 Visual Studio“发布网站”发布我的 ReSharper 文件夹?

    这真的很烦人 因为它们不是该项目的一部分 我知道这确实很旧 但也许我的回复会对其他人有所帮助 我在这里找到了解决方案 http www meadow se wordpress p 137 基本上 将这些行添加到选项卡上方 Web 部署项目文
  • Windows 7 上的 XAMPP 上的 Kohana 3.2 错误:目录 APPPATH\cache 必须可写

    当我查看使用 Kohana 3 2 创建的网站时 会出现狂野的错误 Kohana Exception 0 目录 APPPATH cache 必须可写 我使用 Windows 7 和 XAMPP 但不知道该怎么做 因为目录 logs 是可写的
  • 数据框中列表列的极坐标交集

    import polars as pl df pl DataFrame a 1 2 3 8 9 4 b 2 3 4 4 5 6 所以给定数据帧 df a b 1 2 3 2 3 4 8 9 4 4 5 6 我想要一个c列 它是a和b的交集
  • 解决方案克隆发生在连续产生“新的最佳分数”的步骤中

    最近引起我注意的是 当产生 新的最佳成绩 时 步子比其他人慢 这绝对是在产生 新的最佳分数 的每一步中发生的解决方案克隆 因此 如果 新的最佳得分 步骤不是连续的 这也没关系 例如 如果我们连续执行 50 个步骤 则解决方案克隆过程将执行
  • 使用 boost 通过 TCP 序列化和发送对象

    我正在尝试通过 tcp 连接发送 C 对象 我的对象都是可序列化的 使用增强序列化 TCP服务器 客户端是用boost asio制作的 基本上我想发送这样的消息 其中包含消息类型 正在发送的对象的类型 和数据本身 序列化对象 以及数据的大小
  • 如何使用 CLI 2.x 添加 preAuthorizedApplications

    在 Azure AD 中 在公开 API 部分下 我希望使用 CLI 2 x 自动注册 API 和 Web 应用程序 我查看了文件here但找不到任何涉及 preAuthorizedApplications 的内容 搜索仅产生了遗留支持的信