Ошибка при перенаправлении на конечную точку сервера авторизации OpenID connect

Я получаю сообщение об ошибке всякий раз, когда мое клиентское приложение отправляет запрос на мой сервер авторизации, который использует соединение OpenID (см. снимок экрана ниже).

Я настроил сервер авторизации наhttps://localhost:5001/. Сервер авторизации работает по назначению, когда я тестировал клиентское приложение Angular, которое нашел в Интернете. Но когда я попробовал это с моим приложением .net core mvc, я получаю вышеупомянутую ошибку. Я настроил свое приложение mvc для подключения OpenId следующим образом:

      builder.Services.AddAuthentication(options =>
{
    options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie()
.AddOpenIdConnect(options =>
{
    options.ClientId = "spa_client";
    options.ClaimsIssuer = "https://localhost:5001/";
    options.Authority = "https://localhost:5001/";
    options.ResponseType = OpenIdConnectResponseType.Code;
    options.SignedOutRedirectUri = "https://localhost:7077/";
    //options.GetClaimsFromUserInfoEndpoint = true;
    options.RequireHttpsMetadata = false;
});
builder.Services.AddAuthorization();

Он перенаправляется на конечную точку сервера авторизации.https://localhost:5001. Тем не менее, я всегда получаю экран ошибки. Рабочая конфигурация Angular для подключения OpenID:

      const redirUri = isDevMode()
      ? 'http://localhost:4200'
      : window.location.origin;

    const devModeIssuer = 'https://localhost:5001/';

    this.oauthService.configure({
      clientId: 'spa_client',
      issuer: isDevMode()
        ? devModeIssuer
        : window.location.origin + '/',
      redirectUri: redirUri,
      responseType: 'code',
      scope: 'openid roles email server_scope api_scope',
      requireHttps: false
    });

    this.oauthService.events.subscribe(async (e: OAuthEvent) => {
      if (e.type === 'token_received' || e.type === 'token_refreshed') {
        this.user.loadProfile();
      }

      if (e.type === 'discovery_document_loaded' && this.oauthService.hasValidAccessToken()) {
        this.user.loadProfile();
      }
    });

    this.oauthService.loadDiscoveryDocumentAndLogin({
      onTokenReceived: () => {
        this.user.loadProfile();
      }
    });

Где я ошибаюсь?

0 ответов

Другие вопросы по тегам