gpt4 book ai didi

azure - 无法使用 Az 模块或 Az/CLI 设置 unauthenticatedClientAction

转载 作者:行者123 更新时间:2023-12-02 23:40:55 28 4
gpt4 key购买 nike

我设计了一个 PowerShell 脚本,它能够正确配置函数应用的各种设置(包括 CORS)。Function App 可以运行并且可以从 Api 管理服务调用。

当需要配置Azure AD时,我使用Az/CLI完全复制我使用所做的事情门户 UI(我手动设置的效果非常好)。但它停止工作,APIM 返回 HTTP 状态代码 401(未经授权)。

配置 Azure AD 的脚本部分如下:

# $add is a simple class that contains value to be configured
# actually AllowedTokens is always empty
if ($aad) {
'Setting Function App AAD configuration.' | Write-Verbose
$allowedTokens = if ($aad.AllowedTokens) { "--aad-allowed-token-audiences $($aad.AllowedTokens -join ' ')" } else { '' }
"az webapp auth update --name $name --resource-group $group --enabled $($aad.Enabled.ToString().ToLower())" +
" --action LoginWithAzureActiveDirectory --aad-client-id $($aad.ClientId) --aad-client-secret $($aad.ClientSecret)" +
" --token-store true" +
" --aad-token-issuer-url $($aad.TokenIssuerUrl) $allowedTokens" |
Invoke-Expression
'Function App AAD configuration set.' | Write-Verbose
}

第一个奇怪的事情是,如果我禁用身份验证/授权,

enter image description here

我保存设置,启用并再次保存一切开始工作。

所以我重新开始并启动了脚本。我已经检查了该资源。

az auth show 表示 unauthenticatedClientAction 设置为 RedirectToLoginpage

az resources show 表示 unauthenticatedClientAction 设置为 null

当我执行上述技巧时:

az auth show 表示 unauthenticatedClientAction 设置为 AllowAnonymous

az resources show 表示 unauthenticatedClientAction 设置为 null

所以我认为这是使 Function App 正常工作的重要区别(或者更好的是这是正确配置它的方法)。

由于我已成功使用此方法进行其他设置,因此我尝试使用 Az/CLI 设置此属性:

az resource update --name web --resource-group $group --namespace Microsoft.Web --resource-type config `
--parent "sites/$funcName" --set properties.siteAuthSettings.unauthenticatedClientAction=AllowAnonymous

作为响应返回的 JSON 显示没有任何变化。检查资源可以确认这一点。

还有一件事,当我导出资源组时,我在任何 Function App 模板中都看不到任何 unauthenticatedClientAction

unauthenticatedClientAction 设置为 AllowAnonymous 的正确方法是什么?

任何帮助将不胜感激!

最佳答案

首先,回答你的问题,将unauthenticatedClientAction设置为AllowAnonymous,只需使用

az webapp auth update --name <functionapp-name> --resource-group <group-name> --action AllowAnonymous

enter image description here

<小时/>

实际上,当您在门户中执行此操作时,它会更改

enter image description here

enter image description here

这是unauthenticatedClientAction 设置。

那么问题来了,我不确定你是否想通过Azure AD来保护你的azure功能。因为当您将 unauthenticatedClientAction 设置为 AllowAnonymous 时,您的函数将允许匿名请求,Azure AD 身份验证将不会生效。

When the need arose to configure Azure AD, I've used Az/CLI to replicate exactly what I do using Portal UI (and what I set manually perfectly works). But it stopped working, APIM returns HTTP status code 401 (unauthorized).

是的,401错误代表Azure AD auth toke效果,如果您启用Azure AD auth(设置使用Azure Active Directory登录),您需要获取客户端的访问 token /user,然后使用 token 来访问该功能。 (不知道如何在 APIM 中实现它,我不是 APIM 专家:-))

更多详情,您可以查看此blog还有这个post .

关于azure - 无法使用 Az 模块或 Az/CLI 设置 unauthenticatedClientAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61483051/

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