Bruge OAuth 2.0 implicit tilladelsesproces inden for din portal

Bemærk

Fra 12. oktober 2022 bliver Power Apps-portaler til Power Pages. Flere oplysninger: Microsoft Power Pages er nu generelt tilgængelig (blog)
Vi overfører og fletter snart dokumentationen til Power Apps-portalerne med Power Pages-dokumentationen.

Denne funktion gør det muligt for en kunde at foretage opkald på klientsiden til eksterne API'er og sikre dem ved hjælp af OAuth implicit tilladelsesproces. Det giver en slutpunkt til at få sikre adgangstokens. Disse tokens indeholder oplysninger om brugeridentitet der kan anvendes til eksterne API'er til godkendelse efter OAuth 2.0 implicit tilladelsesproces. Identitetsoplysningerne for en bruger, der er logget på, overføres på en sikker måde til de eksterne API'er, som hjælper udviklere med at overføre godkendelseskonteksten, og de hjælper også brugerne med at sikre deres API'er.

OAuth 2.0 implicit tilladelsesproces understøtter token-slutpunkter, som en klient kan kalde for at få et id-token.

Brugerdefinerede certifikater

Brug af standardcertifikatet til implicit tildelingsflow i OAuth 2.0 er udfaset. Du skal bruge et brugerdefineret certifikat, mens du bruger OAuth 2.0-slutpunktet. Brug Power Platform Administration til at overføre det brugerdefinerede certifikat. Når du har overført det brugerdefinerede certifikat, skal du opdatere webstedsindstillingerne som nedenfor:

  1. Gå til  Portalindstillinger , og vælg  Indstillinger for websted.

  2. Hvis du vil oprette en ny indstilling, skal du vælge  Ny.

  3. Hvis du vil redigere en eksisterende indstilling, skal du vælge den indstilling for webstedet, der vises i gitteret.

  4. Angiv værdier:

    • Navn: CustomCertificates/ImplicitGrantflow
    • Websted: Det tilknyttede websted
    • Værdi: Værdi: Kopiér aftrykket af det overførte brugerdefinerede certifikat fra skærmbilledet Administrer brugerdefineret certifikat, og sæt det ind her. Værdien angiver, hvilket certifikat der bruges til den implicitte tildelingsflow.
  5. Vælg  Gem og luk. Generel menu for Nye indstillinger for websted med angivne værdier.

Oplysninger om token-slutpunkt

Du kan også få et token ved at oprette en anmodning til /token-slutpunktet. URL-adressen for tokenslutpunkt er: <portal_url>/_services/auth/token. Tokenslutpunktet understøtter følgende parametre:

Parameter Påkrævet? Beskrivelse
client_id Nej En streng, der sendes, når du foretager et opkald til godkendelsesslutpunktet. Du skal sikre, at klient-id er registreret i portalen. Ellers vises der en fejlmeddelelse. Klient-id tilføjes i krav i token som aud og appid-parameter og kan bruges af klienter til at kontrollere, at det token, der er returneret, er til deres app.
Maksimumlængden er 36 tegn. Kun alfanumeriske tegn og bindestreg understøttes.
redirect_uri Nej URL-adressen til portalen, hvor godkendelsesresponser kan sendes og modtages. Den skal være registreret for det pågældende client_id, der bruges i opkaldet, og skal være præcist den samme værdi, som er registreret.
state Nej En værdi, der er inkluderet i anmodningen, som også returneres i tokensvaret. Den kan være en streng med indhold, du vil bruge. Normalt bruges en tilfældigt genereret, entydig værdi til at forhindre svindelangreb på tværs af websteder.
Maksimumlængden er 20 tegn.
nonce Nej En strengværdi, der er sendt af klienten, som indgår i det resulterende id-token som et krav. Klienten kan derefter kontrollere denne værdi for at undgå token-gentagelsesangreb. Maksimumlængden er 20 tegn.
response_type Nej Dette parameter understøtter kun token som en værdi, der tillader din app straks modtage et adgangstoken fra godkendelsesslutpunktet uden at oprette en anden anmodning til godkendelsesslutpunktet.

Bemærk

Selvom client_id, redirect_uri, state og nonce er valgfrie, anbefales det at bruge dem for at sikre dig, at dine integrationer er sikre.

Vellykket svar

