OAuth 2.0:n implisiittisen valtuutuksen työnkulun käyttäminen portaalissa
Huomautus
Power Apps -portaaleja kutsutaan 12. lokakuuta 2022 alkaen nimellä Power Pages. Lisätietoja: Microsoft Power Pages on nyt yleisesti saatavilla (blogi)
Siirrämme ja yhdistämme Power Apps -portaalien dokumentaation pian Power Pagesin dokumentaatioon.
Tämän toiminnon avulla asiakas voi tehdä kutsuja asiakasohjelmasta ulkoisiin ohjelmointirajapintoihin ja suojata ne OAuth:n implisiittisen valtuutuksen työnkulun avulla. Se tarjoaa päätepisteen suojattujen käyttöoikeustietueiden hankkimiseen. Nämä tunnukset sisältävät käyttäjätiedot, joita ulkoiset ohjelmointirajapinnat käyttävät OAuth 2.0:n implisiittisen valtuutuksen työnkulun hyväksynnässä. Sisäänkirjautuneen käyttäjän tunnistetiedot välitetään suojatusti ulkoisille AJAX-kutsuille. Tämän auttaa kehittäjiä välittämään todennuksen kontekstin ja myös käyttäjiä suojaamaan ohjelmointirajapinnat.
OAuth 2.0:n implisiittisen valtuutuksen työnkulku tukee tunnuksen päätepisteitä, joita asiakasohjelma voi kutsua tunnuksen hakemista varten.
Mukautetut varmenteet
Oletusvarmenteen käyttäminen OAuth 2.0 Implicit Grant -työnkulussa on vanhentunut. OAuth 2.0 -päätepistettä käytettäessä on käytettävä mukautettua sertifikaattia. Käytä Power Platform -hallintakeskusta, jos haluat ladata mukautetun varmenteen. Kun olet ladannut mukautetun varmenteen, sivuston asetukset on päivitettävä alla kerrotulla tavalla:
Siirry portaalin asetuksiin ja valitse Sivuston asetukset.
Luo uusi asetus, valitsemalla Uusi.
Voit muokata aiemmin luotua asetusta valitsemalla ruudukossa mainitun sivuston asetuksen.
Määritä seuraavat arvot:
- Nimi: CustomCertificates/ImplicitGrantflow
- Sivusto: Liittyvä sivusto
- Arvo: Kopioi ladatun mukautetun varmenteen allekirjoitus Mukautetun varmenteen hallinta -näytöstä ja liitä se tähän. Arvo ilmaisee, mitä varmennetta käytetään implisiittiseen apurahan työnkulkuun.
Valitse Tallenna ja sulje.
Tunnuksen päätepisteen tiedot
Voit hakea tunnuksen myös tekemällä post-pyynnön /token
-päätepisteelle. Tunnuksen päätepisteen URL-osoite on <portal_url>/_services/auth/token
. Tunnuksen päätepiste tukee seuraavia parametreja:
Parametri | Pakollinen? | Kuvaus |
---|---|---|
client_id | Ei | Merkkijono, joka välitetään, kun hyväksynnän päätepistettä kutsutaan. Varmista, että asiakasohjelman tunnus on rekisteröity portaaliin. Muussa tapauksessa näkyviin tulee virhe. Asiakasohjelman tunnus lisätään tunnuksen väitteisiin aud - ja appid -parametrina. Asiakasohjelmat voivat myös varmistaa sen avulla, että palautettu tunnus koskee kyseistä sovellusta.Enimmäispituus on 36 merkkiä. Vain aakkosnumeerisia merkkejä ja tavuviivaa tuetaan. |
redirect_uri | Ei | Sen portaalin URL-osoite, josta todentamisen vastaukset voidaan lähettää ja jonne ne voidaan vastaanottaa. Se on rekisteröitävä tiettyä kutsussa käytettyä client_id -parametria varten. Tämän on oltava täsmälleen sama kuin rekisteröity arvo. |
state | Ei | Pyyntöön sisältyvä arvo, joka myös palautetaan tunnuksen vastauksessa. Se voi olla merkkijono, jonka sisältö on haluamasi. Yleensä satunnaisesti luotua yksilöllistä arvoa käytetään CSRF (cross-site-request forgery) -hyökkäysten estämiseksi. Enimmäispituus on 20 merkkiä. |
nonce | Ei | Asiakasohjelman lähettämän merkkijonon arvo, joka sisältyy tuloksena saatavaan tunnukseen väitteenä. Asiakasohjelma voi tämän jälkeen tarkistaa arvon ja vähentää tunnuksen toistuvia hyökkäyksiä. Enimmäispituus on 20 merkkiä. |
response_type | Ei | Tämä parametri tukee arvona vain tunnusta token . Tämän vuoksi sovellus voi vastaanottaa käyttötunnuksen välittömästi hyväksynnän päätepisteeltä ilman, että hyväksynnän päätepisteelle tehtävää toista pyyntöä. |
Huomautus
Vaikka client_id
-, redirect_uri
-, state
- ja nonce
-parametrit ovat valinnaisia, niitä suositellaan käytettäväksi. Näin varmistetaan, että integroinnit ovat suojattuja.
Onnistunut vastaus
Tunnuksen päätepiste palauttaa state- ja expires_in-parametrit vastauksena otsikoihin ja tunnuksen lomakkeen rungossa.
Virhevastaus
Tunnuksen päätepisteen virhe palautetaan JSON-asiakirjana seuraavien arvojen kanssa:
- Virheen tunnus: Virheen yksilöivä tunnus.
- Virhesanoma: Tietty virhesanoma, jonka avulla voit määrittää todennusvirheen perussyyn.
- Korrelointitunnus: GUID-tunnus, jota käytetään virheenkorjauksessa. Jos olet ottanut virheenkorjauksen lokiinkirjoituksen käyttöön, korrelointitunnus näkyy palvelimen virhelokeissa.
- AIkaleima: Päivämäärä ja kellonaika, jona virhe luotiin.
Virhesanoma näytetään sisäänkirjautuneelle käyttäjälle oletuskielellä. Jos käyttäjä ei ole kirjautunut sisään, näytetään sisäänkirjaussivu. Virhesanoma voi näyttää esimerkiksi tältä:
{"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" }
Hyväksynnän päätepisteen tiedot
Huomautus
Päätepisteen hyväksyntä on vanhentunut. Käytä tunnuksen päätepisteen POST-pyyntöä, jos haluat hakea tunnuksen.]
Hyväksynnän päätepisteen URL-osoite on <portal_url>/_services/auth/authorize
. Hyväksynnän päätepiste tukee seuraavia parametreja:
Parametri | Pakollinen? | Kuvaus |
---|---|---|
client_id | Kyllä | Merkkijono, joka välitetään, kun hyväksynnän päätepistettä kutsutaan. Varmista, että asiakasohjelman tunnus on rekisteröity portaaliin. Muussa tapauksessa näkyviin tulee virhe. Asiakasohjelman tunnus lisätään tunnuksen väitteisiin aud - ja appid -parametrina. Asiakasohjelmat voivat myös varmistaa sen avulla, että palautettu tunnus koskee kyseistä sovellusta.Enimmäispituus on 36 merkkiä. Vain aakkosnumeerisia merkkejä ja tavuviivoja tuetaan. |
redirect_uri | Kyllä | Sen portaalin URL-osoite, josta todentamisen vastaukset voidaan lähettää ja jonne ne voidaan vastaanottaa. Se on rekisteröitävä tiettyä kutsussa käytettyä client_id -parametria varten. Tämän on oltava täsmälleen sama kuin rekisteröity arvo. |
state | Ei | Pyyntöön sisältyvä arvo, joka myös palautetaan tunnuksen vastauksessa. Se voi olla merkkijono, jonka sisältö on haluamasi. Yleensä satunnaisesti luotua yksilöllistä arvoa käytetään CSRF (cross-site-request forgery) -hyökkäysten estämiseksi. Enimmäispituus on 20 merkkiä. |
nonce | Ei | Asiakasohjelman lähettämän merkkijonon arvo, joka sisältyy tuloksena saatavaan tunnukseen väitteenä. Asiakasohjelma voi tämän jälkeen tarkistaa arvon ja vähentää tunnuksen toistuvia hyökkäyksiä. Enimmäispituus on 20 merkkiä. |
response_type | Ei | Tämä parametri tukee arvona vain tunnusta token . Tämän vuoksi sovellus voi vastaanottaa käyttötunnuksen välittömästi hyväksynnän päätepisteeltä ilman, että hyväksynnän päätepisteelle tehtävää toista pyyntöä. |
Onnistunut vastaus
Hyväksynnän päätepiste palauttaa seuraavat arvot vastauksen URL-osoitteessa katkelmana:
- token: Tunnus palautetaan JSON Web Token (JWT) -kohteena, joka on portaalin yksityisen avaimen digitaalisesti allekirjoittama.
- state: Jos state-parametri sisältyy pyyntöön, saman arvon tulee näkyä vastauksessa. Sovelluksen on varmistettava, että pyynnön ja vastauksen state-arvot ovat identtiset.
- expires_in: Aika, jonka käyttötunnus on voimassa (sekunteina).
Onnistunut vastaus voi näyttää esimerkiksi tältä:
GET https://aadb2cplayground.azurewebsites.net/#token=eyJ0eXAiOiJKV1QiLCJhbGciOI1NisIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q&expires_in=3599&state=arbitrary_data_you_sent_earlier
Virhevastaus
Hyväksynnän päätepisteen virhe palautetaan JSON-asiakirjana seuraavien arvojen kanssa:
- Virheen tunnus: Virheen yksilöivä tunnus.
- Virhesanoma: Tietty virhesanoma, jonka avulla voit määrittää todennusvirheen perussyyn.
- Korrelointitunnus: GUID-tunnus, jota käytetään virheenkorjauksessa. Jos olet ottanut virheenkorjauksen lokiinkirjoituksen käyttöön, korrelointitunnus näkyy palvelimen virhelokeissa.
- AIkaleima: Päivämäärä ja kellonaika, jona virhe luotiin.
Virhesanoma näytetään sisäänkirjautuneelle käyttäjälle oletuskielellä. Jos käyttäjä ei ole kirjautunut sisään, näytetään sisäänkirjaussivu. Virhesanoma voi näyttää esimerkiksi tältä:
{"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" }
Tarkista tunnus
Pelkkä tunnuksen saaminen ei riitä käyttäjän todentamiseen. Myös tunnuksen allekirjoitus on tarkistettava ja sen lisäksi tarkistetaan tunnuksen väitteet sovelluksen vaatimusten perusteella. Julkisen tunnuksen päätepiste määrittää portaalin julkisen avaimen. Sitä voi käyttää portaalin antaman tunnuksen allekirjoituksen tarkistamisessa. Julkisen tunnuksen päätepisteen URL-osoite on <portal_url>/_services/auth/publickey
.
Implisiittisen valtuutuksen työnkulun ottaminen käyttöön tai poistaminen käytöstä
Oletusarvoisesti implisiittisen valtuutuksen työnkulku on käytössä. Jos haluat poistaa implisiittisen valtuutuksen työnkulun käytöstä, määritä Connector/ImplicitGrantFlowEnabled-sivustoasetuksen arvoksi Epätosi.
Jos tämän sivustoasetus ei ole käytettävissä portaalissa, luo uusi sivustoasetus ja anna sille soveltuva arvo.
Määritä tunnuksen voimassaoloaika
Oletusarvoisesti tunnus on voimassa 15 minuutin ajan. Jos haluat muuttaa tunnuksen voimassaoloaikaa, määritä ImplicitGrantFlow/TokenExpirationTime-sivustoasetukselle vaadittu arvo. Arvo on määritettävä sekunneissa. Suurin sallittu arvo voi olla 1 tunti ja pienimmän arvon on oltava 1 minuutti. Jos määritetty arvo on virheellinen (esimerkiksi aakkosnumeerinen merkki), käytetään oletusarvoa. Se on 15 minuuttia. Jos määrität enimmäisarvoa suuremman arvon tai vähimmäisarvoa pienemmän arvon, käytetään oletusarvoisesti enimmäis- ja vähimmäisarvoja.
Jos haluat määrittää esimerkiksi tunnuksen voimassaoloajaksi 30 minuuttia, määritä ImplicitGrantFlow/TokenExpirationTime-sivustoasetuksen arvoksi 1800. Jos haluat määrittää tunnuksen voimassaoloajaksi 1 tunti, määritä ImplicitGrantFlow/TokenExpirationTime-sivustoasetuksen arvoksi 3600.
Implisiittisen valtuutuksen työnkulun asiakasohjelman tunnuksen rekisteröiminen
Asiakasohjelman tunnus on rekisteröitävä sille portaalille, jossa työnkulku on sallittu. Jos haluat rekisteröidä asiakasohjelman tunnuksen, luo seuraavat sivustoasetukset:
Sivuston asetus | Value |
---|---|
ImplicitGrantFlow/RegisteredClientId | Tässä portaalissa sallitut asiakasohjelman tunnukset. Arvot on erotettava toisistaan puolipisteellä. Niissä ei voi käyttää aakkosnumeerisia merkkejä ja tavuviivoja. Enimmäispituus on 36 merkkiä. |
ImplicitGrantFlow/{ClientId}/RedirectUri | Tietylle asiakasohjelman tunnukselle sallitut uudelleenohjauksen URI-osoitteet. Arvot on erotettava toisistaan puolipisteellä. Annetun URL-osoitteen on oltava sallittu portaalin verkkosivulla. |
Näytekoodi
Voit aloittaa OAuth 2.0:n implisiittisen valtuutuksen työnkulun käytön Power Apps -portaalien ohjelmointirajapintojen kanssa käyttämällä seuraavaa näytekoodia.
Portaalin OAuth-tunnuksen käyttäminen ulkoisen verkon ohjelmointirajapinnan kanssa
Tämä näyte on ASP.NET-pohjainen projekti ja sen avulla tarkistetaan Power Apps -portaalien myöntämä tunnus. Täydellinen näyte on kohdassa: Portaalin OAuth-tunnuksen käyttäminen ulkoisen verkon ohjelmointirajapinnan kanssa.
Tunnuksen päätepistenäyte
Näyte osoittaa, miten getAuthenticationToken-toiminnolla noudetaan tunnus käyttämällä tunnuspäätepistettä Power Apps-portaaleissa. Näytteen sijainti: Tunnuksen päätepistenäyte.
Huomautus
Voitko kertoa meille dokumentaatiota koskevan kielimäärityksesi? Vastaa lyhyeen kyselyyn. (Huomaa, että tämä kysely on englanninkielinen.)
Kyselyyn vastaaminen kestää noin seitsemän minuuttia. Henkilökohtaisia tietoja ei kerätä (tietosuojatiedot).