#.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