Tokenslutpunktet returnerer state og expires_in som svarsidehoveder og token i formularteksten.

Fejlsvar

Fejlen i tokenslutpunkt returneres som et JSON-dokument med følgende værdier:

  • Fejl-id: Entydigt id for fejlen.
  • Fejlmeddelelse: En bestemt fejlmeddelelse, der kan hjælpe dig med at identificere den grundlæggende årsag til en godkendelsesfejl.
  • Korrelations-id: Et GUID, der bruges i forbindelse med fejlfinding. Hvis du har aktiveret logføring af diagnosticering, findes korrelations-id i serverfejllogfiler.
  • Tidsstempel: Dato og klokkeslæt for generering af fejlen.

Fejlmeddelelsen vises på standardsproget for den bruger, der er logget på. Hvis brugeren ikke er logget på, vises en logonside for brugeren. F.eks. ser et fejlsvar ud som følger:

{"ErrorId": "PortalSTS0001", "ErrorMessage": "Client Id provided in the request is not a valid client Id registered for this portal. Please check the parameter and try again.", "Timestamp": "4/5/2019 10:02:11 AM", "CorrelationId": "7464eb01-71ab-44bc-93a1-f221479be847" }

Detaljer om godkendelsesslutpunkt

Bemærk

Autorisere slutpunkter udfases. Brug Token-slutpunkt POST-anmodning for at få et id-token.]

URL-adressen for godkendelsesslutpunkt er: <portal_url>/_services/auth/authorize. Godkendelsesslutpunktet understøtter følgende parametre:

Parameter Påkrævet? Beskrivelse
client_id Ja En streng, der sendes, når du foretager et opkald til godkendelsesslutpunktet. Du skal sikre, at klient-id er registreret i portalen. Ellers vises der en fejlmeddelelse. Klient-id tilføjes i krav i token som aud og appid-parameter og kan bruges af klienter til at kontrollere, at det token, der er returneret, er til deres app.
Maksimumlængden er 36 tegn. Kun alfanumeriske tegn og bindestreger understøttes.
redirect_uri Ja URL-adressen til portalen, hvor godkendelsesresponser kan sendes og modtages. Den skal være registreret for det pågældende client_id, der bruges i opkaldet, og skal være præcist den samme værdi, som er registreret.
state Nej En værdi, der er inkluderet i anmodningen, som også returneres i tokensvaret. Den kan være en streng med indhold, du vil bruge. Normalt bruges en tilfældigt genereret, entydig værdi til at forhindre svindelangreb på tværs af websteder.
Maksimumlængden er 20 tegn.
nonce Nej En strengværdi, der er sendt af klienten, som indgår i det resulterende id-token som et krav. Klienten kan derefter kontrollere denne værdi for at undgå token-gentagelsesangreb. Maksimumlængden er 20 tegn.
response_type Nej Dette parameter understøtter kun token som en værdi, der tillader din app straks modtage et adgangstoken fra godkendelsesslutpunktet uden at oprette en anden anmodning til godkendelsesslutpunktet.

Vellykket svar

Godkendelsesslutpunktet returnerer følgende værdier i svar-URL-adressen som et fragment:

  • token: Token returneres som et JSON Web-Token (JWT), der er digitalt signeret af portalens private nøgle.
  • state: Hvis en state-parameter er medtaget i anmodningen, skal den samme værdi vises i svaret. Appen skal kontrollere, at state-værdierne i anmodningen og svaret er identiske.
  • expires_in: Hvor lang tid dette adgangstoken gælder (i sekunder).

F.eks. ser et vellykket svar ud som følger:

GET https://aadb2cplayground.azurewebsites.net/#token=eyJ0eXAiOiJKV1QiLCJhbGciOI1NisIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q&expires_in=3599&state=arbitrary_data_you_sent_earlier

Fejlsvar

Fejlen i godkendelsesslutpunkt returneres som et JSON-dokument med følgende værdier:

  • Fejl-id: Entydigt id for fejlen.
  • Fejlmeddelelse: En bestemt fejlmeddelelse, der kan hjælpe dig med at identificere den grundlæggende årsag til en godkendelsesfejl.
  • Korrelations-id: Et GUID, der bruges i forbindelse med fejlfinding. Hvis du har aktiveret logføring af diagnosticering, findes korrelations-id i serverfejllogfiler.
  • Tidsstempel: Dato og klokkeslæt for generering af fejlen.

