OAuth 2.0 selge loa voo kasutamine oma portaalis

Märkus

Alates 12. oktoobrist 2022 on Power Appsi portaalid Power Pages. Lisateave: Microsoft Power Pages on nüüd üldiselt saadaval (ajaveebipostitus)
Peagi migreerime ja ühendame Power Appsi portaalide dokumentatsiooni Power Pagesi dokumentatsiooniga.

See funktsioon võimaldab kliendil teha kliendipoolseid kõnesid välistele API-dele ja neid turvata OAuthi selge loa voo abil. See annab lõpp-punkti turvaliste pääsutõendite saamiseks. Need tõendid sisaldavad kasutaja identiteediteavet, mida välised API-d autoriseerimiseks kasutavad, järgides OAuth 2.0 selge loa voogu. Sisselogitud kasutaja identiteediteave edastatakse turvatud viisil välistele AJAX-kõnedele, mis aitab arendajatel autentimiskonteksti edastada ja kasutajatel ka oma API-sid kaitsta.

OAuth 2.0 selge loa voog toetab tõendi lõpp-punkte, millele klient saab ID-tõendi saamiseks helistada.

Kohandatud serdid

OAuth 2.0 selge loa voo vaikeserdi kasutamine on iganenud. OAuth 2.0 lõpp-punkti kasutades tuleb kasutada kohandatud serti. Kasutage Power Platformi halduskeskust kohandatud serdi üleslaadimiseks. Pärast kohandatud serdi üleslaadimist tuleb saidi sätteid järgmiselt värskendada.

  1. Avage  portaali sätted  ja valige  Saidi sätted.

  2. Uue sätte loomiseks tehke valik  Uus.

  3. Olemasoleva sätte redigeerimiseks valige ruudustikus antud suvand Saidi säte.

  4. Määrake järgmised väärtused.

    • Nimi: CustomCertificates/ImplicitGrantflow
    • Veebisait: seotud veebisait
    • Väärtus: kopeerige üleslaaditud kohandatud tõendi sõrmejälg kuvalt Kohandatud sertide haldamine ja kleepige see siia. See väärtus näitab, millist serti selge voo puhul kasutatakse.
  5. Valige  Salvesta ja sule. Määratud väärtustega uute saidisätete üldmenüü

Tõendi lõpp-punkti üksikasjad

Tõendi saamiseks on võimalik ka lõpp-punktile /token POST-taotlus esitada. Tõendi lõpp-punkti URL on <portal_url>/_services/auth/token. Tõendi lõpp-punkt toetab järgmisi parameetreid.

Parameeter Kas on nõutav? Kirjeldus
client_id Ei String, mis edastatakse kõne tegemisel volituse lõpp-punktile. Peate tagama, et kliendi ID oleks portaalis registreeritud. Muidu kuvatakse tõrge. Kliendi ID lisatakse väidetes tõendisse parameetrina aud ja appid ning kliendid saavad selle abil kontrollida, kas tõend on nende rakenduse jaoks tagastatud.
Maksimumpikkus on 36 märki. Toetatakse ainult tähtnumbrilisi märke ja sidekriipsu.
redirect_uri Ei Portaali, kuhu saab autentimisvastuseid saata ja kust vastu võtta, URL. See tuleb registreerida kõnes kasutatud konkreetse client_id puhul ja peab olema täpselt sama mis registreeritud väärtus.
olek Ei Taotluses sisalduv väärtus, mis tagastatakse samuti tõendi vastuses. See võib olla mis tahes soovitud sisuga string. Tavaliselt kasutatakse juhuslikult loodud kordumatut väärtust, et vältida saidiülese taotluse võltsimise rünnakuid.
Maksimumpikkus on 20 märki.
nonss Ei Kliendi saadetud stringi väärtus, mis sisaldub ID-tulemtõendis väitena. Seejärel saab klient seda väärtust kontrollida, et vähendada tõendi kordusesituse rünnakuid. Maksimumpikkus on 20 märki.
response_type No See parameeter toetab väärtusena ainult tõendit token, mis võimaldab teie rakendusel saada volituse lõpp-punktist kohe juurdepääsutõendi ilma volituse lõpp-punktile teist taotlust esitamata.

