Uporabljajte tok implicitnega dovoljenja OAuth 2.0 na svojem portalu

Opomba

Od 12. oktobra 2022 najprej je portal Power Apps Power Pages. Več informacij: Microsoft Power Pages je zdaj splošno dostopen (spletni dnevnik)
Dokumentacijo portalov Power Apps bomo kmalu preselili in združili z dokumentacijo za Power Pages.

Ta funkcija omogoča stranki, da opravlja odjemalske klice v zunanje API-je in jih zavaruje z uporabo toka implicitnega dovoljenja OAuth. Zagotavlja končno točko za pridobitev žetonov za dostop. Ti žetoni bodo vsebovali informacije o identiteti uporabnika, ki jih zunanji API-ji uporabijo za pooblastilo po toku implicitnega dovoljenja OAuth 2.0. Podatki o identiteti prijavljenega uporabnika se na varen način posredujejo zunanjim klicem AJAX, kar pomaga razvijalcem pri posredovanju konteksta preverjanja pristnosti in bo prav tako pomagalo uporabnikom zaščititi njihove API-je.

Tok implicitnega dovoljenja OAuth 2.0 podpira končne točke žeton, ki jih lahko odjemalec pokliče, da pridobi žeton ID.

Potrdila po meri

Tok implicitnega dovoljenja OAuth 2.0 uporablja privzeto digitalno potrdilo, kar je opuščena metoda. Med uporabo končne točke OAuth 2.0 boste morali uporabiti digitalno potrdilo po meri. Uporabi skrbniški center Power Platform za nalaganje digitalnega potrdila po meri. Ko naložite digitalno potrdilo po meri, morate posodobiti nastavitve mesta, kot je prikazano spodaj:

  1. Pomaknite se do  nastavitev portala  in izberite  Nastavitve mesta.

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

  3. Če želite urediti obstoječo nastavitev, izberite Nastavitev mesta, navedeno v mreži.

  4. Določitev vrednosti:

    • Ime: CustomCertificates/ImplicitGrantflow
    • Spletno mesto: povezano spletno mesto
    • Vrednost: Kopirajte razpoznavni odtis naloženega digitalnega potrdila po meri z zaslona Upravljanje digitalnega potrdila po meri in ga prilepite sem. Vrednost bo nakazovala, katero digitalno potrdilo bo uporabljeno za tok implicitnega dovoljenja.
  5. Izberite Shrani in zapri. Splošni meni za Nastavitve novega spletnega mesta z navedenimi vrednostmi.

Podrobnosti končne točke žetona

Žeton lahko dobite tudi tako, da končni točki /token pošljete zahtevo za objavo. 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 zahtevkih v žetonu kot paramater aud in appid ter ga lahko odjemalci uporabljajo za potrditev, da je vrnjeni žeton primeren 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 kot vrednost le token, kar omogoča, da aplikacija takoj prejme žeton za dostop od pooblastitvene končne točke brez izvedbe druge zahteve za pooblastitveno končno točko.

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 vpisan, je prikazana stran za vpis, da se lahko uporabnik vpiše. 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

Pooblastitvena končna točka za opuščena. Uporabite zahtevo OBJAVI končne točke žetona 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 zahtevkih v žetonu kot paramater aud in appid ter ga lahko odjemalci uporabljajo za potrditev, da je vrnjeni žeton primeren 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 kot vrednost le token, ki omogoča, da aplikacija takoj prejme žeton za dostop od pooblastitvene končne točke brez izvedbe druge zahteve za pooblastitveno končno točko.

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 vpisan, je prikazana stran za vpis, da se lahko uporabnik vpiše. 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

Sama pridobitev žetona ID ne zadostuje za preverjanje pristnosti uporabnika; potrditi morate tudi podpis žetona in preveriti zahtevke v žetonu na podlagi zahtev 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 mesta ni na voljo v vašem portalu, morate ustvariti novo nastavitev mesta s primerno 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).