gpt4 book ai didi

azure - 如何使用 Azure CLI(az ad 应用程序)创建范围

转载 作者:行者123 更新时间:2023-12-02 05:50:57 27 4
gpt4 key购买 nike

使用 Azure CLI 2.x,我找不到在 Azure AD 门户中公开 API 部分下“添加范围”的方法。

enter image description here

我所看到的是,如果我在创建应用程序时传递 --identifier-uris,则会自动设置 APP ID URI 和范围:

    `az ad app create --display-name "$appName" --identifier-uris "https://$tenantDomain/$appName" --reply-urls "$replyUrl" --oauth2-allow-implicit-flow true`

enter image description here

不是我所期望的,也不是我想要的

因此,我从创建命令中删除了 --identifier-urls 并手动添加了我想要的范围。然后我通过 list 看到我在 OAuth2Permissions 下寻找的内容,如下所示。我可以将其放入带有新 guid 的 manifest.json 中并以某种方式插入吗?

enter image description here

什么 CLI 命令支持显式支持定义范围?然后添加客户端应用程序,我需要选择定义的范围,这是如何引用的?

文档非常稀疏,IMO。该引用非常有帮助,但这里没有讨论添加范围和客户端。 https://learn.microsoft.com/en-us/cli/azure/ad?view=azure-cli-latest 。非常感谢对示例或文档的任何帮助。

最佳答案

截至 22 年 7 月 29 日,最新的 Azure CLI 命令“az ad app update”不再包含 oauth2permissions。如果你尝试上面的方法,你一定会大吃一惊,并希望能找到这篇文章。这些权限在应用程序注册表上的新位置位于 api.oauth2PermissionScopes 中,以数组形式存在。

为了解决这个问题,我结合了这篇文章中的一些项目,并且必须发挥创意,如Azure docs仍然不正确。

如果您公开了现有的 API,则必须禁用它才能修改作用域,这仍然是事实。如果您有新的应用程序注册,则可以直接应用此应用程序,不会出现任何问题。希望这可以帮助像我这样的人,由于应用程序注册方式的变化和 list 的变化,自动化现在被破坏了。如果您不知道 app registrations 的更改,我建议你回顾一下。如果您已经做到了这一点,我想您已经做到了。

# Add API Read Scope: 
$scopeGUID = [guid]::NewGuid()
$scopeJSONHash = @{
adminConsentDescription="$apiName on $svrAppRegName"
adminConsentDisplayName="$apiName on $svrAppRegName"
id="$scopeGUID"
isEnabled=$true
type="User"
userConsentDescription="$apiName on $svrAppRegName"
userConsentDisplayName="$apiName on $svrAppRegName"
value="$apiName"
}
$azAppOID = (az ad app show --id $serverApplicationId | ConvertFrom-JSON).id
$accesstoken = (Get-AzAccessToken -Resource "https://graph.microsoft.com/").Token
$header = @{
'Content-Type' = 'application/json'
'Authorization' = 'Bearer ' + $accesstoken
}
$bodyAPIAccess = @{
'api' = @{
'oauth2PermissionScopes' = @($scopeJSONHash)
}
}|ConvertTo-Json -d 3

#You can try az rest, I used Invoke-RestMethod though.
#$graphURL="https://graph.microsoft.com/v1.0/applications/$azAppOID"
#az rest --method PATCH --uri $graphurl --headers $header --body $bodyAPIAccess

Invoke-RestMethod -Method Patch -Uri "https://graph.microsoft.com/v1.0/applications/$azAppOID" -Headers $header -Body $bodyAPIAccess

关于azure - 如何使用 Azure CLI(az ad 应用程序)创建范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62665491/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com