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:

  1. Siirry portaalin asetuksiin  ja valitse Sivuston asetukset.

  2. Luo uusi asetus, valitsemalla  Uusi.

  3. Voit muokata aiemmin luotua asetusta valitsemalla ruudukossa mainitun sivuston asetuksen.

  4. 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.
  5. Valitse  Tallenna ja sulje. Uusien sivuston asetusten yleisvalikko ja määritetyt arvot.

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).