Fejlmeddelelsen vises på standardsproget for den bruger, der er logget på. Hvis brugeren ikke er logget på, vises logonsiden for brugeren. F.eks. ser et fejlsvar ud som følger:

{"ErrorId": "PortalSTS0001", "ErrorMessage": "Client Id provided in the request is not a valid client Id registered for this portal. Please check the parameter and try again.", "Timestamp": "4/5/2019 10:02:11 AM", "CorrelationId": "7464eb01-71ab-44bc-93a1-f221479be847" }

Validere id-token

En id-token er ikke tilstrækkelig til at godkende brugeren. Du skal også validere et tokens signatur og kontrollere krav i et token, der er baseret på din apps krav. Offentligt tokenslutpunkt leverer portalens offentlige nøgle, som kan bruges til at validere signaturen for et token, som portalen leverer. URL-adressen for offentligt tokenslutpunkt er: <portal_url>/_services/auth/publickey.

Slå implicit tilladelsesproces til og fra

Implicit tilladelsesproces er som standard aktiveret. Hvis du vil deaktivere implicit tilladelsesproces, kan du angive værdien for indstillingen af Connector/ImplicitGrantFlowEnabled-websted til False.

Hvis webstedsindstillingen ikke er tilgængelig i din portal, skal du oprette en ny indstilling for webstedet med den korrekte værdi.

Konfigurere gyldighed af token

Som standard er tokenet gyldigt i 15 minutter. Hvis du vil ændre gyldighedsperioden for et token, skal du angive værdien af ImplicitGrantFlow/TokenExpirationTime-webstedsindstillingen til den værdi, der er påkrævet. Værdien skal angives i sekunder. Den maksimale værdi er 1 time, og den mindste værdi skal være 1 minut. Hvis der er angivet en forkert værdi (f.eks. alfanumeriske tegn), bruges standardværdien på 15 minutter. Hvis du angiver en værdi, der er mere end maksimumværdien eller mindre end minimumværdien, bruges de største og mindste værdier som standard.

Hvis du f.eks. vil angive token-gyldighedsperioden til 30 minutter, skal du angive værdien indstillingen af ImplicitGrantFlow/TokenExpirationTime for webstedet som 1800. Hvis du vil angive token-gyldighedsperioden til 1 time, skal du angive værdien indstillingen af ImplicitGrantFlow/TokenExpirationTime for webstedet som 3600.

Registrere klient-id for implicit tilladelsesproces

Du skal registrere klient-id på portalen, hvor denne proces er tilladt. Hvis du vil registrere et klient-id, skal du oprette følgende webstedsindstillinger:

Indstilling for websted Value
ImplicitGrantFlow/RegisteredClientId De gyldige klient id-værdier, der er tilladt for denne portal. Værdierne skal være adskilt af semikolon og kan indeholde alfanumeriske tegn og bindestreger. Maksimumlængden er 36 tegn.
ImplicitGrantFlow/{ClientId}/RedirectUri De gyldige omdirigerings-URI'er, der er tilladt for et bestemt klient-id. Værdierne skal adskilles med et semikolon. URL-adressen skal være en gyldig webside på portalen.

Eksempelkode

Du kan bruge følgende eksempelkode til at komme i gang med at bruge OAuth 2.0 implicit tilladelsesproces med Power Apps-portal-API'er.

Brug Portal Oauth-token med en ekstern Web-API

Dette eksempel er et ASP.NET-baseret projekt og bruges til at validere det id-token, der er udstedt af Power Apps-portaler. Det komplette eksempel kan findes her: Brug Portal OAuth-token med en ekstern Web-API.

Eksempel på slutpunkt for token

Dette eksempel viser, hvordan du kan bruge funktionen getAuthenticationToken til at hente et id-token ved hjælp af token-slutpunktet i Power Apps-portaler. Eksemplet kan findes her: Eksempel på slutpunkt for token.

Bemærk

Kan du fortælle os om dine sprogpræferencer for dokumentation? Tag en kort undersøgelse. (bemærk, at denne undersøgelse er på engelsk)

Undersøgelsen tager ca. syv minutter. Der indsamles ingen personlige data (erklæring om beskyttelse af personlige oplysninger).