Как реализовать вход в Azure AD B2C в автономной версии Angular v17

Мне удалось реализовать свой вход в неавтономный проект, используя эту документацию: . Для автономной версии я использовал этот образец. Я почти не пытаюсь правильно настроить приложение для подключения к моему B2C-тенанту.

Я заменил environmet.dev.ts примерно на это:

export const environment = {
    production: false,
    msalConfig: {
        auth: {
            clientId: 'b5c2e510-4a17-4feb-b219-e55aa5b74144',
            authority: 'https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/b2c_1_susi_reset_v2'
        }
    },
    apiConfig: {
        scopes: ['user.read'],
        uri: 'https://graph.microsoft.com/v1.0/me'
    }
};

Когда я пытаюсь войти в систему, я получаю эту ошибку: ClientAuthError: endpoints_resolution_error: Endpoints cannot be resolved

Вам следует использовать полномочия: «login.microsoftonline.com/common », а не те, которыми вы поделились выше. Проверьте код GitHub один раз.

Dasari Kamali 17.04.2024 14:45
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
1
297
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я подписался на этот репозиторий GitHub и использовал приведенный ниже URL-адрес. Я успешно вошел в клиент B2C.

authority: 'https://login.microsoftonline.com/common'

Код:

среда.dev.ts:

export const environment = {
    production: true,
    msalConfig: {
        auth: {
            clientId: '<client_ID>',
            authority: 'https://login.microsoftonline.com/common'
        }
    },
    apiConfig: {
        scopes: ['user.read'],
        uri: 'https://graph.microsoft.com/v1.0/me'
    }
};

Я добавил выходной URL-адрес ниже в Аутентификацию приложения Azure B2C как одностраничное приложение, как показано ниже.

http://localhost:4200/

Выход :

Следующий автономный проект Angular выполнен успешно, как показано ниже.

Вывод браузера:

Как показано в приведенных ниже шагах, я успешно вошел в систему и вышел из клиента B2C.

Да, вы правы. Это работает очень хорошо. Но он позволяет войти только через учетную запись Microsoft. Я хочу использовать свой собственный пользовательский поток.

Tim 18.04.2024 09:04
Ответ принят как подходящий

Для входа в систему B2C обновите файл Environment.dev.ts примерно так:

export const environment = {
    production: false,
    msalConfig: {
        auth: {
            clientId: 'b5c2e510-4a17-4feb-b219-e55aa5b74144',
            authority: 'https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/b2c_1_susi_reset_v2',
            authorityDomain: "your-tenant-name.b2clogin.com"
        }
    },
    apiConfig: {
        scopes: ['user.read'],
        uri: 'https://graph.microsoft.com/v1.0/me'
    }
};

Затем в вашем app.config.ts обновите MSALInstanceFactory() следующим образом:

export function MSALInstanceFactory(): IPublicClientApplication {
  return new PublicClientApplication({
    auth: {
      clientId: environment.msalConfig.auth.clientId,
      authority: environment.msalConfig.auth.authority,
      knownAuthorities: [environment.msalConfig.auth.authorityDomain],
      redirectUri: '/',
      postLogoutRedirectUri: '/'
    },
    cache: {
      cacheLocation: BrowserCacheLocation.LocalStorage
    },
    system: {
      allowNativeBroker: false, // Disables WAM Broker
      loggerOptions: {
        loggerCallback,
        logLevel: LogLevel.Info,
        piiLoggingEnabled: false
      }
    }
  });
}

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

Azure AD AP, можем ли мы создать собственный идентификатор пользователя для доступа. Разрешить доступ к внутреннему API, связанному с приложением Azure AD?
Как использовать субъект-службу для загрузки пользовательской политики в b2c
Создайте массовые операции в Azure AD B2C для ввода локальной учетной записи
Можем ли мы использовать удостоверение SPN для создания токена MSAL? в C# не хочу использовать токен
Почему моя пользовательская политика AD B2C возвращает инвалид_грант после добавления шага оркестрации, вызывающего функцию Azure?
Интеграция AAD B2C с Entra ID
Ошибка при входе в Azure AD B2C. URI перенаправления «localhost:3001», указанный в запросе, не зарегистрирован
Ошибка входа в Azure AD B2C с ошибкой поставщика удостоверений Microsoft: для погашения кода авторизации между источниками требуется ключ подтверждения для обмена кодами
Активация роли Azure PIM в среде B2B
Как добиться msal azure ad b2c в реакции нативной