如何在使用Azure CLI创建新应用程序后设置Azure应用程序范围

0tdrvxhp  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(95)

我试图创建一个应用程序,并尝试创建范围,我能够创建应用程序,但我无法创建范围。我已经厌倦了寻找解决方案,我发现这个link,但它似乎是过时的.
下面是创建应用程序的脚本:

$appId = az ad app create --display-name "webapp - dev" --sign-in-audience "AzureADMyOrg" --required-resource-accesses "./appregistration/script.json" --query appId -o tsv

字符串
我有一个名为permissions.json的文件用于范围。

[
{
    "adminConsentDescription": "Allow the app to access Api endpoints",
    "adminConsentDisplayName": "webApi",
    "id": null,
    "isEnabled": true,
    "type": "Admin",
    "userConsentDescription": null,
    "userConsentDisplayName": null,
    "value": "webApi"
}


]
我试图从这个文件中获取数据并创建一个范围。这是一个脚本

$json = Get-Content './appregistration/permissions.json' | Out-String | ConvertFrom-Json

foreach ($element in $json)
{$element.id = [guid]::NewGuid() }
 $apiScopeJson = @{oauth2PermissionScopes = $json}
 az ad app update --id $appId --set api=$apiScopeJson


我收到此错误消息。
有效负载中的属性API具有与架构不匹配的值。

oxcyiej7

oxcyiej71#

我使用了 @A2AdminGuy 的类似代码,来自您在问题中提到的相同link,并且能够成功地向应用程序添加新范围:

$AppId = az ad app create --display-name "webapp - dev" --sign-in-audience "AzureADMyOrg" --query appId -o tsv
Start-Sleep -Seconds 60
$scopeGUID = [guid]::NewGuid()
$permission = @{
    adminConsentDescription="Allow the app to access Api endpoints"
    adminConsentDisplayName="webApi" 
    id="$scopeGUID"
    isEnabled=$true
    type="Admin"
    userConsentDescription="null"
    userConsentDisplayName="null"
    value="webApi"
}
$AppObjId = (az ad app show --id $AppId | ConvertFrom-JSON).id

$appIduri = az ad app update --id $AppObjId --identifier-uris api://$AppId 

$accesstoken = (Get-AzAccessToken -Resource "https://graph.microsoft.com/").Token
$header = @{
    'Content-Type' = 'application/json'
    'Authorization' = 'Bearer ' + $accesstoken
}
$bodyaccess = @{
    'api' = @{
        'oauth2PermissionScopes' = @($permission)
    }
}|ConvertTo-Json -d 3

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

字符串

PowerShell输出:

x1c 0d1x的数据
在Portal中勾选时,新建应用new scope如下:


相关问题