DataProtectionBuilder.ProtectKeysWithAzureKeyVault не работает в .net 4.7.2 - PullRequest
0 голосов
/ 12 января 2019

ProtectKeysWithAzureKeyVault не извлекает ключ из Azure KeyVault, используя .net 4.7.2.. Но это хорошо работает в .netcore 2.2

Я делаю следующее:

public void ConfigureAuth(IAppBuilder app)
{
    app.UseCookieAuthentication(new CookieAuthenticationOptions
    {
        AuthenticationType = "Identity.Application", 
        CookieName = ".AspNet.SharedCookie",
        LoginPath = new PathString("/Account/Login"), 
        TicketDataFormat = new AspNetTicketDataFormat(
        new DataProtectorShim(
            DataProtectionProvider.Create(new DirectoryInfo(@"E:\SBH"), (builder) => {
                builder
                    .ProtectKeysWithAzureKeyVault(
                        "https://test.vault.azure.net/keys/jwt",
                        "ClientID",
                        "ClientScret")
                    .PersistKeysToFileSystem(new DirectoryInfo(@"E:\SBH"));
        }).CreateProtector(
            "Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationMiddleware",
            "Identity.Application",
            "v2"))),
        CookieManager = new ChunkingCookieManager()
    });
}

Код работает без ошибок / исключений. Но не звонить в лазурное хранилище ключей.

В чем проблема?

Я установил эти два пакета nuget

  • Microsoft.Owin.Security.Interop

  • Microsoft.AspNetCore.DataProtection.AzureKeyVault

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Я мог бы решить эту проблему, используя AspNetCore с платформой, указывающей на .NetFramework при создании решения.

При таком расположении я мог бы использовать функции .AspNetCore вместе со сборками .Net 4.7.2 для обратной совместимости.

И использовал обычные функции промежуточного программного обеспечения .NetCore для защиты данных, как показано ниже

            services.AddDataProtection()
                .PersistKeysToAzureBlobStorage(container, blobName)
                .ProtectKeysWithAzureKeyVault("KeyUri","ClientId", "ClientSecret")
                .SetApplicationName("Name");
0 голосов
/ 14 января 2019

Как сказано в статье , метод AzureDataProtectionBuilderExtensions.ProtectKeysWithAzureKeyVault применяется только к ядру asp.net 2.1 и 2.2 . Так что не будет работать в .net4.7.2 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...