',azure-active-directory,azure-functions,azure-managed-identity"/>

首页 > 解决方案 > Azure 函数托管标识到 Azure Sql - 用户登录失败'

问题描述

我有一个 C# dotnet core 3.1 Azure Function App(名为 func-utrngen-dev-001),我想将其配置为通过托管标识对 Sql Azure 数据库进行身份验证。

采取的步骤:

  1. 为 sql server 帐户创建了 AAD 管理员

  2. 使用该帐户打开与 sql server 的连接

  3. 运行以下命令以创建与 azure function app 同名的“包含用户”

    从外部提供者创建用户 [func-utrngen-dev-001]

    更改角色 db_datareader 添加成员 [func-utrngen-dev-001]

    更改角色 db_datawriter 添加成员 [func-utrngen-dev-001]

  4. 确保在 Sql Server\Security\Firewalls 和虚拟网络 blas 下的 Azure 门户中将“允许 Azure 服务和资源访问此服务器”设置为“是”

  5. 确保在函数应用的身份刀片上将系统分配\状态设置为“打开”

当函数应用尝试进行身份验证时,我收到以下错误:

用户“<token-identified principal>”登录失败

因此,我安装了 Microsoft 的“MSI Validator”工具并运行了此处描述的步骤。我从 Kudu 会话的 Powershell 窗口运行以下命令:

./msi-validator.exe test-connection -r sql -e "数据源=sql-utrngen-dev-001.database.windows.net;初始目录=utrngen;"

它成功获得了一个令牌,但随后失败并出现与我的函数应用程序相同的错误:

无法连接到 SQL。异常:用户“<token-identified principal>”登录失败

  1. 我运行了 select * FROM sys.fn_get_audit_file(path to tsql audit blob) 但结果只显示我的帐户中的活动登录到 SSMS

接下来我应该尝试什么?

标签: azure-active-directoryazure-functionsazure-managed-identity

解决方案


解决方法是为数据库提供正确的名称 ‍♂️。欲速则不达


推荐阅读