python - Azure Function App 上的 EasyAuth 错误自定义 oidc 提供程序

标签 python azure azure-functions openid-connect easy-auth

我们有一个 Python Linux azure 函数,它连接到自定义 oidc 提供商和 azure 广告,以使用 Microsoft 的 easyauth 为 HTTP 触发函数提供身份验证。

初始设置后,azure 功能即可运行,并且在过去的几个月中一直运行。

在过去 2 天中,我们的应用程序突然开始在自定义提供商上出错, azure 广告身份验证仍在工作,在检查 easyauth 日志后,我们看到了错误

System.PlatformNotSupportedException: Windows Cryptography Next Generation (CNG) is not supported on this platform.

过去 2 天内,自定义 oidc 提供程序或 azure 函数均未进行任何更改。 我们怀疑基础 easyauth docker 镜像 (mcr.microsoft.com/appsvc/middleware:stage2) 可能已更新并破坏了身份验证。

对可能的修复甚至相关问题有什么想法或建议吗?

最佳答案

难道是因为这个:https://github.com/Azure/app-service-announcements/issues/404

Use RSACNG when validating tokens to add PS256 support

编辑:截至今天早上也遇到这个问题。我目前正在尝试使用此命令 az webapp auth update --name xxx --resource-group xxx --runtime-version "1.5.1" 手动降级版本,但我的 Azure 凭据没有这样做没有足够的能力来运行它,所以我无法验证它是否有效。

EDIT2:如果您使用的是 auth v2,则不起作用。

EDIT3:如果您使用 auth v2,它实际上确实有效。您只需检查该命令的帮助选项即可了解,对于 auth v2,您必须使用命令 az extension add --name authV2 安装 CLI 扩展。之后您可以运行命令。我将版本降级到 1.5.1 但没有任何改变。我不确定这是否与我们首先部署到可能仍然有新版本的插槽有关。我还为此创建了一个 Azure 支持票证。

EDIT4:昨天接到了 Azure 的支持电话。他们在夜间解决了这个问题。需要重新启动应用程序。我仍然感到困惑的是,文档显示您可以查明 Easy Auth/身份验证/授权中间件的版本,但是当我对 AppService 进行故障排除并选择 Easy Auth 时,它实际上显示查明的版本是 1.5.1 并且运行版本是1.6.2。所以它完全忽略了整个配置。有趣吧?

关于python - Azure Function App 上的 EasyAuth 错误自定义 oidc 提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74319419/

相关文章:

python - 如何在 python 3.6 上制作一个简单的网络浏览器?

python - 我如何告诉 Python 脚本停止调试器附加到进程?

python - 美汤生第一个 child

python - 从 Python 中的数据中学习二元决策图 (BDD)

azure - 在 Azure DevOps 中通过拉取请求进行构建

sql-server - Azure sql跨数据库触发器

Azure 函数未运行 10 分钟

azure - Cosmos dB 正在阻止更新插入请求,即使它具有所需的 RBAC 角色

javascript - 如何使 azure 函数从 Typescript 生成的 dist 文件夹中读取?

azure - Azure 事件日志的别名