JavaScript-API voor verificatie
De Fabric-front-end biedt een JavaScript-API voor Fabric-workloads om een token te verkrijgen voor hun toepassing in Microsoft Entra ID. In dit artikel wordt deze API beschreven.
API
acquireAccessToken(params: AcquireAccessTokenParams): Promise<AccessToken>;
export interface AcquireAccessTokenParams {
additionalScopesToConsent?: string[];
claimsForConditionalAccessPolicy?: string;
promptFullConsent?: boolean;
}
De API retourneert een AccessToken-object dat het token zelf bevat en een vervaldatum voor het token.
Als u de API in het front-endvoorbeeld wilt aanroepen, maakt u een voorbeelditem en schuift u omlaag en selecteert u Navigeren naar de pagina Verificatie. Hier kunt u toegangstoken ophalen selecteren om een token terug te ontvangen.
Toestemmingen
Als u wilt weten waarom toestemmingen vereist zijn, gaat u naar toestemming van gebruikers en beheerders in Microsoft Entra ID.
Notitie
Toestemmingen zijn vereist om CRUD/Taken te laten werken en tokens te verkrijgen tussen tenants.
Hoe werken toestemmingen in Fabric-workloads?
Als u een toestemming wilt verlenen voor een specifieke toepassing, maakt de Fabric FE een MSAL-exemplaar dat is geconfigureerd met de toepassings-id van de workload en vraagt om een token voor de opgegeven bereiken (additionalScopesToConsent - zie AcquireAccessTokenParams).
Wanneer u wordt gevraagd om een token met de workloadtoepassing voor een specifiek bereik, geeft Microsoft Entra-id een pop-uptoestemming weer als deze ontbreekt en wordt het pop-upvenster omgeleid naar de omleidings-URI die in de toepassing is geconfigureerd.
Normaal gesproken bevindt de omleidings-URI zich in hetzelfde domein als de pagina die het token heeft aangevraagd, zodat de pagina toegang heeft tot het pop-upvenster en deze kan sluiten.
In ons geval bevindt het zich niet in hetzelfde domein, omdat Fabric het token aanvraagt en de omleidings-URI van de workload zich niet in het fabric-domein bevindt. Dus wanneer het toestemmingsdialoogvenster wordt geopend, moet het handmatig worden gesloten na omleiding. We gebruiken de code die wordt geretourneerd in de redirectUri niet, dus sluiten we deze gewoon automatisch (wanneer Microsoft Entra ID de pop-up omleidt naar de omleidings-URI, wordt deze gewoon gesloten).
U kunt de code/configuratie van de omleidings-URI in het index.ts-bestand zien.
Hier volgt een voorbeeld van een pop-up voor toestemming voor onze app 'mijn workload-app' en de bijbehorende afhankelijkheden (opslag en Power BI) die we hebben geconfigureerd bij het instellen van verificatie:
Een andere manier om toestemming te verlenen in de thuistenant (optioneel)
Als u een toestemming wilt krijgen in de basistenant van de toepassing, kunt u uw tenantbeheerder vragen om een toestemming te verlenen voor de hele tenant met behulp van een URL in de volgende indeling (voeg uw eigen tenant-id en de client-id in):
https://login.microsoftonline.com/{tenantId}/adminconsent?client_id={clientId}
AcquireAccessTokenParams
Bij het aanroepen van de acquireAccessToken JS-API kunnen we drie parameters opgeven:
- additionalScopesToConsent: Andere bereiken om toestemming te vragen voor bijvoorbeeld reconsent-scenario's.
- claimsForConditionalAccessPolicy: Claims geretourneerd van Microsoft Entra ID wanneer OBO stromen mislukken, bijvoorbeeld OBO vereist meervoudige verificatie.
- promptFullConsent: vraagt een volledig toestemmingsvenster van de statische afhankelijkheden van de toepassing voor workloads.
additionalScopesToConsent
Als de front-end van de workload vraagt om een token dat moet worden gebruikt voor aanroepen naar de back-end van de workload, moet deze parameter null zijn. De back-end van de werkbelasting kan OBO niet uitvoeren op het token dat is ontvangen vanwege een fout waarbij toestemming ontbreekt. In dat geval moet de back-end van de workload de fout doorgeven aan de front-end van de werkbelasting en deze parameter opgeven.
claimsForConditionalAccessPolicy
Deze parameter wordt gebruikt bij OBO-fouten in de workload BE vanwege een bepaald beleid voor voorwaardelijke toegang dat is geconfigureerd op de tenant.
OBO-fouten vanwege beleid voor voorwaardelijke toegang retourneren een tekenreeks met de naam 'claims'. Deze tekenreeks moet worden verzonden naar de workload FE waar de FE om een token moet vragen en de claim als claimsForConditionalAccessPolicy moet doorgeven. Zie Multi-Factor Authentication (MFA), voorwaardelijke toegang en incrementele toestemming verwerken voor meer informatie.
Raadpleeg het gebruik van AuthenticationService AddBearerClaimToResponse in het BE-voorbeeld om voorbeelden te zien van antwoorden wanneer OBO-bewerkingen mislukken vanwege ontbrekende toestemming of beleid voor voorwaardelijke toegang.
Zie richtlijnen voor workloadverificatie en uitgebreide informatie over deze additionalScopesToConsent en claimsForConditionalAccessPolicy en voorbeelden van gebruik.
promptFullConsent
Wanneer deze wordt doorgegeven als waar, wordt een volledige toestemming van de statische afhankelijkheden weergegeven voor de gebruiker, ongeacht of deze eerder of niet toestemming heeft gegeven. Een voorbeeld van het gebruik voor deze parameter is het toevoegen van een knop aan de UX waar de gebruiker deze kan gebruiken om volledige toestemming te verlenen aan de workload.