Azure AD 通过 Azure CLI 添加密钥

2023-11-21

我正在尝试使用 Azure CLI 在我的 Azure AD 应用程序中添加密钥。 但查看Azure CLI API似乎没有这样的命令。

例如:

我正在尝试通过 Azure CLI 从下面的链接自动执行该任务:http://blog.davidebbo.com/2014/12/azure-service-principal.html

我可以创建 AD 应用程序、服务主体,但我找不到为新创建的 AD 应用程序添加密钥的方法。

我将不胜感激任何想法和指示:)

提前致谢 !


对于新的 AD 应用程序,您可以指定一个密钥-p创作时。例如,

azure ad app create -n <your application name> --home-page <the homepage of you application> -i <the identifier URI of you application> -p <your key>

对于现有的 AD 应用程序,Graph API 当然能够更新 AD 应用程序凭据。读这个API参考,可以看到密码凭证可以使用“POST、GET、PATCH”。然而,使用 Graph API 太复杂了。我已经检查了 Azure CLI。该功能尚未实现,并且源代码对我来说无法读取。然后,我看了一下Azure SDK for Python,因为我对python很熟悉,我发现他们已经在2.0.0rc2中实现了它。请参阅GitHub 存储库

我写了一个Python脚本。但是,为了使用我的脚本,您不仅需要安装 azure2.0.0rc2,还需要安装 msrest 和 msrestazure。

from azure.common.credentials import UserPassCredentials
from azure.graphrbac import GraphRbacManagementClient, GraphRbacManagementClientConfiguration
from azure.graphrbac.models import ApplicationCreateParameters, PasswordCredential

credentials = UserPassCredentials("<your Azure Account>", "<your password>")

subscription_id = "<your subscription id>"

tenant_id = "<your tenant id>"

graphrbac_client = GraphRbacManagementClient(
    GraphRbacManagementClientConfiguration(
        credentials,
        subscription_id,
        tenant_id
    )
)

application = graphrbac_client.application.get('<your application object id>')

passwordCredential = PasswordCredential(start_date="2016-04-13T06:08:04.0863895Z", 
                                        end_date="2018-04-13T06:08:04.0863895Z",
                                        value="<your new key>")

parameters = ApplicationCreateParameters(application.available_to_other_tenants,
                                     application.display_name,
                                     "<the homepage of your AD application>",
                                     application.identifier_uris,
                                     reply_urls=application.reply_urls,
                                     password_credentials = [passwordCredential])

application = graphrbac_client.application.update('<your application object id>', parameters)

该脚本的唯一问题是您只能覆盖 AD 应用程序的所有现有密钥。您无法附加新密钥。这是 Graph API 的问题。 Graph API 不允许用户读取现有密钥。一种可能的解决方案是将现有密钥存储在其他地方。但是,这会带来额外的安全风险。

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

Azure AD 通过 Azure CLI 添加密钥 的相关文章

