Исключение Missingmethod после успешного входа в AzureAD

#.net #azure #asp.net-core

#.net #azure #asp.net-core

Вопрос:

Я пытаюсь реализовать аутентификацию AzureAD, но я продолжаю получать после успешного входа в https://localhost:5001/signin-oidc

Исключение MISSINGMETHOD: метод не найден: ‘Microsoft.IdentityModel.Токены.Ключ безопасности Microsoft.IdentityModel.JsonWebTokens.JwtTokenUtilities.Найдите совпадение (System.Строка, система.Строка, Microsoft.IdentityModel.Токены.Ключ безопасности, система.Коллекции.Общий.IEnumerable`1IdentityModel.Токены.SecurityKey>)’.

Внутри класса Startup

  services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
                .AddAzureAD(options => Configuration.Bind("AzureAd", options));

            services.Configure<OpenIdConnectOptions>(AzureADDefaults.OpenIdScheme, options =>
            {
                options.Authority = options.Authority   "/v2.0";
                options.TokenValidationParameters.ValidateIssuer = false;
            });

            services.AddAuthorization(options =>
            {
                options.AddPolicy("MyAdminGroup", policyBuilder => policyBuilder.RequireClaim("groups", "1204e97b-75fc-498c-a86f-3fc4d36ef4d4"));
            });
  

и appsettings.json также заполняется правильными значениями с портала Azure

 "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "Domain": "mydomain.onmicrosoft.com",
    "TenantId": "a4ca2fb4-abad-1ac4-8997-74997a9afb11",
    "ClientId": "b180cc8d-fa37-44b9-af9c-1fa0c7859aad",
    "CallbackPath": "/signin-oidc"
  }
  

На портале я изменил URL-адреса перенаправления, чтобы они соответствовали портам моего приложения .net Core на
https://localhost:5001

Комментарии:

1. Какая у вас версия MSAL nuget? nuget.org/packages/Microsoft . Идентификация. Клиент Также используете ли вы какой-либо другой Microsoft. Идентификация * nugets? Если да, версия? Я хочу посмотреть, есть ли какая-либо проблема с совместимостью версий, поскольку ошибка, безусловно, связана с этим.

2. @KrishnenduGhosh-MSFT Я не вижу, чтобы у меня был какой-либо Microsoft. Идентификация. Ссылка на клиента во всем проекте. Помогает ли какая-либо из этих ссылок? Майкрософт. AspNetCore. Аутентификация. AzureAD.UI; Microsoft. AspNetCore. Аутентификация. Откройте IDCONNECT; Microsoft. AspNetCore. Аутентификация;

3. Пытаюсь понять, какую текущую библиотеку аутентификации вы используете для своего asp.net основное приложение. В идеале вам должен понадобиться только один родительский nuget Microsoft. AspNetCore. Аутентификация. AzureAD.UI (который автоматически установит зависимые nugets с правильными версиями).

4. Или вы также можете посмотреть на Micrsoft. Идентификация. Web (текущий nuget в режиме предварительного просмотра), что значительно упрощает интеграцию AAD … github.com/AzureAD/microsoft-identity-web/blob/master/README.md