我使用Azure脚本来注册这样的应用程序:
az ad app create --display-name $appName
--sign-in-audience AzureADMyOrg
--enable-id-token-issuance true
--enable-access-token-issuance false
--required-resource-accesses @app-resources.json
--web-redirect-uris $redirectUris
我也需要设置前端通道注销URL,但我没有办法将其包括在应用程序创建命令中。
我还尝试在创建应用程序之后使用以下更新命令来设置它:
az ad app update --id {id} --set logoutUrl="https://someurl"
az ad app update --id {id} --set web.logoutUrl="https://someurl"
az ad app update --id {id} --set web[logoutUrl]="https://someurl"
az ad app update --id {id} --set web=@{ logoutUrl = "https://someurl" }
但我搞不懂正确的语法。它们都会返回错误,按照
Couldn't find 'web' in 'web'. Available options: []
如何使用Azure为应用程序设置logoutUrl?
发布于 2022-07-22 11:03:15
我们尝试为服务主体/应用程序注册添加logoutUrl --遗憾的是,使用这些set-azureserviceprincipal
、update-azadserviceprincipal
、az ad app update
cmdlet之一--它不能工作,并且面临相同的错误。
或者,我建议您通过门户中的清单文件编辑logoutUrl值。以下是几个步骤:
发布于 2022-09-07 04:50:47
根据本答复,该选项的另一个相对较低的解决方法(目前)不受api命令本身的支持,就是使用图形api(通过As命令)设置注销url。
下面的代码片段获取Azure静态Web应用程序的默认主机名,并相应地更新相关的应用程序注册:
$swa = az staticwebapp show -n "SWA_NAME_HERE" -g "RESOURCE_GROUP_NAME_HERE" | ConvertFrom-Json -Depth 10
$swaHostUrl = "https://{0}" -f $swa.defaultHostname
$AppId = "GUID_HERE"
az ad app update --id $AppId --web-redirect-uris "$swaHostUrl/.auth/login/aad/callback" --enable-id-token-issuance true
# Need to workaround via MSGraph to set the logout url... sigh...
$appReg = az ad app show --id $AppId | ConvertFrom-Json -Depth 10
$body = @{ web = @{ logoutUrl = ("{0}/.auth/logout/aad/callback" -f $swaHostUrl) } } | ConvertTo-Json -Compress
# We need the object id for this bit
az rest --method PATCH --uri ('https://graph.microsoft.com/v1.0/applications/{0}' -f $appReg.id) --headers 'Content-Type=application/json' --body ($body -replace '"', '\"')
https://stackoverflow.com/questions/73058795
复制相似问题