随机推荐

  • 如何从 Expression> 动态创建 Expression> 谓词?

    我尝试附加 where 谓词 我的目标是创建与以下相同的表达式 Services Where s gt s Name Modules s Namespace Namespace 我有以下代码 Expression
  • React Native中setTimeout的准确性

    我正在 React Native 中构建一个节拍器 播放点击后 我设置了setTimeout以便下次点击 然而 时机太糟糕了 我做了以下快速测试 let time new Date getTime 50 setTimeout gt cons
  • 连接列表的元素对[重复]

    这个问题在这里已经有答案了 我知道可以连接一个列表来形成一个长字符串 如下所示 x a b c d print join x 显然这会输出 abcd 但是 我想做的只是将列表中的第一个和第二个字符串连接起来 然后连接第三个和第四个字符串 依
  • 将 Visual Studio 项目中的所有文件保存为 UTF-8

    我想知道是否可以将 Visual Studio 2008 项目中的所有文件保存为特定的字符编码 我得到了一个混合编码的解决方案 我想让它们全部相同 带有签名的 UTF 8 我知道如何保存单个文件 但是项目中的所有文件怎么样 既然您已经在 V
  • 用于多个项目的单个 node_modules 文件夹

    我有一个这样的网站列表 project1 site project2 site project4 site projectN site Each site文件夹里面有node modules文件夹 gruntfile js文件和一个pack
  • 如何在 C++03 中将 boost packaged_task 发布到 io_service?

    这是上一个问题的后续问题 here 但我正在开发一个多线程应用程序 我想将 Boost packaged task 发布到线程 io service 我被困在使用 C 03 编译器 所以 std move 已退出 并且 packaged t
  • WPF GridViewColumn Width="auto" 仅适用于当前滚动范围内的项目

    我有一个包含许多项目的 ListView 并尝试将列宽度设置为自动 以便它们自动扩展到列中最长字符串的宽度 起初 它似乎有效 但当我向下滚动列表时 我注意到一些较长的字符串被剪短了 因为该列没有足够的自动扩展 然后我想到 将宽度设置为自动似
  • 匹配正数的正则表达式

    我需要编写一个正则表达式以仅允许正数 整数或小数 我发现了这个 0 0 0 0 00 d d d 0 9 但它只接受最多 2 位小数 我必须进行哪些更改才能使其接受任意位数的小数 另外我在哪里可以找到学习正则表达式的好教程 预先感谢 这将是
  • 将 MATLAB 字符数组转换为字符串

    从 MATLAB 字符数组开始 A A 1 1 A A 1 2 P A 1 3 R A 2 1 M A 2 2 A A 2 3 Y 如何将其转换为字符串单元格 B 这样 B 1 APR B 2 MAY 编辑 A 是一个单元格 使用函数 ce
  • 删除JS数组中最小的数字

    我有一个数字数组 2 1 3 4 5 1 想要删除列表中的最小数字 但不知怎的 我的 IF 语句被跳过了 我检查过 numbers i 1 和 numbers i 本身确实有效 但 numbers i 1 function removeSm
  • ComponentDidCatch 不起作用

    Why componentDidCatch在我的反应本机应用程序中不起作用 componentDidCatch不处理错误 React native v 50 3 React 16 0 0 import React Component fro
  • 递归获取 Active Directory 组的成员,即包括子组

    在 Active Directory 中给定一个这样的组 MainGroup GroupA User1 User2 GroupB User3 User4 我可以使用如下代码轻松确定 User3 是否是 MainGroup 或其任何子组的成员
  • 如何使用 Apache 配置设置 SameSite cookie 属性?

    我无法在 应用程序 选项卡中使用内置开发人员工具看到 SameSite Strict 我在 Apache 配置中添加了以下标头代码 Header always edit Set Cookie 1 SameSite Strict Header
  • PHP GMAIL 使用 DOMDocument 和 cURL 联系 XML 解析

    我当前想要获取的只是 gd email 的属性 即 address 目前仅此而已 我可以到达 xml 部分 哎呀 我什至可以得到任何给定的想法 只要它在标签之内 但要获取任何给定的属性 就像我的情况一样 我完全困惑了 我曾经知道如何做到这一
  • Persistence.createEntityManagerFactory() 需要很长时间才能返回

    我正在使用 Hibernate 4 2 JPA 2 0 和 Postgres 9 2 代码卡在Persistence createEntityManagerFactory peristence unit name 经过进一步调查 我发现 H
  • String.Format进行四舍五入,无法定位非法格式转换源错误?

    我正在编写一个程序 让用户输入 6 个温度读数 然后 返回最高原始值 celcius版本 返回原始值 转换为摄氏度版本 设置数组值的代码如下 System out print Enter Temperature t Get the coun
  • JavaScript 获取 Audio.setSinkId 的权限

    我正在尝试改变sinkId在 Chrome 应用程序中的音频元素处 Code var audio new Audio audio setSinkId communications 我会收到这个错误 DOMException No permi
  • svn + ssh 没有命令行密码?

    我想要做 svn update Users radek Sites 3 0 5 r HEAD force 无需输入密码 svn 连接到我们的存储库服务器 但我不确定使用什么用户名 我怎样才能找到 我想要么是root or radek 我为
  • 在 R markdown 中嵌入绘图输出

    有一个博客条目它描述了从 R 的plotly API 嵌入到 R markdown 中 我只是使用代码为 html 文档创建 iframe 当我在 R studio 中预览时 没有错误消息 并且 iframe 是在 html 文档中创建的
  • Azure AD 通过 Azure CLI 添加密钥

    我正在尝试使用 Azure CLI 在我的 Azure AD 应用程序中添加密钥 但查看Azure CLI API似乎没有这样的命令 例如 我正在尝试通过 Azure CLI 从下面的链接自动执行该任务 http blog davidebb