Märkus

Ehkki parameetrid client_id, redirect_uri, state ja nonce on valikulised, on soovitatav neid kasutada, et tagada oma integratsioonide turvalisus.

Edukas vastus

Tõendi lõpp-punkt tagastab parameetrid Olek ja Aegub vastuse päistena ning tõendi vormi sisus.

Tõrkevastus

Tõrge tõendi lõpp-punktis tagastatakse JSON-i dokumendina järgmiste väärtustega.

  • Tõrke ID: tõrke ainuidentifikaator.
  • Tõrketeade: konkreetne tõrketeade, mis aitab teil tuvastada autentimistõrke juurpõhjust.
  • Korrelatsiooni ID: GUID, mida kasutatakse silumise otstarbel. Kui olete diagnostilise logimise lubanud, kuvatakse korrelatsiooni ID serveri tõrkelogides.
  • Ajatempel: tõrke loomise kuupäev ja kellaaeg.

Tõrketeade kuvatakse sisselogitud kasutaja vaikekeeles. Kui kasutaja pole sisse logitud, kuvatakse talle sisselogimisleht. Tõrkevastus näeb välja näiteks selline.

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

Volituse lõpp-punkti üksikasjad

Märkus

Volituse lõpp-punkt on iganenud. Kasutage ID-tõendi toomiseks tõendi lõpp-punkti POST-taotlust.]

Volituse lõpp-punkti URL on <portal_url>/_services/auth/authorize. Volituse lõpp-punkt toetab järgmisi parameetreid.

Parameeter Kas on nõutav? Kirjeldus
client_id Jah String, mis edastatakse kõne tegemisel volituse lõpp-punktile. Peate tagama, et kliendi ID oleks portaalis registreeritud. Muidu kuvatakse tõrge. Kliendi ID lisatakse väidetes tõendisse parameetrina aud ja appid ning kliendid saavad selle abil kontrollida, kas tõend on nende rakenduse jaoks tagastatud.
Maksimumpikkus on 36 märki. Toetatakse ainult tähtnumbrilisi märke ja sidekriipse.
redirect_uri Jah Portaali, kuhu saab autentimisvastuseid saata ja kust vastu võtta, URL. See tuleb registreerida kõnes kasutatud konkreetse client_id puhul ja peab olema täpselt sama mis registreeritud väärtus.
olek Ei Taotluses sisalduv väärtus, mis tagastatakse samuti tõendi vastuses. See võib olla mis tahes soovitud sisuga string. Tavaliselt kasutatakse juhuslikult loodud kordumatut väärtust, et vältida saidiülese taotluse võltsimise rünnakuid.
Maksimumpikkus on 20 märki.
nonss Ei Kliendi saadetud stringi väärtus, mis sisaldub ID-tulemtõendis väitena. Seejärel saab klient seda väärtust kontrollida, et vähendada tõendi kordusesituse rünnakuid. Maksimumpikkus on 20 märki.
response_type No See parameeter toetab väärtusena ainult tõendit token, mis võimaldab teie rakendusel saada volituse lõpp-punktist kohe juurdepääsutõendi ilma volituse lõpp-punktile teist taotlust esitamata.

Edukas vastus

Volituse lõpp-punkt tagastab vastuse URL-is fragmendina järgmised väärtused.

  • Tõend: tõend tagastatakse JSON-i veebitõendina (JWT), mis on digiallkirjastatud portaali privaatvõtmega.
  • Olek: kui taotlus sisaldab oleku parameetrit, peab sama väärtus ilmuma ka vastuses. Rakendus peab kontrollima, kas oleku väärtused taotluses ja vastuses on samad.
  • Aegub: juurdepääsutõendi kehtivusaeg (sekundites).

Edukas vastus näeb välja näiteks selline.

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

Tõrkevastus

Tõrge volituse lõpp-punktis tagastatakse JSON-i dokumendina järgmiste väärtustega.

  • Tõrke ID: tõrke ainuidentifikaator.
  • Tõrketeade: konkreetne tõrketeade, mis aitab teil tuvastada autentimistõrke juurpõhjust.
  • Korrelatsiooni ID: GUID, mida kasutatakse silumise otstarbel. Kui olete diagnostilise logimise lubanud, kuvatakse korrelatsiooni ID serveri tõrkelogides.
  • Ajatempel: tõrke loomise kuupäev ja kellaaeg.

