带有托管身份文档的 EF Core + Azure PostgreSQL?
EF Core + Azure PostgreSQL with Managed Identity Documentation?
MS 具有 EF Core + Azure SQL 和托管身份的文档。 两年前也对它以及一些替代实现进行了深入讨论。
但我找不到适用于 Azure PostgreSQL 的任何内容,它也支持托管身份,可与 EF Core 一起使用。
MS 在此处提供了 Azure PostgreSQL 托管身份的通用文档:
https://docs.microsoft.com/en-us/azure/postgresql/howto-connect-with-managed-identity
似乎建议在常规 PostgreSQL 连接字符串中用访问令牌替换密码是它的工作原理。
那么使用 EF Core 实现它的最佳方法是什么?
任何建议或 link 相关文档将不胜感激。
replacing the password with access token in a regular PostgreSQL connection string is how it works.
在 .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);
});
}
MS 具有 EF Core + Azure SQL 和托管身份的文档。
但我找不到适用于 Azure PostgreSQL 的任何内容,它也支持托管身份,可与 EF Core 一起使用。
MS 在此处提供了 Azure PostgreSQL 托管身份的通用文档: https://docs.microsoft.com/en-us/azure/postgresql/howto-connect-with-managed-identity
似乎建议在常规 PostgreSQL 连接字符串中用访问令牌替换密码是它的工作原理。
那么使用 EF Core 实现它的最佳方法是什么?
任何建议或 link 相关文档将不胜感激。
replacing the password with access token in a regular PostgreSQL connection string is how it works.
在 .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);
});
}