0

MS 有 EF Core + Azure SQL with Managed Identity 的文档。两年前的这篇 SO 帖子也对它以及一些替代实现进行了深入讨论。

但是我找不到与 EF Core 一起使用的 Azure PostgreSQL 的任何东西,它也支持托管标识。

MS 在此处有 Azure PostgreSQL 托管标识的通用文档: https ://docs.microsoft.com/en-us/azure/postgresql/howto-connect-with-managed-identity

似乎表明在常规 PostgreSQL 连接字符串中用访问令牌替换密码是它的工作原理。

那么使用 EF Core 实现这一点的最佳方法是什么?

任何建议或相关文档的链接将不胜感激。

4

1 回答 1

1

用常规 PostgreSQL 连接字符串中的访问令牌替换密码就是它的工作原理。

在 .NET Core 中,通常会这样配置:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllers();

        services.AddTransient(typeof(Foo));
        services.AddSingleton(typeof(Bar));

        services.AddDbContext<Db>((sp, options) =>
            {
                var config = sp.GetRequiredService<IConfiguration>();
                var constr = config.GetConnectionString("ConnectionString");
                var tp = sp.GetService<ITokenProvider>();
                var token = tp.GetToken("https://ossrdbms-aad.database.windows.net");
                constr = constr.Replace("[passsword]", token);

                options.UseNpgsql(constr);
            });


    }
于 2021-01-18T17:32:25.037 回答