„OAuth 2.0“ numanomo suteikimo srauto naudojimas portale
Pastaba
Nuo 2022 m. spalio 12 d. „Power Apps“ portalai tampa „Power Pages“. Daugiau informacijos: „Microsoft Power Pages“ dabar yra visuotinai prieinama (tinklaraštis)
Greitai perkelsime ir suliesime „Power Apps“ portalų dokumentaciją su „Power Pages“ dokumentacija.
Ši funkcija leidžia klientui atlikti skambučius iš kliento pusės į išorinius API ir apsaugoti juos naudojant „OAuth“ netiesioginį suteikimo srautą. Tai galinis punktas, leidžiantis gauti saugios prieigos atpažinimo ženklus. Šiuose atpažinimo ženkluose bus vartotojo tapatybės informacija, kurią naudos išoriniai API autorizavimui po „OAuth 2.0“ netiesioginio suteikimo srauto. Prisijungusio vartotojo tapatybės informacija saugiu būdu perduodama išoriniams AJAX skambučiams – tai kūrėjams padeda perduoti autentifikavimo kontekstą ir padės vartotojams apsaugoti savo API.
„OAuth 2.0“ netiesioginis suteikimo srautas palaiko atpažinimo ženklo galinius punktus, kuriuos klientas gali iškviesti, kad gautų ID atpažinimo ženklą.
Pasirinktiniai sertifikatai
Naudoti „OAuth 2.0“ netiesioginio suteikimo srauto numatytojo sertifikato nerekomenduojama. Naudodami „OAuth 2.0“ galinį punktą turėsite naudoti pasirinktinį sertifikatą. Naudokite Power Platform administravimo centrą pasirinktiniam sertifikatui nusiųsti. Nusiuntus pasirinktinį sertifikatą, reikia atnaujinti svetainės parametrus, kaip nurodyta toliau:
Eikite į portalo parametrus ir pasirinkite Svetainės parametrai.
Norėdami sukurti naują parametrą pasirinkite Naujas.
Jei norite redaguoti esamą parametrą, pasirinkite tinklelyje nurodytą svetainės parametrą.
Nurodykite reikšmes:
- Pavadinimas: CustomCertificates/ImplicitGrantflow
- Svetainė: susieta svetainė
- Reikšmė: nukopijuokite nusiųsto pasirinktinio sertifikato nykščio atspaudą iš ekrano „Pasirinktinių sertifikatų tvarkymas“ ir įklijuokite jį čia. Ši reikšmė nurodys, kuris sertifikatas bus naudojamas netiesioginiam suteikimo srautui.
Pasirinkite Įrašyti ir uždaryti.
Atpažinimo ženklo galinio punkto informacija
Taip pat galite gauti atpažinimo ženklą pateikdami skelbimo užklausą /token
galiniam punktui. Atpažinimo ženklo galinio punkto URL: <portal_url>/_services/auth/token
. Atpažinimo ženklo galinis punktas palaiko toliau nurodytus parametrus.
Parametras | Būtina? | Aprašas |
---|---|---|
client_id | Ne | Eilutė, kuri perduodama, kai skambinama autorizavimo galiniam punktui. Turite užtikrinti, kad kliento ID yra užregistruotas portale. Kitu atveju rodoma klaida. Kliento ID įtraukiamas į pareiškimus atpažinimo ženkle kaip aud bei appid parametras ir jį gali naudoti klientai, kad patikrintų, ar pateiktas atpažinimo ženklas yra skirtas jų programai.Didžiausias ilgis yra 36 simboliai. Palaikomi tik raidiniai ir skaitiniai simboliai bei brūkšnys. |
redirect_uri | Ne | Portalo, kuriame galima siųsti ir gauti autentifikavimo atsakymus, URL. Jis turi būti užregistruotas ir priskirtas atskiram client_id , kuris naudojamas paskambinant, taip pat jis turi atitikti tikslią užregistruotą reikšmę. |
būsena | Ne | Reikšmė, įtraukta į užklausą, kuri taip pat pateikiama atpažinimo ženklo atsakyme. Tai gali būti bet kokio turinio, kurį norite naudoti, seka. Paprastai naudojama atsitiktinai sugeneruota unikali reikšmė, kad būtų apsisaugota nuo kelių svetainės užklausų klastojimo išpuolių. Didžiausias ilgis yra 20 simboliai. |
vienkartinis raktas | Ne | Eilutės reikšmė išsiunčiama kliento, kuris įtrauktas į galutinį ID atpažinimo ženklą kaip pareiškimas. Tada klientas gali patikrinti šią reikšmę ir sumažinti atpažinimo ženklų vykdymo iš naujo atakas. Didžiausias ilgis yra 20 simboliai. |
response_type | No | Šis parametras kaip reikšmę palaiko tik token , tai leidžia jūsų programai iš karto gauti prieigos atpažinimo ženklą iš autorizavimo galinio punkto nepateikiant antros užklausos į autorizavimo galinį punktą. |
Pastaba
Nors parametrai client_id
, redirect_uri
, state
ir nonce
yra pasirinktiniai, rekomenduojama juos naudoti siekiant užtikrinti, kad jūsų integracija yra apsaugota.
Sėkmingas atsakymas
Atpažinimo ženklo galinis punktas pateikia būseną ir expires_in kaip atsakymo antraštes, o atpažinimo ženklą – formos turinyje.
Klaidos atsakymas
Klaida atpažinimo ženklo galiniame punkte pateikiama kaip JSON dokumentas su toliau nurodytomis reikšmėmis.
- Klaidos ID: unikalusis klaidos identifikatorius.
- Klaidos pranešimas: konkretus klaidos pranešimas, kuris gali padėti nustatyti autentifikavimo klaidos priežastį.
- Ryšio ID: GUID, kuris naudojamas derinimo tikslais. Jei įjungėte diagnostikos registravimą, sąsajos ID bus pateiktas serverio klaidų žurnaluose.
- Laiko žymė: data ir laikas, kada sugeneruota klaida.
Prisijungusiam vartotojui klaidos pranešimas rodomas numatytąja kalba. Jei vartotojas neprisijungęs, rodomas prisijungimo puslapis, kad vartotojas prisijungtų. Pvz., klaidos atsakymas nurodytas toliau.
{"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" }
Galinio punkto informacijos autorizavimas
Pastaba
Autorizavimo galinis punktas nerekomenduojamas. Norėdami gauti ID atpažinimo ženklą, naudokite atpažinimo ženklo POST užklausą.
Galinio punkto autorizavimo URL: <portal_url>/_services/auth/authorize
. Autorizavimo galinis punktas palaiko toliau nurodytus parametrus.
Parametras | Būtina? | Aprašas |
---|---|---|
client_id | Taip | Eilutė, kuri perduodama, kai skambinama autorizavimo galiniam punktui. Turite užtikrinti, kad kliento ID yra užregistruotas portale. Kitu atveju rodoma klaida. Kliento ID įtraukiamas į pareiškimus atpažinimo ženkle kaip aud bei appid parametras ir jį gali naudoti klientai, kad patikrintų, ar pateiktas atpažinimo ženklas yra skirtas jų programai.Didžiausias ilgis yra 36 simboliai. Palaikomi tik raidiniai ir skaitiniai simboliai bei brūkšniai. |
redirect_uri | Taip | Portalo, kuriame galima siųsti ir gauti autentifikavimo atsakymus, URL. Jis turi būti užregistruotas ir priskirtas atskiram client_id , kuris naudojamas paskambinant, taip pat jis turi atitikti tikslią užregistruotą reikšmę. |
būsena | Ne | Reikšmė, įtraukta į užklausą, kuri taip pat pateikiama atpažinimo ženklo atsakyme. Tai gali būti bet kokio turinio, kurį norite naudoti, seka. Paprastai naudojama atsitiktinai sugeneruota unikali reikšmė, kad būtų apsisaugota nuo kelių svetainės užklausų klastojimo išpuolių. Didžiausias ilgis yra 20 simboliai. |
vienkartinis raktas | Ne | Eilutės reikšmė išsiunčiama kliento, kuris įtrauktas į galutinį ID atpažinimo ženklą kaip pareiškimas. Tada klientas gali patikrinti šią reikšmę ir sumažinti atpažinimo ženklų vykdymo iš naujo atakas. Didžiausias ilgis yra 20 simboliai. |
response_type | No | Šis parametras kaip reikšmę palaiko tik token – tai leidžia jūsų programai iš karto gauti prieigos atpažinimo ženklą iš autorizavimo galinio punkto nepateikiant antros užklausos į autorizavimo galinį punktą. |
Sėkmingas atsakymas
Autorizavimo galinis punktas pateikia toliau nurodytas reikšmes atsakymo URL kaip fragmentą.
- atpažinimo ženklas: atpažinimo ženklas pateikiamas kaip „JSON“ žiniatinklio atpažinimo ženklas (JWT), kuris skaitmeniniu būdu pasirašytas naudojant portalo privatų raktą.
- būsena: jei būsenos parametras įtrauktas į jūsų užklausą, ta pati reikšmė turėtų būti rodoma atsakyme. Programa turėtų patikrinti, ar užklausos ir atsakymo būsenos reikšmės sutampa.
- expires_in: prieigos atpažinimo ženklo galiojimo trukmė (sekundėmis).
Pvz., sėkmingas atsakymas nurodytas toliau.
GET https://aadb2cplayground.azurewebsites.net/#token=eyJ0eXAiOiJKV1QiLCJhbGciOI1NisIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q&expires_in=3599&state=arbitrary_data_you_sent_earlier
Klaidos atsakymas
Klaida autorizavimo galiniame punkte pateikiama kaip JSON dokumentas su toliau nurodytomis reikšmėmis.
- Klaidos ID: unikalusis klaidos identifikatorius.
- Klaidos pranešimas: konkretus klaidos pranešimas, kuris gali padėti nustatyti autentifikavimo klaidos priežastį.
- Ryšio ID: GUID, kuris naudojamas derinimo tikslais. Jei įjungėte diagnostikos registravimą, sąsajos ID bus pateiktas serverio klaidų žurnaluose.
- Laiko žymė: data ir laikas, kada sugeneruota klaida.
Prisijungusiam vartotojui klaidos pranešimas rodomas numatytąja kalba. Jei vartotojas neprisijungęs, rodomas prisijungimo puslapis, kad vartotojas prisijungtų. Pvz., klaidos atsakymas nurodytas toliau.
{"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" }
ID atpažinimo ženklo tikrinimas
Nepakanka vien gauti ID atpažinimo ženklą norint autentifikuoti vartotoją; taip pat turite patikrinti atpažinimo ženklo parašą ir patikrinti pareiškimus atpažinimo ženkle pagal programos reikalavimus. Viešojo atpažinimo ženklo galinis punktas suteikia portalo viešąjį raktą, kurį galima naudoti norint patikrinti portalo pateikto atpažinimo ženklo parašą. Viešojo atpažinimo ženklo galinio punkto URL: <portal_url>/_services/auth/publickey
.
Numanomo suteikimo srauto įjungimas arba išjungimas
Pagal numatytuosius parametrus numanomas suteikimo srautas yra įjungtas. Jei norite numanomą suteikimo srautą išjungti, nustatykite svetainės nustatymoConnector/ImplicitGrantFlowEnabled reikšmę False.
Jei šis svetainės parametras jūsų portale negalimas, turite sukurti naują svetainės parametrą nustatydami tinkamą reikšmę.
Atpažinimo ženklo galiojimo konfigūravimas
Pagal numatytuosius parametrus atpažinimo ženklas galioja 15 minučių. Jei norite keisti atpažinimo ženklo galiojimą, nustatykite reikiamą svetainės nustatymo ImplicitGrantFlow/TokenExpirationTime reikšmę. Reikšmė turi būti nurodyta sekundėmis. Didžiausia reikšmė gali būti 1 valanda, o mažiausia reikšmė turi būti 1 minutė. Jei nurodoma netinkama reikšmė (pvz., raidiniai ir skaitiniai ženklai), naudojama numatytoji 15 minučių reikšmė. Jei nurodyta reikšmė yra didesnė nei didžiausia reikšmė arba mažesnė nei mažiausia reikšmė, pagal numatytuosius parametrus atitinkamai naudojamos didžiausia arba mažiausia reikšmė.
Pavyzdžiui, norėdami nustatyti atpažinimo ženklo galiojimą į 30 minučių, nustatykite svetainės nustatymo ImplicitGrantFlow/TokenExpirationTime reikšmę 1800. Norėdami nustatyti atpažinimo ženklo galiojimą į 1 valandą, nustatykite svetainės nustatymo ImplicitGrantFlow/TokenExpirationTime reikšmę 3600.
Kliento ID registravimas numatomame suteikimo sraute
Kliento ID turi užsiregistruoti portale, kuriame šis srautas leidžiamas. Norėdami registruoti kliento ID, turite sukurti toliau nurodytus svetainės parametrus.
Svetainės parametras | Value |
---|---|
ImplicitGrantFlow/RegisteredClientId | Tinkamos kliento ID reikšmės, leidžiamos naudoti šiame portale. Reikšmės turi būti atskirtos kabliataškiu ir jose gali būti raidinių bei skaitinių ženklų arba brūkšnių. Didžiausias ilgis yra 36 simboliai. |
ImplicitGrantFlow/{ClientId}/RedirectUri | Tinkami nukreipimo URI, leidžiami konkrečiame kliento ID. Reikšmės turi būti atskirtos kabliataškiu. Nurodyto URL portalo tinklalapis turi būti tinkamas. |
Kodo pavyzdys
Norėdami pradėti naudoti „Oauth 2.0“ numanomą suteikimo srautą su „Power Apps“ portalų API, galite naudoti toliau pateikiamą kodo pavyzdį.
Portalo „Oauth“ atpažinimo ženklo naudojimas su išorine žiniatinklio API
Šis pavyzdys yra ASP.NET sistemos projektas, naudojamas „Power Apps“ portalų išduotam ID atpažinimo ženklui tikrinti. Visą pavyzdį galima rasti čia: Portalo „OAuth“ atpažinimo ženklo naudojimas su išorine žiniatinklio API.
Atpažinimo ženklo galinio punkto pavyzdys
Šiame pavyzdyje rodoma, kaip naudodamiesi funkcija „getAuthenticationToken“ galite gauti ID atpažinimo ženklą, naudodami atpažinimo ženklo galinį punktą „Power Apps“ portaluose. Pavyzdį galite rasti čia: Atpažinimo ženklo galinio punkto pavyzdys.
Pastaba
Ar galite mums pranešti apie dokumentacijos kalbos nuostatas? Atlikite trumpą apklausą. (atkreipkite dėmesį, kad ši apklausa yra anglų kalba)
Apklausą atliksite per maždaug septynias minutes. Asmeniniai duomenys nėra renkami (privatumo nuostatos).