Регистрация приложения в Azure AD - пример node.js паспорт-azure-ad

Я пытаюсь настроить аутентификацию для запросов POST на моем сервере Node.js, размещенном в @ Azure.

Я использую этот пример:

passport.use(new OIDCStrategy({
    callbackURL: config.creds.returnURL,
    realm: config.creds.realm,
    clientID: config.creds.clientID,
    clientSecret: config.creds.clientSecret,
    oidcIssuer: config.creds.issuer,
    identityMetadata: 'https://login.microsoftonline.com/TenantGuidOrTheWordCOMMON/v2.0/.well-known/openid-configuration',
    skipUserProfile: config.creds.skipUserProfile,
    responseType: config.creds.responseType,
    responseMode: config.creds.responseMode,
    (tenant: "Guid from AzureAD-Endpoints-Button"),
    (validateIssuer: false/true)
      }, (...)

Хотя мой код перенаправляет меня на страницу "https://login.microsoftonline.com" (что приятно), после ввода адреса электронной почты меня сразу перенаправляет куда-нибудь.

Там я получаю ошибку в browserUrl: «клиент не существует» ... и он говорит, что я должен создать приложение @ "https://apps.dev.microsoft.com".

ПОЧЕМУ? У меня есть AppService «MyService», Azure AD в рамках той же подписки и в Azure AD «Регистрация приложения» для «MyApp».

  • Что теперь представляет собой этот жестокий сайт apps.dev.microsoft? Почему не отображается мое зарегистрированное «MyApp» и наоборот?
  • Что мне нужно ввести в «oidcIssuer»? MyApp.ApplicationId? (Apps.dev.microsoft.com) -Application.ApplicationId? AzureAD-ClientId? AzureAD-IssuerUrl?
  • Тот же вопрос к клиентуСекрет
  • В чем разница между использованием identityMetadata с идентификатором вместо «common» + validateIssuer: true против использования identityMetadata с «common», validateIssuer: false + tenant: «myTenant (Guid?)»
  • Когда я использую «ExpressSettings» в разделе «Аутентификация / авторизация» -> AzureAD, почему я не могу найти приложение, определенное мной в Azure AD?
  • Нужно ли мне активировать Graph API (я пока ничего об этом не знаю)
  • Есть ли хорошие альтернативы для защиты моей конечной точки express.post с помощью аутентификации в Azure AD? (АДАЛ вроде бы для ресурсов)

У меня нет всех этих настроек, свойств и порталов Microsoft. Я просто поражен всем этим ... (не говоря уже о том, что есть еще "СТАРЫЙ" портал)

В ближайшие дни я попробую этот шаг Azure- Пошаговое руководство, возможно, мне это как-то поможет ...


person IntegerWolf    schedule 23.09.2016    source источник


Ответы (2)


В этом примере, который вы используете, вам не нужно изменять параметры в объекте OIDCStrategy. Вместо этого вам нужно настроить параметры AAD в client_config_*.js. файлах. Как описано в документе на https://github.com/AzureAD/passport-azure-ad/tree/master/examples/login-oidc.

И, кстати, мы управляем нашими приложениями AAD на классическом портале.

person Gary Liu    schedule 26.09.2016

Как мой ответ на " Кто-нибудь успешно использовал Azure AD для аутентификации пользователей в веб-приложении Node.js? "

Вместо этого я настраиваю аутентификацию следующим образом (без кода) на новом портале Azure:

  • разместить мой сервер Node.js
  • добавить AD в подписку
  • Зарегистрируйте новое приложение в AD
  • Добавьте "https://YourNodeJS.azurewebsites.net/.auth/login/aad/callback "как URL-адрес ответа
  • В AppServices выберите свой сервер Node.js
  • В настройках зайдите в Authentication / Authorization.
  • Активировать AAD
  • Использовать расширенный режим AAD
  • Введите ClientID (GUID) приложения, зарегистрированного выше в AD.
  • В качестве URL-адреса издателя введите эту ссылку: https://sts.windows.net/YourADGuid/ (вы можете увидеть GUID в «Конечных точках», если вы посмотрите на свое приложение, зарегистрированное в AD выше)
person IntegerWolf    schedule 30.09.2016