Функции Azure, защищенные с помощью Azure AD B2C, возвращаются несанкционированно при использовании домена клиента B2C - PullRequest
1 голос
/ 14 марта 2019

Учитывая функцию Azure, защищенную через AAD B2C с https://login.microsoftonline.com/tfp/MyTenantName.onmicrosoft.com/signinsingunp в качестве URL-адреса эмитента, я могу успешно аутентифицировать пользователя b2c через приложение msal.js, где, как если бы я пытался обновить URL-адрес эмитента для моего URL-адреса входа в домен b2ctenant(из-за этого советуйте перенаправить URL-адреса на b2clogin.com ) и обновите полномочия в приложении msal.js для соответствия домену (myapp.b2clogin.com/tfp/MyTenantName.onmicrosoft.com/signinsingunp), я получаю401 для такой же лазурной функции, любые советы будут оценены.

Ниже приведены подробные сведения о настройке,

  • Azure AD B2C Арендатор
    • Доменное имя: MyTenantName.onmicrosoft.com
  • AzureФункции
    • Аутентификация / Авторизация
      • Аутентификация службы приложений: Вкл.
      • Действие, которое необходимо выполнить, если не аутентифицировано: Войти в Azure AD
      • Поставщики аутентификации:
        • Azure AAD:
        • Режим управления: расширенный
        • идентификатор клиента: B2C-ApplicationA-ApplicationID
        • URL-адрес эмитента: login.microsoftonline.com / ......./opendid......
  • Статический веб-сайт

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 21 мая 2019

Я наконец-то нашел решение этой проблемы ...

Это заняло много времени, но это связано с проблемой , возникшей на GitHub

По сути, я изменил полномочия при настройке UserAgentApplication для использования нового домена b2clogin.com, о котором кто-то упоминал.Хотя это не сработало сразу, я получил ту же ошибку, о которой вы упоминали в комментариях, поэтому мне пришлось установить validateAuthority: false в моей конфигурации.

Ниже приведен пример того, как я установилмой вверх.Мой ClientID такой же в Azure, как и в MSAL.js

var msalConfig = {
      auth: {
        clientId: "xxxx",
        authority: "https://xxxx.b2clogin.com/tfp/xxxx.onmicrosoft.com/B2C_xxxx", 
        webApi: 'https://xxxx.azurewebsites.net',
        b2cScopes: this.appConfig.b2cScopes,
        validateAuthority: false
      },
      cache: {
        cacheLocation: "localStorage",
        storeAuthStateInCookie: true
      }
    };
this.clientApplication = new Msal.UserAgentApplication(msalConfig);

Надеюсь, это поможет!

0 голосов
/ 14 марта 2019

Все, что вам нужно сделать, это изменить URL-адрес эмитента (вы написали как URL-адрес эмитента, но это должен быть хорошо известный URL-адрес конфигурации), чтобы он соответствовал домену b2clogin.com.

Сверху я вижу вашу конфигурацию OpenIDURL-адрес в функциях Azure:

login.microsoftonline.com /......./ opendid ......

Но он должен совпадать с.известная конфигурация статического сайта вашего домена b2clogin.Это должно быть как

https://tenantname.b2clogin.com/tfp/tenantname.onmicrosoft.com/B2C_1_Policy/v2.0/.well-known/openid-configuration

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