Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Important
Od 1. května 2025 už nebude Azure AD B2C k dispozici k nákupu pro nové zákazníky. Další informace najdete v I Azure AD B2C stále k dispozici k nákupu? v našich nejčastějších dotazech.
Knihovna Microsoft Authentication Library pro JavaScript (MSAL.js) umožňuje vývojářům JavaScriptu ověřovat uživatele pomocí sociálních a místních identit pomocí Azure Active Directory B2C (Azure AD B2C).
Pomocí Azure AD B2C jako služby pro správu identit můžete přizpůsobit a řídit, jak se vaši zákazníci registrují, přihlašují a spravují své profily, když používají vaše aplikace.
Azure AD B2C také umožňuje branding a přizpůsobení uživatelského rozhraní, které vaše aplikace zobrazí během procesu ověřování.
Podporované typy a scénáře aplikací
MSAL.js umožňuje jednostránkovým aplikacím přihlašovat uživatele do Azure AD B2C použitím toku autorizačního kódu s PKCE. Službu MSAL.js a Azure AD B2C:
- Uživatelé se můžou ověřovat pomocí sociálních a místních identit.
- Uživatelé můžou mít oprávnění pro přístup k prostředkům chráněným službou Azure AD B2C (ale ne k prostředkům chráněným microsoftem Entra).
- Uživatelé nemohou získat tokeny pro rozhraní MICROSOFT API (například ROZHRANÍ MS Graph API) pomocí delegovaných oprávnění.
- Uživatelé s oprávněními správce mohou získat tokeny pro rozhraní MICROSOFT API (například MS Graph API) pomocí delegovaných oprávnění.
Další informace najdete v tématu: Práce s Azure AD B2C
Další kroky
Postupujte podle kurzu, jak:
- Přihlášení uživatelů pomocí Azure AD B2C v jednostránkové aplikaci
- Volání webového rozhraní API chráněného službou Azure AD B2C
⚠✔ Než začnete tady, ujistěte se, že rozumíte tomu, jak inicializovat objekt aplikace a pracovat s prostředky a obory. Doporučujeme také obecné znalosti Azure AD B2C. Další informace najdete v dokumentaci B2C .
MSAL.js podporuje ověřování pomocí sociálních identit (Microsoft, Google, Facebook atd.), enterprise (ADFS, Salesforce atd.) a místních identit (uložených v adresáři Azure AD B2C) pomocí Azure AD B2C (zkratka B2C). Při vývoji aplikací B2C s MSAL.jsje potřeba mít na paměti několik důležitých podrobností.
Rychlá fakta
S B2C:
- Uživatelé se můžou ověřit pomocí svých sociálních identit.
- Uživatelé můžou mít oprávnění pro přístup k chráněným prostředkům B2C (ale ne k Microsoft Entra chráněným prostředkům).
- Uživatelé nemohou získat tokeny pro rozhraní API Microsoft (např. MS Graph API) pomocí delegovaných oprávnění.
- Aplikace můžou získat tokeny pro rozhraní API Microsoft pomocí oprávnění aplikace (scénáře správy uživatelů).
Konfigurace aplikace B2C
Následuje příklad konfigurace aplikace B2C:
const msalConfig = {
auth: {
clientId: "<your-clientID>",
authority: "https://<your-tenant>.b2clogin.com/<your-tenant>.onmicrosoft.com/<your-policyID>",
knownAuthorities: ["<your-tenant>.b2clogin.com"] // array of URIs that are known to be valid
}
}
const apiConfig = {
b2cScopes: ["https://<your-tenant>.onmicrosoft.com/<your-api>/<your-scope>"],
webApiUri: "<your-api-uri>" // e.g. "https://fabrikamb2chello.azurewebsites.net/hello"
};
const loginRequest = {
scopes: [ "openid", "offline_access" ]
}
const tokenRequest = {
scopes: apiConfig.b2cScopes // e.g. "https://<your-tenant>.onmicrosoft.com/<your-api>/<your-scope>"
}
Microsoft Entra vs. koncové body B2C
Jedním z hlavních rozdílů mezi tenanty Microsoft Entra ID a Azure AD B2C jsou jejich koncové body.
Tenant služby Microsoft Entra ID:
- Obsahuje pouze koncové body Microsoft Entra (
login.microsoftonline.com/*). - Zveřejňuje jeden koncový bod tokenu (
login.microsoftonline.com/.../token). - koncové body Microsoft Entra umožňují získat tokeny pro:
- Vaše aplikace chráněné Microsoft Entra ID.
- Microsoft rozhraní API, jako je MS Graph API.
Tenant B2C :
- Obsahuje koncové body služeb Microsoft Entra ID a Azure AD B2C (
login.microsoftonline.com/*a<your-domain>.b2clogin.com/*). - Zveřejňuje samostatné koncové body tokenu pro každý (
login.microsoftonline.com/.../token,<your-domain>.b2clogin.com/.../token). - Koncové body B2C umožňují získat tokeny pro:
- Vaše aplikace chráněné pomocí B2C.
B2C a delegovaná oprávnění
Delegovaná oprávnění určují přístup založený na oboru pomocí interaktivní autorizace od přihlášeného uživatele. Tato oprávnění se za běhu předkládají prostředku (např. vašemu webovému rozhraní API, rozhraní MS Graph API atd.) jako scp claimy v přístupovém tokenu klienta.
Autentizaci B2C uživatele nelze použít k autorizaci přístupu k aplikacím chráněným službou Microsoft Entra ani k rozhraním API společnosti Microsoft (která jsou také chráněna službou Microsoft Entra ID). Proto při použití MSAL.js nemůžete použít koncový bod <your-tenant>.b2clogin.com/.../token k získání tokenu pro MS Graph API.
Oprávnění OpenID Connect
Výjimka z výše uvedeného pravidla pochází ze speciální sady oborů označovaných jako oprávnění OpenID Connect (OIDC), která zahrnují openid a profile. Dalším speciálním oprávněním je offline_access, které aplikaci poskytuje přístup k prostředkům jménem uživatele po delší dobu (pomocí obnovovacího tokenu). MSAL.js ve výchozím nastavení poskytne openid, profile a offline_access během požadavků loginPopup() a loginRedirect().
Ověřování Microsoft Entra vůči tenantovi B2C
Když použijete login.microsoftonline.com koncový bod bez zadání parametrů policyID pro tenanta B2C, dosáhnete Microsoft Entra koncových bodů tenanta B2C. Pouze v tomto případě můžete získat tokeny pro prostředky MS Graph API pomocí kontextu přihlášeného uživatele.
B2C a oprávnění aplikací
Oprávnění aplikace určují přístup na základě role pomocí přihlašovacích údajů nebo identity klientské aplikace. Tato oprávnění se prostředku zobrazí za běhu jako roles deklarace identity v přístupovém tokenu klienta.
Scénáře správy uživatelů
Endpointy login.microsoftonline.com lze stále používat pro jakoukoli práci na pozadí, neinteraktivní správu uživatelů a atributů, i když jsou specifické pro B2C. Při vytváření registrace aplikace pro aplikaci, která bude používat přihlašovací údaje klienta ke správě prostředků B2C pomocí MS Graph API, musíte vybrat rozsahy Graph API, pro které vaše aplikace pro správu potřebuje získat oprávnění (další informace najdete v dokumentaci). Co je potřeba mít na paměti:
- K získání oprávnění aplikace budete potřebovat ověření aplikace (pomocí udělení přihlašovacích údajů klienta).
- Pokud chcete získat delegovaná oprávnění, budete muset provést ověření uživatele pomocí účtu správce.
- Aplikace pro správu se obvykle registrují jako cílová skupina typu 1 nebo typ 2 (viz níže).
Další témata
B2C a typy účtů /cílových skupin
Během registrace aplikace se zobrazí výzva k výběru cílové skupiny. Vybraný typ cílové skupiny určuje, pro jaký typ ověřování cílíte.
| Typ cílové skupiny | Description | Typ ověření |
|---|---|---|
| #1 | Účty pouze v adresáři této organizace (jeden tenant) | Ověřovací systém Microsoft Entra |
| #2 | Účty v jakémkoli adresáři organizace (víceklientské). | Ověřovací systém Microsoft Entra |
| #3 | Účty v libovolném adresáři organizace nebo libovolném zprostředkovateli identity | Ověřování B2C |
Získání přístupového tokenu pro vlastní rozhraní API
Existují 2 způsoby získání přístupového tokenu pro vlastní rozhraní API:
- Vyžádejte si ID klienta jako obor:
msal.loginRedirect({
scopes: ["client_Id"]
});
Další informace najdete tady.
- Vystavte ve své registraci aplikace vlastní vlastní rozsah a požádejte o tento rozsah:
msal.loginRedirect({
scopes: ["api://clientId/customScope.Read"]
});
Prostředí B2C a prostředí odhlášení
Odhlášení zruší uživatelův stav jednotného přihlášení v Azure AD B2C, ale nemusí uživatele odhlásit z relace u jeho poskytovatele sociální identity. Pokud uživatel během následného přihlášení vybere stejného zprostředkovatele identity, může se znovu ověřit bez zadání přihlašovacích údajů. Předpokladem je, že pokud se uživatel chce z aplikace odhlásit, nemusí nutně znamenat, že se chce odhlásit ze svého sociálního účtu (např. Facebook).
B2C a proces pozvání
MSAL.js bude zpracovávat pouze tokeny, které původně požadoval. Pokud tok vyžaduje, abyste uživateli poslali odkaz, který může použít k registraci, budete muset zajistit, že odkaz odkazuje na vaši aplikaci, nikoli přímo na službu B2C. Příklad toku pozvání je následující:
- Uživatel klikne na odkaz na vaši aplikaci.
- Aplikace volá
msal.loginRedirecta zahrnujeid_token_hintdoextraQueryParameters
msal.loginRedirect({
scopes: ["example_scope"],
extraQueryParameters: {'id_token_hint': your_id_token_hint}
});
- Aplikace se přesměruje do služby B2C, kde uživatel zadá přihlašovací údaje nebo se zaregistruje.
- Služba B2C přesměruje zpět do vaší aplikace, která volá
await msal.handleRedirectPromise(), aby zpracovala odpověď a uložila tokeny.
Použití B2C a iframe
Azure AD B2C nabízí vložené přihlašovací prostředí, které umožňuje vykreslovat vlastní přihlašovací uživatelské rozhraní v prvku iframe. Vzhledem k tomu, že msAL ve výchozím nastavení brání přesměrování v rámci iframe, budete muset nastavit možnost konfigurace allowRedirectInIframe na hodnotu true , aby bylo možné tuto funkci využít. Další aspekty použití elementů iframe najdete v tématu: Použití knihovny MSAL v aplikacích iframed