Tõrketeade kuvatakse sisselogitud kasutaja vaikekeeles. Kui kasutaja pole sisse logitud, kuvatakse talle sisselogimisleht. Tõrkevastus näeb välja näiteks selline.

{"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-tõendi valideerimine

Üksnes ID-tõendi hankimisest ei piisa kasutaja autentimiseks, vaid peate ka valideerima tõendi allkirja ja kontrollima tõendis olevaid väiteid oma rakenduse nõuete põhjal. Avaliku tõendi lõpp-punkt annab portaali avaliku võtme, mida saab kasutada portaali esitatud tõendi allkirja valideerimiseks. Avaliku tõendi lõpp-punkti URL on <portal_url>/_services/auth/publickey.

Selge loa voo sisse- või väljalülitamine

Vaikimisi on selge loa voog lubatud. Kui soovite selge loa voo välja lülitada, määrake saidisätte Connector/ImplicitGrantFlowEnabled väärtuseks Väär.

Kui see saidisäte pole teie portaalis saadaval, peate looma uue saidisätte sobiva väärtusega.

Tõendi kehtivuse konfigureerimine

Vaikimisi kehtib tõend 15 minutit. Tõendi kehtivuse muutmiseks määrake saidisättele ImplicitGrantFlow/TokenExpirationTime soovitud väärtus. Väärtus tuleb määrata sekundites. Maksimaalne väärtus võib olla üks tund ja minimaalne üks minut. Sobimatu väärtuse määramisel (näiteks tärgid) kasutatakse vaikeväärtust 15 minutit. Kui määrate maksimaalsest suurema või minimaalsest väiksema väärtuse, kasutatakse vaikimisi vastavalt maksimaalset ja minimaalset väärtust.

Näiteks kui soovite määrata tõendi kehtivuseks 30 minutit, seadke saidisätte ImplicitGrantFlow/TokenExpirationTime väärtuseks 1800. Kui soovite määrata tõendi kehtivuseks ühe tund, seadke saidisätte ImplicitGrantFlow/TokenExpirationTime väärtuseks 3600.

Kliendi ID registreerimine selge loa voo jaoks

Peate registreerima kliendi ID portaalis, mille puhul see voog on lubatud. Kliendi ID registreerimiseks peate looma järgmised saidisätted.

Saidi säte Value
ImplicitGrantFlow/RegisteredClientId Selle portaali puhul lubatud kehtivad kliendi ID väärtused. Väärtused tuleb eraldada semikooloniga ning need võivad sisaldada tähtnumbrilisi märke ja sidekriipse. Maksimumpikkus on 36 märki.
ImplicitGrantFlow/{ClientId}/RedirectUri Konkreetse kliendi ID puhul lubatud kehtivad ümbersuunamise URI-d. Need väärtused tuleb eraldada semikooloniga. Esitatud URL peab olema portaali kehtiv veebileht.

Näidiskood

OAuth 2.0 Implicit Granti voo kasutamise alustamisel Power Apps portaali API-dega võite kasutada järgmist näidiskoodi.

Portaali OAuth sõne kasutamine välise Web API-ga

See näide on ASP.NET -l põhinev projekt ja seda kasutatakse Power Apps portaalide välja antud ID sõne valideerimiseks. Täieliku näidise leiate siit: Portaali OAuth tõendi kasutamine välise Web API-ga.

Tõendi lõpp-punkti näidis

See näide näitab, kuidas saate kasutada funktsiooni getAuthenticationToken ID sõne sissetoomiseks, kasutades sõne lõpp-punkti Power Apps portaalides. Näidise leiate siit: Lõpp-punkti tõendi näidis.

Märkus

Kas saaksite meile dokumentatsiooniga seotud keele-eelistustest teada anda? Osalege lühikeses uuringus. (Uuring on ingliskeelne.)

Uuringus osalemine võtab umbes seitse minutit. Isikuandmeid ei koguta (privaatsusavaldus).