众所周知,Azure提供了整套的rest api,经过认证和授权,完美阐述了”我是谁,我能做什么“。对资源层的操作,我们很多时候是使用Powershell或者Azure CLI或者各个语言的SDK,
当然我们也可以直接使用rest api去做。这里有个例子演示了如何去用rest api 拿到一个azure订阅下的各个资源组,有兴趣的可以,基本就是复制粘贴传参就好了。它的基本思路是先拿access token,
然后用access token去发送list resource group请求,逻辑很清晰,此文极具参考意义,有兴趣的同学可以好好看看。
当你运行这个脚本代码的时候,你可能会遇到 AADSTS7000215报错,
会提示你secret不对,但是你回去AAD service principal去查看,你secret并没有错。问题出在这个密码的格式上,AAD sp的secret字符串比较特殊,只能见第一次,并且里面有各种符号,
比如“+”,“/”,“?”之类的,正因为有某些特殊符号的存在,在拼接URL的时候会出现encode的问题。解决办法也比较简单:对secret进行一次encode就好了。(更多讨论可以)
$ClientSecret = [uri]::EscapeDataString($ClientSecret)