OAuth 2.0 implicit engedélyezési folyamat használata a portálon belül

Megjegyzés

  1. október 12-től a Power Apps-portálok a Power Pages nevet kapják. További információ: A Microsoft Power Pages már általánosan elérhető (blog)
    A Power Apps-portál dokumentációját hamarosan áttelepítjük és egyesítjük a Power Pages dokumentációjával.

Ez a jellemző lehetővé teszi, hogy egy ügyfél ügyféloldali hívásokat indítson külső API-k felé, és OAuth implicit engedélyezési folyamat használatával biztosítsa azokat. Végpontot biztosít a biztonságos hozzáférési jogkivonatok beszerzéséhez. Ezek a jogkivonatok olyan felhasználói azonosító adatokat tartalmaznak, amelyeket a külső API-k az OAuth 2.0 implicit engedélyezési folyamatot követő engedélyezéshez használnak. A bejelentkezett felhasználó identitásinformációit a rendszer biztonságos módon továbbítja a külső AJAX-hívásoknak, ami segít a fejlesztőknek a hitelesítési környezet továbbadásában, valamint segíti a felhasználókat az API-k biztonságossá tételében is.

Az OAuth 2.0 implicit engedélyezési folyamat támogatja a jogkivonat végpontokat, amelyeket az ügyfél meghívhat, hogy azonosítótokent kapjon.

Egyéni tanúsítványok

Az alapértelmezett tanúsítvány használata az OAuth 2.0 implicit engedélyezési folyamathoz elavult. Az OAuth 2.0 végpont használata esetén egyéni tanúsítványra van szükség. Az egyéni tanúsítvány feltöltéséhez használja a Power Platform felügyeleti központot. Az egyéni tanúsítvány feltöltése után a következő módon kell módosítania a webhelybeállításokat:

  1. Menjen a  portálbeállításokhoz  és válassza a  Webhelybeállítások elemet.

  2. Új beállítás létrehozásához válassza az  Új lehetőséget.

  3. Létező beállítás szerkesztéséhez válassza a rácson felsorolt webhelybeállítás lehetőséget.

  4. Adja meg az értékeket:

    • Név: CustomCertificates/ImplicitGrantflow
    • Webhely: A társítani kívánt webhely
    • Érték: Másolja le a feltöltött egyéni tanúsítvány ujjlenyomatát az Egyéni tanúsítvány kezelése képernyőről, és illessze be ide. Az érték jelzi, hogy az implicit engedélyezési folyamathoz mely tanúsítványt kell használni.
  5. Válassza a  Mentés és bezárás lehetőséget. Új webhelybeállítások általános menüje megadott értékekkel.

Tokenvégpont részletei

Úgy is kaphat tokent, ha kérést küld a /tokenvégpontnak. A tokenvégpont URL-címe: <portal_url>/_services/auth/token. A tokenvégpont a következő paramétereket támogatja:

Paraméter Kötelező? Leírás
client_id Nem Egy karakterlánc, amely akkor van átadva, amikor egy hívás történik a végpont hitelesítéséhez. Győződjön meg arról, hogy az ügyfél-azonosító regisztrálva van a portálon. Ellenkező esetben egy hibaüzenet jelenik meg. Az ügyfélazonosító megkéri a jogkivonatot aud és appid paraméterként is, és arra használható, hogy az ügyfelek ellenőrizzék, hogy a visszaküldött jogkivonat az ő alkalmazásaikhoz tartozik-e.
Maximális hossz 36 karakter. Csak alfanumerikus karakterek és kötőjel támogatottak.
redirect_uri Nem A portál URL-címe, ahol a hitelesítési válaszok küldése és fogadása történhet. Regisztrálni kell a híváshoz használt adott client_id azonosítóhoz, és a regisztrálttal pontosan megegyező érték kell legyen.
állapot Nem A kérésben szereplő érték, amely szintén vissza lesz küldve a jogkivonatválaszban. Ez a karakterlánc bármit tartalmazhat. Általában véletlenszerűen előállított és egyedi értéket használnak, így megakadályozhatók az oldalakon keresztüli hamisítáos támadások
Maximális hossz 20 karakter.
nonce Nem Egy karakterlánc-érték, amelyet az ügyfél küld, amely szerepel az eredményül kapott azonosító tokenben igénylésként. Az ügyfél majd ellenőrizheti ezt az értéket a tokenismétléses támadások elhárítása érdekében. Maximális hossz 20 karakter.
response_type No Ez a paraméter a tokent csak értékként támogatja, lehetővé téve, hogy az alkalmazás azonnal kapjon egy hozzáférési jogkivonatot a hitelesítési végponttól, anélkül, hogy a második kérelmet küldene a hitelesítési végpontra.

