Uporabljajte tok implicitnega dovoljenja OAuth 2.0 na svojem portalu

Ta funkcija omogoča stranki, da kliče zunanje API-je na strani odjemalca in jih zavaruje z uporabo implicitnega toka odobritve OAuth. Zagotavlja končna točka za pridobitev žetonov varnega dostopa. Ti žetoni bodo vsebovali informacije o identiteti uporabnika, ki jih bodo zunanji API-ji uporabljali za avtorizacijo po implicitnem toku odobritve OAuth 2.0. Podatki o identiteti prijavljenega uporabnika se na varen način posredujejo zunanjim klicem AJAX, kar razvijalcem pomaga pri posredovanju konteksta preverjanja pristnosti, uporabnikom pa pomaga tudi pri zaščiti svojih API-jev.

OAuth 2.0 podpira implicitni pretok odobritve žeton končne točke, ki jih odjemalec lahko pokliče, da dobi žeton ID.

Potrdila po meri

Potrdila po meri zagotavljajo še en nivo varnosti med uporabo končne točke OAuth 2.0. Uporabi Power Platform skrbniško središče za nalaganje potrdila po meri. Ko naložite potrdilo po meri, morate posodobiti nastavitve spletnega mesta, kot je prikazano spodaj

  1. Pojdi do nastavitve portala  in izberite Nastavitve spletnega mesta.

  2. Če želite ustvariti novo nastavitev, izberite Novo.

  3. Če želite urediti obstoječo nastavitev, izberite nastavitev spletnega mesta, ki je navedena v mreži.

  4. Določite vrednosti:

    • ime:  CustomCertificates/ImplicitGrantflow
    • Spletna stran: Povezano spletno mesto
    • vrednost: Kopirajte odtis naloženega potrdila po meri z zaslona Upravljanje potrdil po meri in ga prilepite sem. Vrednost bo pokazala, katero potrdilo bo uporabljeno za implicitni pretok donacij.
  5. Izberite Shrani in zapri. Splošni meni za nove nastavitve spletnega mesta z določenimi vrednostmi.

Podrobnosti končne točke žetona

Žeton lahko dobite tudi tako, da pošljete zahtevo za objavo na/token končna točka. URL za končno točko žetona je: <portal_url>/_services/auth/token. Končna točka žetona podpira naslednje parametre:

Parameter Obvezno? Opis
client_id Ne Niz, ki se posreduje pri opravljanju klica za končno točko pooblastila. Zagotoviti morate, da je ID odjemalca registriran v portalu. Sicer je prikazana napaka. ID odjemalca je dodan v zahtevke v žetonu kotaud inappid parameter in ga lahko stranke uporabljajo za preverjanje, ali je vrnjen žeton za njihovo aplikacijo.
Največja dolžina je 36 znakov. Podprti so samo alfanumerični znaki in vezaj.
redirect_uri Ne URL portala, kamor se lahko pošljejo in kjer se prejmejo odzivi za preverjanje pristnosti. Mora biti registrirano za določeni client_id, uporabljen v klicu, in mora biti točno iste vrednosti kot registrirano.
stanje Ne Vrednost, vključena v zahtevi, ki je tudi vrnjena v odzivu žetona. Lahko je niz poljubne vsebine, ki jo želite uporabiti. Običajno se uporabi naključno ustvarjena enolična vrednost, da se preprečijo napadi ponarejanja zahtev prek strani.
Največja dolžina je 20 znakov.
nonce Ne Vrednost niza, poslana odjemalcu, ki je vključena v nastali žeton ID kot zahtevek. Odjemalec lahko nato preveri to vrednost, da ublaži napade predvajanja žetonov. Največja dolžina je 20 znakov.
response_type No Ta parameter podpira samotoken kot vrednost, ki omogoča, da vaša aplikacija takoj prejme žeton za dostop od avtorizacijskega končna točka, ne da bi vložila drugo zahtevo avtorizacijskemu končna točka.

Opomba

Čeprav so parametri client_id, redirect_uri, state in nonce izbirni, je njihova uporaba priporočena, da se zagotovi varnost integracij.

Uspešen odziv

