Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Vanaf 1 mei 2025 is Azure AD B2C niet meer beschikbaar voor nieuwe klanten. Meer informatie vindt u in onze veelgestelde vragen.
In dit artikel wordt beschreven hoe u de verificatie-ervaring van Azure Active Directory B2C (Azure AD B2C) voor uw Angular-toepassing met één pagina (SPA) kunt aanpassen en verbeteren.
Vereiste voorwaarden
Vertrouwd raken met het artikel Verificatie configureren in een Angular SPA of verificatie inschakelen in uw eigen Angular SPA.
Gedrag bij aanmelden en afmelden
U kunt uw toepassing met één pagina configureren om gebruikers met MSAL.js op twee manieren aan te melden:
-
Pop-upvenster: De verificatie vindt plaats in een pop-upvenster en de status van de toepassing blijft behouden. Gebruik deze methode als u niet wilt dat gebruikers tijdens de verificatie van uw toepassingspagina weggaan. Er zijn echter bekende problemen met pop-upvensters in Internet Explorer.
- Om in te loggen met pop-upvensters, gebruikt u in de
src/app/app.component.tsklasse deloginPopupmethode. - Stel in de
src/app/app.module.tsklasse hetinteractionTypekenmerk in opInteractionType.Popup. - Om u af te melden met pop-upvensters, gebruikt u in de
src/app/app.component.tsklasse delogoutPopupmethode. U kunt ook configurerenlogoutPopupom het hoofdvenster om te leiden naar een andere pagina, zoals de startpagina of aanmeldingspagina, nadat het afmelden is voltooid door als onderdeel van de aanvraag door te gevenmainWindowRedirectUri.
- Om in te loggen met pop-upvensters, gebruikt u in de
-
Omleiding: de gebruiker wordt omgeleid naar Azure AD B2C om de verificatiestroom te voltooien. Gebruik deze methode als gebruikers browserbeperkingen of beleidsregels hebben waarbij pop-upvensters zijn uitgeschakeld.
- Meld u aan door gebruik te maken van de doorverwijzing in de
src/app/app.component.tsklasse, met deloginRedirectmethode. - Stel in de
src/app/app.module.tsklasse hetinteractionTypekenmerk in opInteractionType.Redirect. - Om u af te melden met omleiding, gebruikt u de
src/app/app.component.tsmethode in delogoutRedirectklasse. Configureer de URI waarnaar deze moet worden omgeleid na een afmelding door de instelling in te stellenpostLogoutRedirectUri. U moet deze URI toevoegen als een omleidings-URI in uw toepassingsregistratie.
- Meld u aan door gebruik te maken van de doorverwijzing in de
In het volgende voorbeeld ziet u hoe u zich kunt aanmelden en afmelden:
//src/app/app.component.ts
login() {
if (this.msalGuardConfig.authRequest){
this.authService.loginPopup({...this.msalGuardConfig.authRequest} as PopupRequest);
} else {
this.authService.loginPopup();
}
}
logout() {
this.authService.logoutPopup({
mainWindowRedirectUri: '/',
});
}
De MSAL Angular-bibliotheek heeft drie aanmeldingsstromen: interactieve aanmelding (waarbij een gebruiker de aanmeldingsknop selecteert), MSAL Guard en MSAL Interceptor. De MSAL Guard- en MSAL Interceptor-configuraties worden van kracht wanneer een gebruiker probeert toegang te krijgen tot een beveiligde resource zonder een geldig toegangstoken. In dergelijke gevallen dwingt de MSAL-bibliotheek de gebruiker zich aan te melden.
In de volgende voorbeelden ziet u hoe u MSAL Guard en MSAL Interceptor configureert voor aanmelding met een pop-upvenster of omleiding:
// src/app/app.module.ts
MsalModule.forRoot(new PublicClientApplication(msalConfig),
{
interactionType: InteractionType.Popup,
authRequest: {
scopes: protectedResources.todoListApi.scopes,
}
},
{
interactionType: InteractionType.Popup,
protectedResourceMap: new Map([
[protectedResources.todoListApi.endpoint, protectedResources.todoListApi.scopes]
])
})
De aanmeldingsnaam vooraf invullen
Tijdens een aanmeldingsgebruikerstraject kan uw app zich richten op een specifieke gebruiker. Wanneer een app is gericht op een gebruiker, kan deze in de autorisatieaanvraag de login_hint queryparameter opgeven met de aanmeldingsnaam van de gebruiker. Azure AD B2C vult automatisch de aanmeldingsnaam in en de gebruiker moet alleen het wachtwoord opgeven.
Ga als volgt te werk om de inlognaam vooraf in te vullen:
- Als u een aangepast beleid gebruikt, voegt u de vereiste invoerclaim toe, zoals beschreven in Directe aanmelding instellen.
- Maak of gebruik een bestaand
PopupRequestofRedirectRequestMSAL-configuratieobject. - Stel het
loginHintkenmerk in met de bijbehorende aanmeldingshint.
De volgende codefragmenten laten zien hoe u de parameter voor de aanmeldingshint doorgeeft. Ze gebruiken bob@contoso.com als kenmerkwaarde.
// src/app/app.component.ts
let authRequestConfig: PopupRequest;
if (this.msalGuardConfig.authRequest) {
authRequestConfig = { ...this.msalGuardConfig.authRequest } as PopupRequest
}
authRequestConfig.loginHint = "bob@contoso.com"
this.authService.loginPopup(authRequestConfig);
// src/app/app.module.ts
MsalModule.forRoot(new PublicClientApplication(msalConfig),
{
interactionType: InteractionType.Popup,
authRequest: {
scopes: protectedResources.todoListApi.scopes,
loginHint: "bob@contoso.com"
}
},
Een id-provider vooraf selecteren
Als u het aanmeldingstraject voor uw toepassing hebt geconfigureerd voor het opnemen van sociale accounts, zoals Facebook, LinkedIn of Google, kunt u de domain_hint parameter opgeven. Deze queryparameter biedt een hint voor Azure AD B2C over de id-provider voor sociale netwerken die moet worden gebruikt voor aanmelding. Als de toepassing bijvoorbeeld opgeeft domain_hint=facebook.com, gaat de aanmeldingsstroom rechtstreeks naar de aanmeldingspagina van Facebook.
Ga als volgt te werk om gebruikers om te leiden naar een externe id-provider:
- Controleer de domeinnaam van uw externe id-provider. Zie Aanmelding omleiden naar een sociale providervoor meer informatie.
- Maak of gebruik een bestaand
PopupRequestofRedirectRequestMSAL-configuratieobject. - Stel het
domainHintkenmerk in met de bijbehorende domeinhint.
De volgende codefragmenten laten zien hoe u de parameter domeinhint doorgeeft. Ze gebruiken facebook.com als kenmerkwaarde.
// src/app/app.component.ts
let authRequestConfig: PopupRequest;
if (this.msalGuardConfig.authRequest) {
authRequestConfig = { ...this.msalGuardConfig.authRequest } as PopupRequest
}
authRequestConfig.domainHint = "facebook.com";
this.authService.loginPopup(authRequestConfig);
// src/app/app.module.ts
MsalModule.forRoot(new PublicClientApplication(msalConfig),
{
interactionType: InteractionType.Popup,
authRequest: {
scopes: protectedResources.todoListApi.scopes,
domainHint: "facebook.com"
}
},
De gebruikersinterfacetaal opgeven
Met taalaanpassing in Azure AD B2C kan uw gebruikersstroom voldoen aan verschillende talen die aansluiten bij de behoeften van uw klanten. Zie Taalaanpassing voor meer informatie.
Ga als volgt te werk om de voorkeurstaal in te stellen:
- Taalinstellingen configureren
- Maak of gebruik een bestaand
PopupRequestofRedirectRequestMSAL-configuratieobject metextraQueryParameterskenmerken. - Voeg de
ui_localesparameter met de bijbehorende taalcode toe aan deextraQueryParameterskenmerken.
De volgende codefragmenten laten zien hoe u de parameter domeinhint doorgeeft. Ze gebruiken es-es als kenmerkwaarde.
// src/app/app.component.ts
let authRequestConfig: PopupRequest;
if (this.msalGuardConfig.authRequest) {
authRequestConfig = { ...this.msalGuardConfig.authRequest } as PopupRequest
}
authRequestConfig.extraQueryParameters = {"ui_locales" : "es-es"};
this.authService.loginPopup(authRequestConfig);
// src/app/app.module.ts
MsalModule.forRoot(new PublicClientApplication(msalConfig),
{
interactionType: InteractionType.Popup,
authRequest: {
scopes: protectedResources.todoListApi.scopes,
extraQueryParameters: {"ui_locales" : "es-es"}
}
},
Een aangepaste queryreeksparameter doorgeven
Met aangepast beleid kunt u een aangepaste querytekenreeksparameter doorgeven. Een goed gebruiksvoorbeeld is wanneer u de pagina-inhoud dynamisch wilt wijzigen.
Ga als volgt te werk om een aangepaste queryreeksparameter door te geven:
- Configureer het element ContentDefinitionParameters .
- Maak of gebruik een bestaand
PopupRequestofRedirectRequestMSAL-configuratieobject metextraQueryParameterskenmerken. - Voeg de aangepaste querytekenreeksparameter toe, zoals
campaignId. Stel de parameterwaarde in.
De volgende codefragmenten laten zien hoe u een aangepaste queryreeksparameter doorgeeft. Ze gebruiken germany-promotion als kenmerkwaarde.
// src/app/app.component.ts
let authRequestConfig: PopupRequest;
if (this.msalGuardConfig.authRequest) {
authRequestConfig = { ...this.msalGuardConfig.authRequest } as PopupRequest
}
authRequestConfig.extraQueryParameters = {"campaignId": 'germany-promotion'}
this.authService.loginPopup(authRequestConfig);
// src/app/app.module.ts
MsalModule.forRoot(new PublicClientApplication(msalConfig),
{
interactionType: InteractionType.Popup,
authRequest: {
scopes: protectedResources.todoListApi.scopes,
extraQueryParameters: {"ui_locales" : "es-es"}
}
},
Een id-tokenhint doorgeven
Een relying party-toepassing kan een binnenkomend JSON-webtoken (JWT) verzenden als onderdeel van de OAuth2-autorisatieaanvraag. Het binnenkomende token is een hint over de gebruiker of de autorisatieaanvraag. Azure AD B2C valideert het token en extraheert vervolgens de claim.
Ga als volgt te werk om een id-tokenhint op te nemen in de verificatieaanvraag:
- Definieer in uw aangepaste beleid het technische profiel van een id-tokenhint.
- Maak of gebruik een bestaand
PopupRequestofRedirectRequestMSAL-configuratieobject metextraQueryParameterskenmerken. - Voeg de
id_token_hintparameter toe met de bijbehorende variabele waarin het id-token wordt opgeslagen.
De volgende codefragmenten laten zien hoe u een hint voor een id-token definieert:
// src/app/app.component.ts
let authRequestConfig: PopupRequest;
if (this.msalGuardConfig.authRequest) {
authRequestConfig = { ...this.msalGuardConfig.authRequest } as PopupRequest
}
authRequestConfig.extraQueryParameters = {"id_token_hint": idToken};
this.authService.loginPopup(authRequestConfig);
// src/app/app.module.ts
MsalModule.forRoot(new PublicClientApplication(msalConfig),
{
interactionType: InteractionType.Popup,
authRequest: {
scopes: protectedResources.todoListApi.scopes,
extraQueryParameters: {"id_token_hint" : idToken}
}
},
Gebruik een eigen domein
Met behulp van een aangepast domein kunt u de verificatie-URL volledig brandmerken. Vanuit het oogpunt van een gebruiker blijven gebruikers in uw domein tijdens het verificatieproces, in plaats van om te worden omgeleid naar de Azure AD B2C-b2clogin.com domeinnaam.
Als u alle verwijzingen naar 'b2c' in de URL wilt verwijderen, kunt u ook de naam van uw B2C-tenant, contoso.onmicrosoft.com, in de verificatieaanvraag-URL vervangen door de GUID van uw tenant-id. U kunt bijvoorbeeld overschakelen naar https://fabrikamb2c.b2clogin.com/contoso.onmicrosoft.com/https://account.contosobank.co.uk/<tenant ID GUID>/.
Als u uw aangepaste domein wilt gebruiken voor uw tenant-id in de verificatie-URL, volgt u de richtlijnen in Aangepaste domeinen inschakelen. Open het src/app/auth-config.ts MSAL-configuratieobject en wijzig authorities en knownAuthorities om uw aangepaste domeinnaam en tenant-ID te gebruiken.
In het volgende JavaScript wordt het MSAL-configuratieobject weergegeven vóór de wijziging:
const msalConfig = {
auth: {
...
authority: "https://fabrikamb2c.b2clogin.com/fabrikamb2c.onmicrosoft.com/B2C_1_susi",
knownAuthorities: ["fabrikamb2c.b2clogin.com"],
...
},
...
}
In het volgende JavaScript wordt het MSAL-configuratieobject weergegeven na de wijziging:
const msalConfig = {
auth: {
...
authority: "https://custom.domain.com/00000000-0000-0000-0000-000000000000/B2C_1_susi",
knownAuthorities: ["custom.domain.com"],
...
},
...
}
Logboekregistratie configureren
De MSAL-bibliotheek genereert logboekberichten die u kunnen helpen bij het vaststellen van problemen. De app kan logboekregistratie configureren. De app kan u ook aangepaste controle geven over het detailniveau en of persoonlijke en organisatorische gegevens worden geregistreerd.
U wordt aangeraden een callback voor MSAL-logboekregistratie te maken en gebruikers een manier te bieden om logboeken in te dienen wanneer ze verificatieproblemen ondervinden. MSAL biedt deze niveaus van logboekregistratiedetails:
- Fout: er is iets misgegaan en er is een fout gegenereerd. Dit niveau wordt gebruikt voor foutopsporing en het identificeren van problemen.
- Waarschuwing: er is niet noodzakelijkerwijs een fout of fout opgetreden, maar de informatie is bedoeld voor diagnostische gegevens en het opsporen van problemen.
- Info: MSAL registreert gebeurtenissen die zijn bedoeld voor informatieve doeleinden en niet noodzakelijkerwijs voor foutopsporing.
- Uitgebreid: dit is het standaardniveau. MSAL registreert de volledige details van het gedrag van de bibliotheek.
De MSAL-logboekregistratie legt standaard geen persoonlijke of organisatorische gegevens vast. De bibliotheek biedt u de mogelijkheid om logboekregistratie van persoonlijke en organisatorische gegevens in te schakelen als u besluit dit te doen.
Als u Angular-logboekregistratie wilt configureren, configureert u in src/app/auth-config.ts de volgende sleutels:
-
loggerCallbackis de callback-functie voor logboekregistratie. -
logLevelhiermee kunt u het niveau van logboekregistratie opgeven. Mogelijke waarden:Error,Warning, ,InfoenVerbose. -
piiLoggingEnabledmaakt de invoer van persoonsgegevens mogelijk. Mogelijke waarden:trueoffalse.
Het volgende codefragment laat zien hoe u MSAL-logboekregistratie configureert:
export const msalConfig: Configuration = {
...
system: {
loggerOptions: {
loggerCallback: (logLevel, message, containsPii) => {
console.log(message);
},
logLevel: LogLevel.Verbose,
piiLoggingEnabled: false
}
}
...
}
Volgende stappen
- Meer informatie: MSAL.js configuratieopties.