Megjegyzés

Annak ellenére, hogy a client_id, redirect_uri, state, és a nonce paraméterek nem kötelezők, javasoljuk ezek használatát az integrációk biztonsága érdekében.

Sikeres válasz

A tokenvégpont értéket a state és expires_in értékeket válasz a fejlécként tokenként küldi vissza az űrlap törzsében.

Hibaválasz

A hiba a tokenvégponttól JSON-dokumentumként érkezik vissza az alábbi értékekkel:

  • Error ID: A szinkronizálási hiba egyedi azonosítója.
  • Hibaüzenet: Egy adott hibaüzenet, amely segít azonosítani hitelesítési hiba okát.
  • Correlation ID: Egy GUID, amely hibakereséséi célokat szolgál. A diagnosztikai naplózás engedélyezésekor az összefüggésazonosító megtalálható a kiszolgáló hibanaplóiban.
  • Időpecsét A hiba létrejöttének dátuma és időpontja.

A hibaüzenet jelenik meg a bejelentkezett felhasználó alapértelmezett nyelvén jelenik meg. Ha a felhasználó nincs bejelentkezve, egy bejelentkezési oldal jelenik meg a felhasználónak a bejelentkezéshez. Például egy hibaválaszt a következőképpen néz ki:

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

Végpontadatok hitelesítése

Megjegyzés

A végpont engedélyezése elavult. Használjon jogkivonat-végpont POST-kérést az azonosító jogkivonat beszerzéséhez.]

A végpontok hitelesítésére szolgáló URL-cím: <portal_url>/_services/auth/authorize. A végpont hitelesítése a következő paramétereket támogatja:

Paraméter Kötelező? Leírás
client_id Igen Egy karakterlánc, amely akkor van átadva, amikor egy hívás történik a végpont hitelesítéséhez. Győződjön meg arról, hogy az ügyfél-azonosító regisztrálva van a portálon. Ellenkező esetben egy hibaüzenet jelenik meg. Az ügyfélazonosító megkéri a jogkivonatot aud és appid paraméterként is, és arra használható, hogy az ügyfelek ellenőrizzék, hogy a visszaküldött jogkivonat az ő alkalmazásaikhoz tartozik-e.
Maximális hossz 36 karakter. Csak alfanumerikus karakterek és kötőjelek támogatottak.
redirect_uri Igen A portál URL-címe, ahol a hitelesítési válaszok küldése és fogadása történhet. Regisztrálni kell a híváshoz használt adott client_id azonosítóhoz, és a regisztrálttal pontosan megegyező érték kell legyen.
állapot Nem A kérésben szereplő érték, amely szintén vissza lesz küldve a jogkivonatválaszban. Ez a karakterlánc bármit tartalmazhat. Általában véletlenszerűen előállított és egyedi értéket használnak, így megakadályozhatók az oldalakon keresztüli hamisítáos támadások
Maximális hossz 20 karakter.
nonce Nem Egy karakterlánc-érték, amelyet az ügyfél küld, amely szerepel az eredményül kapott azonosító tokenben igénylésként. Az ügyfél majd ellenőrizheti ezt az értéket a tokenismétléses támadások elhárítása érdekében. Maximális hossz 20 karakter.
response_type No Ez a paraméter a tokent csak értékként támogatja, ami lehetővé teszi, hogy az alkalmazás azonnal kapjon egy hozzáférési jogkivonatot a hitelesítési végponttól, anélkül, hogy a második kérelmet küldene a hitelesítési végpontra.

Sikeres válasz

A hitelesítési végpont a következő értékeket küldi vissza válasz URL-ben egy töredékként:

  • token: A token egy JSON Web Tokenként (JWT) lesz visszaküldve, amelyet a portál a privát kulcsával digitálisan aláírt.
  • állapot: Ha egy állapot paraméter szerepel a kérelemben, ugyanaz az érték kell megjelenjen a válaszban. Az alkalmazásnak ellenőriznie kell, a kérés és a válasz állapotértékei megegyeznek-e.
  • expires_in: az token érvényességének időtartama (másodpercben).

Például egy sikeres választ a következőképpen néz ki:

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

Hibaválasz

A hiba a hitelesítési végponttól JSON-dokumentumként érkezik vissza az alábbi értékekkel:

  • Error ID: A szinkronizálási hiba egyedi azonosítója.
  • Hibaüzenet: Egy adott hibaüzenet, amely segít azonosítani hitelesítési hiba okát.
  • Correlation ID: Egy GUID, amely hibakereséséi célokat szolgál. A diagnosztikai naplózás engedélyezésekor az összefüggésazonosító megtalálható a kiszolgáló hibanaplóiban.
  • Időpecsét A hiba létrejöttének dátuma és időpontja.