Končna točka žetona vrne stanje in expires_in kot glavi odziva ter žeton v telesu obrazca.

Odziv napake

Napaka v končni točki žetona je vrnjena kot dokument JSON z naslednjimi vrednostmi:

  • ID napake: enolični identifikator napake.
  • Sporočilo o napaki: specifično sporočilo o napaki, ki lahko pomaga identificirati temeljni vzrok napake pri preverjanju pristnosti.
  • ID korelacije: GUID, ki se uporablja za namene iskanja in odpravljanja napak. Če ste omogočili diagnostično pisanje dnevnika, je ID korelacije prisoten v strežniških dnevnikih napak.
  • Časovni žig: datum in ura ustvarjanja napake.

Sporočilo o napaki je prikazano v privzetem jeziku vpisanega uporabnika. Če uporabnik ni prijavljen, se prikaže stran za prijavo, na katero se lahko prijavi. Odziv z napako je na primer videti tako:

{"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" }

Podrobnosti končne točke pooblastila

Opomba

Avtorizacija končna točka je zastarela. Uporabite žeton končna točka POST zahtevo za pridobitev žetona ID.]

URL za končno točko pooblastila je: <portal_url>/_services/auth/authorize. Končna točka pooblastila podpira naslednje parametre:

Parameter Obvezno? Opis
client_id Da Niz, ki se posreduje pri opravljanju klica za končno točko pooblastila. Zagotoviti morate, da je ID odjemalca registriran v portalu. Sicer je prikazana napaka. ID odjemalca je dodan v zahtevke v žetonu kotaud inappid parameter in ga lahko stranke uporabljajo za preverjanje, ali je vrnjen žeton za njihovo aplikacijo.
Največja dolžina je 36 znakov. Podprti so samo alfanumerični znaki in vezaji.
redirect_uri Da URL portala, kamor se lahko pošljejo in kjer se prejmejo odzivi za preverjanje pristnosti. Mora biti registrirano za določeni client_id, uporabljen v klicu, in mora biti točno iste vrednosti kot registrirano.
stanje Ne Vrednost, vključena v zahtevi, ki je tudi vrnjena v odzivu žetona. Lahko je niz poljubne vsebine, ki jo želite uporabiti. Običajno se uporabi naključno ustvarjena enolična vrednost, da se preprečijo napadi ponarejanja zahtev prek strani.
Največja dolžina je 20 znakov.
nonce Ne Vrednost niza, poslana odjemalcu, ki je vključena v nastali žeton ID kot zahtevek. Odjemalec lahko nato preveri to vrednost, da ublaži napade predvajanja žetonov. Največja dolžina je 20 znakov.
response_type No Ta parameter podpira samotoken kot vrednost, ki omogoča, da vaša aplikacija takoj prejme žeton za dostop od avtorizacijskega končna točka, ne da bi vložila drugo zahtevo avtorizacijskemu končna točka.

Uspešen odziv

Končna točka pooblastila vrne naslednje vrednosti v URL-ju odziva kot fragment:

  • žeton: žeton je vrnjen kot spletni žeton JSON (JWT), digitalno podpisan z zasebnim ključem portala.
  • stanje: če je v zahtevi vključen parameter stanja, se mora ista vrednost prikazati v odzivu. Aplikacija mora preveriti, da sta vrednosti stanja v zahtevi in odzivu identični.
  • expires_in: časovno obdobje, ko je žeton za dostop veljaven (v sekundah).

Uspešen odziv je na primer videti tako:

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

Odziv napake

Napaka v končni točki pooblastila je vrnjena kot dokument JSON z naslednjimi vrednostmi:

  • ID napake: enolični identifikator napake.
  • Sporočilo o napaki: specifično sporočilo o napaki, ki lahko pomaga identificirati temeljni vzrok napake pri preverjanju pristnosti.
  • ID korelacije: GUID, ki se uporablja za namene iskanja in odpravljanja napak. Če ste omogočili diagnostično pisanje dnevnika, je ID korelacije prisoten v strežniških dnevnikih napak.
  • Časovni žig: datum in ura ustvarjanja napake.

