Мне удалось реализовать свой вход в неавтономный проект, используя эту документацию: . Для автономной версии я использовал этот образец. Я почти не пытаюсь правильно настроить приложение для подключения к моему 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
Я подписался на этот репозиторий 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. Я хочу использовать свой собственный пользовательский поток.
Для входа в систему 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
}
}
});
}
Вам следует использовать полномочия: «login.microsoftonline.com/common », а не те, которыми вы поделились выше. Проверьте код GitHub один раз.