A hibaüzenet jelenik meg a bejelentkezett felhasználó alapértelmezett nyelvén jelenik meg. Ha a felhasználó nincs bejelentkezve, a bejelentkezési oldal jelenik meg a felhasználónak a bejelentkezéshez. Például egy hibaválaszt a következőképpen néz ki:

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

Azonosítótoken ellenőrzése

Egy azonosító jogkivonat fogadása nem elegendő a felhasználó hitelesítéséhez, hitelesíteni kell a jogkivonat aláírását is, és ellenőrizni a jogkivonat igényléseit is az alkalmazás követelményei alapján. A nyilvános tokenvégpont biztosítja portál, a token aláírásánek érvényesítéséhez használható nyilvános kulcs át. A nyilvános tokenvégpont URL-címe: <portal_url>/_services/auth/publickey.

Az implicit engedélyezési folyamat be- és kikapcsolása

Alapértelmezés szerint implicit engedélyezési folyamat be van kapcsolva. Ha ki szeretné kapcsolni az implicit engedélyezési folyamatot, a Connector/ImplicitGrantFlowEnabled oldalbeállítás értékét állítsa Hamis értékre.

Ha ez a webhelybeállítás nem érhető el portálján, hozzon létre egy új webhelybeállítást a megfelelő értékkel.

Token érvényességének konfigurálása

Alapértelmezés szerint a token érvényessége 15 percig. Ha módosítani szeretné a token érvényességi idejét, állítsa be az ImplicitGrantFlow/TokenExpirationTime oldalbeállítást a kívánt értékre. Az érték másodpercben kell megadni. A maximális érték 1 óra lehet, a minimális érték 1 perc lehet. Ha helytelen értéket ad meg (például alfanumerikus karaktereket), akkor az alapértelmezett 15 perces érték lesz használva. Ha a maximumértéknél nagyobb vagy a minimumértéknél kisebb értéket ad meg, a maximális és minimális értékek lesznek alapértelmezés szerint használva.

Például, ha 30 percre szeretné beállítani a Token érvényességét, állítsa a ImplicitGrantFlow/TokenExpirationTime oldalbeállítást 1800-ra. Például, ha 1 órára szeretné beállítani a Token érvényességét, állítsa a ImplicitGrantFlow/TokenExpirationTime oldalbeállítást 3600-ra.

Ügyfélazonosító regisztrálása az implicit engedélyezési folyamathoz

Az ügyfél-azonosító regisztrálnia kell azon portálon, amelyhez a folyamat engedélyezve van. Ügyfél-azonosító regisztrálásához, létre kell hoznia a következő oldalbeállításokat:

Webhelybeállítás Value
ImplicitGrantFlow/RegisteredClientId Az érvényes ügyfélazonosító értékek, amelyek a portálon engedélyezettek. Az értékek pontosvesszővel kell elválasztani és alfanumerikus karaktereket és kötőjelet tartalmazhatnak. Maximális hossz 36 karakter.
ImplicitGrantFlow/{ClientId}/RedirectUri Az érvényes átirányítási URI-címek, amely engedélyezve van egy adott ügyfélazonosítóhoz. Az értékeket pontosvesszővel kell elválasztani. A megadott URL-címnek portál érvényes weboldalának kell lennie.

Mintakód

A következő mintakód segítségével megkezdheti az Oauth 2.0 implicit engedélyezés használatát a Power Apps portálok API-k esetében.

Portál Oauth-token használata külső webes API-val

Ez a példa egy ASP.NET-alapú projekt, amely a Power Apps-portálok által kiadott azonosítótoken ellenőrzésére szolgál. A teljes mintapélda itt található: Portál Oauth-token használata külső webes API eseténl.

Tokenvégpont mintapélda

Ez a példa azt mutatja be, hogyan lehet a getAuthenticationToken függvénnyel beolvasni egy azonosító tokent a Power Apps-portálokról a tokenvégpont használatával. A mintapélda itt található: Tokenvégpont mintapélda.

Megjegyzés

Megosztja velünk a dokumentációja nyelvi preferenciáit? Rövid felmérés elvégzése. (ne feledje, hogy ez a felmérés angol nyelvű)

A felmérés elvégzése körülbelül hét percet vesz igénybe. Semmilyen személyes adatot nem gyűjtünk (adatvédelmi nyilatkozat).