Правильный способ настроить Azure B2C? - PullRequest
0 голосов
/ 18 сентября 2018

Итак, я пытался обернуть голову множеством разных вещей, пытаясь настроить B2C Azure с моим проектом.Мой вопрос: что именно мне нужно для настройки B2C?

Мой проект использует Angular 5 и .Net Core.

Я читал об ADAL, MSAL, MicrosoftGraph API, Azure AD Graph API, пользовательские политики B2C ...

Правильно ли я понимаю, что MSAL - это то, что я должен использовать для авторизации использования Graph API?А потом я использую Microsoft Graph API для входа в систему, создания учетных записей и т. Д.?Судя по моим исследованиям, ADAL постепенно сокращается. Azure AD на самом деле отличается от Azure B2C.

Не знаю, ребята, помогите мне.

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

У меня есть два Angular 6 приложения, работающих в рабочей среде, которые используют Azure AD B2C .

Когда я начинал с первого проекта, это был Angular 2 (я также выполняю операции для этих проектов, поэтому они актуальны), я чувствовал, что MSAL не достаточно далеко, и я не смогнайдите пакет NPM для этого.Поэтому я решил использовать компонент с открытым исходным кодом angular-oauth2-oidc от Manfred Steyer, и я не жалею об этом.Компонент сертифицирован OpenID Connect и прост в использовании (за исключением Azure AD B2C ?).

Чтобы использовать компонент с Azure AD B2C, необходимо предоставить конфигурацию с некоторыми значениями, которые можно взять из документа обнаружения (например, https://fabrikamb2c.b2clogin.com/fabrikamb2c.onmicrosoft.com/v2.0/.well-known/openid-configuration?p=b2c_1_sign_in).. Так выглядит моя конфигурация:

export const aadB2cNoDiscoveryConfig: AuthConfig = {
  'clientId': '<GUID>',
  'redirectUri': window.location.origin,
  'loginUrl': 'https://login.microsoftonline.com/<TENANT>.onmicrosoft.com/oauth2/v2.0/authorize?p=b2c_1_signin',
  'logoutUrl': 'https://login.microsoftonline.com/<TENANT>.onmicrosoft.com/oauth2/v2.0/logout?p=b2c_1_signin',
  'scope': 'openid https://<TENANT>.onmicrosoft.com/<TENANT>.api/user_impersonation',
  'oidc': true,
  'issuer': 'https://login.microsoftonline.com/<GUID>/v2.0/',
  'tokenEndpoint': 'https://login.microsoftonline.com/<TENANT>.onmicrosoft.com/oauth2/v2.0/token?p=b2c_1_signin',
  'responseType': 'id_token token',
  'clearHashAfterLogin': true,
  'disableAtHashCheck': true,
  'showDebugInformation': true,
  'strictDiscoveryDocumentValidation': false,
  'jwks': {
    'keys': [
      {
        kid: "X5eX....",
        nbf: 14....,
        use: "sig",
        kty: "RSA",
        e: "AQAB",
        n: "tV......"
      }]
  }
}

Для входа в систему я вызываю что-то подобное в конструкторе моего app.component:

this.oauthService.configure(aadB2cNoDiscoveryConfig);
this.oauthService.tokenValidationHandler = new JwksValidationHandler();
this.oauthService.tryLogin()

Если мне нужно реализовать другое веб-приложение с Azure AD B2C, я быпопробуйте снова использовать MSAL, но без колебаний вернитесь к angular-oauth2-oidc.


Примечание: Если вы используете промежуточное ПО .NET Core для обслуживания Angular SPA, выможно просто добавить промежуточное программное обеспечение OpenID Connect. Это хорошая отправная точка для этого.

0 голосов
/ 18 сентября 2018

Этот образец в GitHub, кажется, содержит необходимые шаги, задокументированные в файле readme: https://github.com/Azure-Samples/active-directory-b2c-javascript-angular2.4-spa.

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

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