Sporočilo o napaki je prikazano v privzetem jeziku vpisanega uporabnika. Če uporabnik ni prijavljen, se prikaže stran za prijavo, na kateri se lahko prijavi. Odziv z napako je na primer videti tako:

{"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" }

Potrjevanje žetona ID

Samo pridobitev žetona ID ne zadostuje za preverjanje pristnosti uporabnika; prav tako morate potrditi podpis žetona in preveriti trditve v žetonu glede na zahteve vaše aplikacije. Javna končna točka žetona zagotavlja javni ključ portala, ki se lahko uporabi za potrjevanje podpisa žetona, ki ga zagotovi portal. URL za javno končno točko žetona je: <portal_url>/_services/auth/publickey.

Vklop ali izklop toka implicitnega dovoljenja

Privzeto je tok implicitnega dovoljenja omogočen. Če želite izklopiti tok implicitnega dovoljenja, nastavite vrednost nastavitve mesta Connector/ImplicitGrantFlowEnabled na False.

Če ta nastavitev spletnega mesta ni na voljo na vašem portalu, jo morate ustvarite novo nastavitev spletnega mesta z ustrezno vrednostjo.

Konfiguriranje veljavnosti žetona

Privzeto je žeton veljaven 15 minut. Če želite spremeniti veljavnost žetona, nastavite vrednost nastavitve mesta ImplicitGrantFlow/TokenExpirationTime na zahtevano vrednost. Vrednost mora biti navedena v sekundah. Največja vrednost je lahko 1 uro in najmanjša vrednost mora biti 1 minuto. Če je navedena nepravilna vrednost (na primer alfanumerični znaki), se uporabi privzeta vrednost 15 minut. Če navedete vrednost, ki presega največjo vrednost ali ne dosega najmanjše vrednosti, se privzeto uporabi največja vrednost oziroma najmanjša vrednost.

Na primer, da nastavite veljavnost žetona na 30 minut, nastavite vrednost nastavitve mesta ImplicitGrantFlow/TokenExpirationTime na 1800. Da nastavite veljavnost žetona na 1 uro, nastavite vrednost nastavitve mesta ImplicitGrantFlow/TokenExpirationTime na 3600.

Registracija ID-ja odjemalca za tok implicitnega dovoljenja

ID odjemalca morate registrirati na portalu, za katerega je ta tok dovoljen. Za registracijo ID-ja odjemalca morate ustvariti naslednje nastavitve mesta:

Nastavitev mesta Value
ImplicitGrantFlow/RegisteredClientId Veljavne vrednosti ID-ja odjemalca, ki so dovoljene za ta portal. Vrednosti morajo biti ločene s podpičjem ter lahko vsebujejo alfanumerične znake in vezaje. Največja dolžina je 36 znakov.
ImplicitGrantFlow/{ClientId}/RedirectUri Veljavni URI-ji za preusmerjanje, ki so dovoljeni za določen ID odjemalca. Vrednosti morajo biti ločene s podpičjem. Podan URL mora biti za veljavno spletno stran portala.

Vzorčna koda

Če želite začeti uporabljati OAuth 2.0 Implicit Grant z API-ji portalov Power Apps, uporabite spodnjo vzorčno kodo.

Uporaba žetona OAuth za portal z zunanjim spletnim API-jem

Ta vzorec je projekt, ki temelji na ogrodju ASP.NET in se uporablja za preverjanje veljavnosti žetona ID-ja, ki so ga izdali portali Power Apps. Celoten vzorec najdete tukaj: Uporaba žetona OAuth za portal z zunanjim spletnim API-jem.

Vzorec končne točke žetona

Ta vzorec prikazuje, kako lahko s funkcijo getAuthenticationToken pridobite žeton ID-ja z uporabo končne točke žetona v portalih Power Apps. Vzorec najdete tukaj: Vzorec končne točke žetona.

Opomba

Ali nam lahko poveste, kateri je vaš prednostni jezik za dokumentacijo? Izpolnite kratko anketo. (upoštevajte, da je v angleščini)

Z anketo boste porabili približno sedem minut. Ne zbiramo nobenih osebnih podatkov (izjava o zasebnosti).