【问题标题】:Possible to use Azure Managed Identity to access Cosmos DB with Entity Framework?可以使用 Azure 托管标识通过 Entity Framework 访问 Cosmos DB?
【发布时间】:2022-07-04 02:20:46
【问题描述】:

我正在尝试确定是否可以将 EF 与 Cosmos DB 一起使用并使用 Azure 托管标识进行身份验证。我知道您可以为 SQL 数据库添加一个拦截器以进行身份​​验证,但我无法让它与 Cosmos DB 一起使用,也找不到任何相关文档。

这是否意味着不可能?

【问题讨论】:

  • 我们可以使用system-assigned managed identities访问Azure Cosmos DB数据,请参考MS DOC如果有帮助请告诉我们。
  • 如何看待它与实体框架一起使用?您将上下文与optionsBuilder.UseCosmos(connectionString) 联系起来就是这样。

标签: .net azure entity-framework azure-cosmosdb azure-managed-identity


【解决方案1】:

计划支持 EF Core 7.0 并在此处跟踪:Cosmos: Support AAD RBAC via the ClientSecretCredential

目前计划在下一个版本中使用;也就是明年 11 月发布的 EF Core 7.0。

【讨论】:

    【解决方案2】:

    如果您想让它与托管身份一起使用,您可以进行快速调整(如果您不想在 11 月等待 EF 7)。 你可以看看我的要点,你需要做什么来创建一个自定义扩展并让它工作。

    https://gist.github.com/wkoeter/4ed90c7c8f61e3b3a52d2667d5a7c856

    ...
    var builder = WebApplication.CreateBuilder(args);
    
    builder.Services.AddCosmosCustom<CosmosContext>(
        endpoint: "https://westus22.documents.azure.com:443/",
        databaseName: "MyDb",
        managedIdentityClientId: "90df9398-990d-459f-8833-bfa4d762a4d7");
    
    ...
    

    这里的github问题 https://github.com/dotnet/efcore/issues/26491

    【讨论】:

      【解决方案3】:

      请看看这个项目:

      https://github.com/CosmosSoftware/AspNetCore.Identity.CosmosDb

      这里是 NuGet 包:

      AspNetCore.Identity.CosmosDb

      希望这会有所帮助!

      -埃里克

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-08-02
        • 1970-01-01
        • 2022-11-10
        • 2021-04-07
        • 2021-12-05
        • 2021-04-07
        • 1970-01-01
        • 2021-12-29
        相关资源
        最近更新 更多