JavaScript-API för autentisering
Fabric-klientdelen erbjuder ett JavaScript-API för Fabric-arbetsbelastningar för att hämta en token för deras program i Microsoft Entra-ID. Den här artikeln beskriver det här API:et.
API
acquireAccessToken(params: AcquireAccessTokenParams): Promise<AccessToken>;
export interface AcquireAccessTokenParams {
additionalScopesToConsent?: string[];
claimsForConditionalAccessPolicy?: string;
promptFullConsent?: boolean;
}
API:et returnerar ett AccessToken-objekt som innehåller själva token och ett utgångsdatum för token.
Om du vill anropa API:et i klientdelsexemplet skapar du ett exempelobjekt och rullar sedan nedåt och väljer Navigera till autentiseringssidan. Därifrån kan du välja Hämta åtkomsttoken för att ta emot en token tillbaka.
Samtycker
Om du vill förstå varför medgivanden krävs går du till Användar- och administratörsmedgivande i Microsoft Entra-ID.
Kommentar
Medgivanden krävs för att CRUD/Jobb ska fungera och för att hämta token mellan klienter.
Hur fungerar medgivanden i Infrastrukturarbetsbelastningar?
För att bevilja ett medgivande för ett visst program skapar Fabric FE en MSAL-instans som konfigurerats med arbetsbelastningens program-ID och ber om en token för de angivna omfången (additionalScopesToConsent – se AcquireAccessTokenParams).
När du ber om en token med arbetsbelastningsprogrammet för ett specifikt omfång visar Microsoft Entra-ID ett popup-medgivande om det saknas och omdirigerar sedan popup-fönstret till den omdirigerings-URI som konfigurerats i programmet.
Vanligtvis finns omdirigerings-URI:n i samma domän som sidan som begärde token, så att sidan kan komma åt popup-fönstret och stänga den.
I vårt fall finns den inte i samma domän eftersom Fabric begär token och omdirigerings-URI:n för arbetsbelastningen inte finns i infrastrukturresursdomänen. Så när medgivandedialogrutan öppnas måste den stängas manuellt efter omdirigeringen. Vi använder inte koden som returneras i redirectUri, därför omsluter vi den automatiskt (när Microsoft Entra-ID omdirigerar popup-fönstret till omdirigerings-URI:n stängs den helt enkelt).
Du kan se koden/konfigurationen av omdirigerings-URI:n i filen index.ts .
Här är ett exempel på ett popup-fönster för medgivande för appen "min arbetsbelastningsapp" och dess beroenden (lagring och Power BI) som vi konfigurerade när vi gick över autentiseringskonfigurationen:
Ett annat sätt att bevilja medgivanden i hemklientorganisationen (valfritt)
Om du vill få ett medgivande i programmets hemklientorganisation kan du be klientadministratören att bevilja hela klientorganisationen ett medgivande med hjälp av en URL i följande format (infoga ditt eget klient-ID och klient-ID):
https://login.microsoftonline.com/{tenantId}/adminconsent?client_id={clientId}
AcquireAccessTokenParams
När du anropar JS-API:et acquireAccessToken kan vi ange tre parametrar:
- additionalScopesToConsent: Andra omfång att be om ett medgivande för, till exempel rekognoseringsscenarier.
- claimsForConditionalAccessPolicy: Anspråk som returneras från Microsoft Entra-ID när OBO-flöden misslyckas, till exempel OBO kräver multifaktorautentisering.
- promptFullConsent: Uppmanar till ett fullständigt medgivandefönster för de statiska beroendena för arbetsbelastningsprogrammet.
additionalScopesToConsent
Om klientdelen för arbetsbelastningen ber om att en token ska användas för anrop till arbetsbelastningens serverdel bör den här parametern vara null. Serverdelen för arbetsbelastningen kan misslyckas med att utföra OBO på den token som tas emot på grund av ett fel om att medgivande saknas. I så fall måste arbetsbelastningsserverdelen sprida felet till arbetsbelastningsklientdelen och ange den här parametern.
claimsForConditionalAccessPolicy
Den här parametern används vid OBO-fel i arbetsbelastningen BE på grund av en princip för villkorlig åtkomst som har konfigurerats för klientorganisationen.
OBO-fel på grund av principer för villkorlig åtkomst returnerar en sträng som kallas "anspråk". Den här strängen ska skickas till arbetsbelastningen FE där FE ska be om en token och skicka anspråket som claimsForConditionalAccessPolicy. Mer information finns i Hantera multifaktorautentisering (MFA), villkorlig åtkomst och inkrementellt medgivande.
Se AuthenticationService AddBearerClaimToResponse-användning i BE-exemplet för att se exempel på svar när OBO-åtgärder misslyckas på grund av att medgivande saknas eller principer för villkorlig åtkomst saknas.
Mer information om den här additionalScopesToConsent och claimsForConditionalAccessPolicy och se exempel på användning finns i Riktlinjer för autentisering av arbetsbelastning och djupdykning.
promptFullConsent
När det skickas som sant visas ett fullständigt medgivande för de statiska beroendena för användaren oavsett om användaren har gett ett medgivande tidigare eller inte. Ett exempel på användning för den här parametern är att lägga till en knapp i användargränssnittet där användaren kan använda den för att bevilja arbetsbelastningen fullständigt medgivande.