Идентификатор ресурса, не предоставленный для Angular SPA с использованием Azure AD - PullRequest
0 голосов
/ 06 ноября 2019

Я использую измененный шаблон Visual Studio из https://github.com/damienbod/dotnet-template-angular для создания Angular SPA с использованием API Asp.Net с входом в Azure AD. Это использует https://github.com/damienbod/angular-auth-oidc-client на угловой стороне, чтобы общаться с Azure.

Я получаю вход в Micosoft, как и ожидалось, но после ввода моих данных для входа в систему пользователь возвращается с ошибкой:

AADSTS500013 - Идентификатор ресурса не предоставлен

Я видел этоошибка в некоторых других вопросах здесь, но с другими настройками приложения, которые не используют ту же самую клиентуру Angular OIDC. Я не уверен, что это проблема, или я что-то упустил при регистрации приложения Azure?

ОБНОВЛЕНИЕ Мое приложение Azure зарегистрировано с использованием регистрации приложения старой версии, поэтому выглядит примерно так:

"oidc": {
    "issuer": "https://login.microsoftonline.com/[....]/",
    "client_id": "[...]",
    "scope": "openid",
    "resource": "https://graph.microsoft.com/"
}

1 Ответ

1 голос
/ 06 ноября 2019

Зарегистрировали ли вы свое приложение в Azure AD, используемое для аутентификации пользователей? Там вы увидите идентификатор приложения, который необходимо указать для приложения ASP.NET в файле appsettings.json в узле clientId:

  "oidc": {
    "issuer": "https://login.microsoftonline.com/common/v2.0/",
    "client_id": "d4d8dc5a-3e3b-4cf8-9ba5-eee9e27764a1",
    "scope": "openid profile email",
    "resource": "https://graph.windows.net",
    "prompt": "consent"
  }

Также убедитесь, что вы включаете свойКонфигурация OIDC клиента Azure AD в приложении Angular, как указано в комментариях app.module.ts функции loadConfig библиотеки dotnet-angular-azure-ad-oidc.

export function loadConfig(oidcConfigService: OidcConfigService) {
  console.log('APP_INITIALIZER STARTING');
  // https://login.microsoftonline.com/damienbod.onmicrosoft.com/.well-known/openid-configuration
  // jwt keys: https://login.microsoftonline.com/common/discovery/keys
  // Azure AD does not support CORS, so you need to download the OIDC configuration, and use these from the application.
  // The jwt keys needs to be configured in the well-known-openid-configuration.json
  return () => oidcConfigService.load(`${window.location.origin}/api/config/configuration`);
  //return () => oidcConfigService.load_using_custom_stsServer('https://localhost:44347/well-known-openid-configuration.json');
}

Эта конфигурация доступна на https://login.microsoftonline.com/{your-tenant-name}.onmicrosoft.com/.well-known/openid-configuration.

...