IDX10500: Ошибка проверки подписи. Невозможно разрешить SecurityKeyIdentifier: 'SecurityKeyIdentifier - PullRequest
1 голос
/ 10 ноября 2019

В приложении ASP.NET MVC у меня есть две разные Active Directory, для первой Azure Active Directory (где я владелец и могу вносить изменения) я могу войти в систему и получить токен, но для второй Active Directory, предоставленнойклиент с тем же кодом C # Я получаю это исключение:

IDX10500: Ошибка проверки подписи. Невозможно разрешить SecurityKeyIdentifier: 'SecurityKeyIdentifier
(IsReadOnly = False, Count = 1,
Clause [0] = System.IdentityModel.Tokens.NamedKeySecurityKeyIdentifierClause)

Мой код:

public void ConfigureAuth(IAppBuilder app)
{
    app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

    app.UseCookieAuthentication(new CookieAuthenticationOptions() { ExpireTimeSpan = TimeSpan.FromDays(365) });

    app.UseOpenIdConnectAuthentication(
            new OpenIdConnectAuthenticationOptions
            {
                ClientId = clientId,
                Authority = authority,
                PostLogoutRedirectUri = postLogoutRedirectUri,
                RedirectUri = postLogoutRedirectUri,
                // TokenValidationParameters allows you to control the users who are allowed to sign in
                // to your application. In this demo we only allow users associated with the specified tenant. 
                // If ValidateIssuer is set to false, anybody with a personal or work Microsoft account can 
                // sign in.
                TokenValidationParameters = new System.IdentityModel.Tokens.TokenValidationParameters()
                {
                    ValidateIssuer = true,
                    ValidIssuer = tenant
                },

                // OpenIdConnect event handlers/callbacks.
                Notifications = new OpenIdConnectAuthenticationNotifications
                {
                    AuthorizationCodeReceived = OnAuthorizationCodeReceived,
                    AuthenticationFailed = OnAuthenticationFailed
                }

            });
}

Заранее спасибо, если вы поможете мне найти проблему и предложить решение.

1 Ответ

0 голосов
/ 12 ноября 2019

Я пытался использовать два разных клиента Azure AD, используя один и тот же код. Они оба работают как положено.

Вот шаги.

  1. Зарегистрируйте приложение -> добавьте веб-платформу с помощью перенаправления uri-> проверьте токены доступа и идентификационные токены

enter image description here

2.Получить clientId и tenantId из приложения

enter image description here

3. Вставьте значения в файл web.config

enter image description here

Поэтому вам нужно попросить клиента проверить приложение, которое он зарегистрировал.

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