Hozzáférés engedélyezése Azure Active Directory webes alkalmazásokhoz az OAuth 2.0 kódengedélyezési folyamat használatával

Figyelmeztetés

Ez a tartalom a régebbi Azure AD 1.0-s verziójú végponthoz készült. Használja a Microsoft Identitásplatform új projektekhez.

Megjegyzés

Ha nem mondja meg a kiszolgálónak, hogy milyen erőforrást szeretne meghívni, akkor a kiszolgáló nem aktiválja az adott erőforrás feltételes hozzáférési szabályzatát. Az MFA-eseményindító használatához tehát egy erőforrást kell felvennie az URL-címbe.

Az Azure Active Directory (Azure AD) az OAuth 2.0 használatával teszi lehetővé a webalkalmazásokhoz és webes API-khez való hozzáférés engedélyezését az Azure AD-bérlőben. Ez az útmutató nyelvfüggetlen, és ismerteti, hogyan küldhet és fogadhat HTTP-üzeneteket anélkül, hogy bármelyik nyílt forráskódú kódtárat használjuk.

Az OAuth 2.0 engedélyezési kódfolyamatát az OAuth 2.0 specifikációjának 4.1. szakasza ismerteti. Hitelesítést és engedélyezést végez a legtöbb alkalmazástípusban, beleértve a webalkalmazásokat és a natívan telepített alkalmazásokat.

Alkalmazás regisztrálása az AD-bérlőben

Először regisztrálja az alkalmazást az Azure Active Directory-bérlőben (Azure AD). Ekkor kapni fog egy alkalmazásazonosítót az alkalmazáshoz, amely immár képes jogkivonatokat fogadni.

  1. Jelentkezzen be az Azure Portalra.

  2. Válassza ki a Azure AD bérlőt úgy, hogy kiválasztja a fiókját a lap jobb felső sarkában, majd kiválasztja a Címtárváltás navigációs sávot, majd kiválasztja a megfelelő bérlőt.

    • Hagyja ki ezt a lépést, ha csak egy Azure AD bérlő van a fiókjában, vagy ha már kiválasztotta a megfelelő Azure AD bérlőt.
  3. A Azure Portal keresse meg és válassza ki az Azure Active Directoryt.

  4. Az Azure Active Directory bal oldali menüjében válassza az Alkalmazásregisztrációk, majd az Új regisztráció lehetőséget.

  5. Kövesse az utasításokat az új alkalmazás létrehozásához. Nem számít, hogy webalkalmazásról vagy nyilvános ügyfélalkalmazásról (mobil & asztali) van-e szó ebben az oktatóanyagban, de ha konkrét példákat szeretne a webalkalmazásokhoz vagy a nyilvános ügyfélalkalmazásokhoz, tekintse meg rövid útmutatóinkat.

    • A név az alkalmazás neve, amely a végfelhasználók számára ad leírást az alkalmazásról.
    • A Támogatott fióktípusok területen válassza a Fiókok lehetőséget bármely szervezeti címtárban és személyes Microsoft-fiókban.
    • Adja meg az átirányítási URI-t. Webalkalmazások esetén ez az alkalmazás alap URL-címe, ahová a felhasználók bejelentkezhetnek. Például: http://localhost:12345. Nyilvános ügyfél (mobil & asztali) esetén Azure AD tokenválaszok visszaadására használja. Adja meg az alkalmazáshoz tartozó értéket. Például: http://MyFirstAADApp.
  6. A regisztráció befejezése után Azure AD hozzárendeli az alkalmazást egy egyedi ügyfélazonosítóhoz (az alkalmazásazonosítóhoz). Ezt az értéket a következő szakaszokban kell megadnia, ezért másolja ki az alkalmazásoldalról.

  7. Ha meg szeretné keresni az alkalmazást a Azure Portal, válassza a Alkalmazásregisztrációk lehetőséget, majd válassza az Összes alkalmazás megtekintése lehetőséget.

OAuth 2.0 engedélyezési folyamat

Magas szinten az alkalmazás teljes engedélyezési folyamata a következőképpen néz ki:

OAuth-hitelesítés kódfolyamata

Engedélyezési kód kérése

Az engedélyezési kód folyamata azzal kezdődik, hogy az ügyfél a végponthoz irányítja a felhasználót /authorize . Ebben a kérelemben az ügyfél jelzi a felhasználótól beszerezni kívánt engedélyeket. A bérlő OAuth 2.0 engedélyezési végpontját a Azure Portal Alkalmazásregisztrációk > Végpontok elem kiválasztásával szerezheti be.

// Line breaks for legibility only

https://login.microsoftonline.com/{tenant}/oauth2/authorize?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&response_type=code
&redirect_uri=http%3A%2F%2Flocalhost%3A12345
&response_mode=query
&resource=https%3A%2F%2Fservice.contoso.com%2F
&state=12345
Paraméter Típus Description
Bérlő kötelező A {tenant} kérelem elérési útjának értéke alapján szabályozható, hogy ki jelentkezhet be az alkalmazásba. Az engedélyezett értékek például bérlőazonosítók vagy 8eaef023-2b34-4da1-9baa-8bc8c9d6a490contoso.onmicrosoft.comcommon bérlőfüggetlen jogkivonatok
client_id kötelező Az alkalmazáshoz rendelt alkalmazásazonosító, amikor regisztrálta azt a Azure AD. Ezt a Azure Portal találja. Kattintson az Azure Active Directory elemre a szolgáltatások oldalsávjában, kattintson a Alkalmazásregisztrációk elemre, és válassza ki az alkalmazást.
response_type kötelező Az engedélyezési kód folyamatának tartalmaznia code kell.
redirect_uri Ajánlott Az alkalmazás redirect_uri, ahol az alkalmazás hitelesítési válaszokat küldhet és fogadhat. Pontosan meg kell egyeznie a portálon regisztrált redirect_uris egyikével, kivéve, hogy URL-kódolásúnak kell lennie. Natív & mobilalkalmazások esetén a alapértelmezett értéket kell használnia https://login.microsoftonline.com/common/oauth2/nativeclient.
response_mode választható Megadja azt a metódust, amellyel az eredményül kapott jogkivonatot vissza kell küldeni az alkalmazásnak. queryLehet , vagy fragmentform_post. query lekérdezési sztringparaméterként biztosítja a kódot az átirányítási URI-n. Ha az implicit folyamattal kér azonosító jogkivonatot, az OpenID-specifikációban megadott módon nem használhatóquery. Ha csak a kódot kéri, használhatja querya , fragmentvagy form_posta parancsot. form_post végrehajt egy POST-ot, amely tartalmazza a kódot az átirányítási URI-nak. Az alapértelmezett érték query egy kódfolyamathoz tartozik.
állapot Ajánlott A kérésben szereplő érték, amelyet a rendszer a jogkivonat-válaszban is visszaad. A véletlenszerűen generált egyedi érték általában a helyek közötti kérelemhamisítási támadások megelőzésére szolgál. Az állapot a felhasználó állapotára vonatkozó információk kódolására is használható az alkalmazásban a hitelesítési kérés előtt, például a lapon vagy a megtekintésben.
erőforrás Ajánlott A cél webes API (biztonságos erőforrás) alkalmazásazonosítójának URI-ja. Az alkalmazásazonosító URI-jának megkereséséhez a Azure Portal kattintson az Azure Active Directory elemre, kattintson az Alkalmazásregisztrációk elemre, nyissa meg az alkalmazás Beállítások lapját, majd kattintson a Tulajdonságok elemre. Külső erőforrás is lehet, például https://graph.microsoft.com. Erre az engedélyezési vagy jogkivonat-kérelmek egyikében van szükség. Annak biztosítása érdekében, hogy kevesebb hitelesítési kérés álljon az engedélyezési kérelemben, hogy a felhasználó megkapja a hozzájárulást.
scope Figyelmen kívül hagyja V1-Azure AD alkalmazások esetén a hatóköröket statikusan kell konfigurálni a Azure Portal az Alkalmazások beállításai, Szükséges engedélyek területen.
Gyors választható Adja meg a szükséges felhasználói interakció típusát.

Az érvényes értékek a következők:

login: A felhasználónak újrahitelesítést kell kérnie.

select_account: A rendszer arra kéri a felhasználót, hogy válasszon ki egy fiókot, megszakítva az egyszeri bejelentkezést. A felhasználó kiválaszthat egy meglévő bejelentkezett fiókot, megadhatja a hitelesítő adatait egy emlékezetes fiókhoz, vagy dönthet úgy, hogy teljesen más fiókot használ.

hozzájárulás: A felhasználói hozzájárulás meg lett adva, de frissíteni kell. A felhasználónak hozzájárulást kell kérnie.

admin_consent: A rendszergazdának a szervezet összes felhasználója nevében jóváhagyást kell kérnie

login_hint választható A felhasználó bejelentkezési oldalának felhasználónév/e-mail-cím mezőjének előre kitölthető, ha előre ismeri a felhasználónevét. Az alkalmazások gyakran használják ezt a paramétert az újrahitelesítés során, miután már kinyerték a felhasználónevet egy korábbi bejelentkezésből a preferred_username jogcím használatával.
domain_hint választható Tippet ad arról a bérlőről vagy tartományról, amelyet a felhasználónak használnia kell a bejelentkezéshez. A domain_hint értéke a bérlő regisztrált tartománya. Ha a bérlőt egy helyszíni címtárba összevonták, az AAD átirányítja a megadott bérlői összevonási kiszolgálóra.
code_challenge_method Ajánlott A paraméter kódolásához code_verifiercode_challenge használt metódus. A vagy S256az plain egyik lehet. Ha nincs kizárva, code_challenge akkor a rendszer egyszerű szövegként jelenik meg, ha code_challenge szerepel benne. Az Azure AAD 1.0-s verzió támogatja a és S256a verziót isplain. További információ: PKCE RFC.
code_challenge Ajánlott Az engedélyezési kód megadásának védelmére szolgál a Code Exchange-hez (PKCE) készült proof key for Code Exchange (PKCE) segítségével natív vagy nyilvános ügyféltől. Kötelező, ha code_challenge_method szerepel benne. További információ: PKCE RFC.

Megjegyzés

Ha a felhasználó egy szervezet tagja, a szervezet rendszergazdája jóváhagyhatja vagy elutasíthatja a felhasználó nevében, vagy engedélyezheti a felhasználónak a hozzájárulást. A felhasználó csak akkor kap engedélyt a hozzájárulásra, ha a rendszergazda engedélyezi.

Ezen a ponton a felhasználónak meg kell adnia a hitelesítő adatait, és jóvá kell adnia az alkalmazás által kért engedélyeket a Azure Portal. Miután a felhasználó hitelesítette és hozzájárulást adott, Azure AD választ küld az alkalmazásnak a redirect_uri kérés címére a kóddal.

Sikeres válasz

A sikeres válasz a következőképpen nézhet ki:

GET  HTTP/1.1 302 Found
Location: http://localhost:12345/?code= AwABAAAAvPM1KaPlrEqdFSBzjqfTGBCmLdgfSTLEMPGYuNHSUYBrqqf_ZT_p5uEAEJJ_nZ3UmphWygRNy2C3jJ239gV_DBnZ2syeg95Ki-374WHUP-i3yIhv5i-7KU2CEoPXwURQp6IVYMw-DjAOzn7C3JCu5wpngXmbZKtJdWmiBzHpcO2aICJPu1KvJrDLDP20chJBXzVYJtkfjviLNNW7l7Y3ydcHDsBRKZc3GuMQanmcghXPyoDg41g8XbwPudVh7uCmUponBQpIhbuffFP_tbV8SNzsPoFz9CLpBCZagJVXeqWoYMPe2dSsPiLO9Alf_YIe5zpi-zY4C3aLw5g9at35eZTfNd0gBRpR5ojkMIcZZ6IgAA&session_state=7B29111D-C220-4263-99AB-6F6E135D75EF&state=D79E5777-702E-4260-9A62-37F75FF22CCE
Paraméter Leírás
admin_consent Az érték Igaz, ha egy rendszergazda beleegyezett egy hozzájárulási kérésbe.
code Az alkalmazás által kért engedélyezési kód. Az alkalmazás az engedélyezési kóddal hozzáférési jogkivonatot kérhet a célerőforráshoz.
session_state Az aktuális felhasználói munkamenetet azonosító egyedi érték. Ez az érték guid, de vizsgálat nélkül átlátszatlan értékként kell kezelni.
állapot Ha egy állapotparaméter szerepel a kérelemben, akkor ugyanaz az érték jelenik meg a válaszban. Az alkalmazásnak ajánlott ellenőriznie, hogy a kérés és a válasz állapotértékei azonosak-e a válasz használata előtt. Ez segít észlelni az ügyfél ellen irányuló helyek közötti kérelemhamisítási (CSRF-) támadásokat .

Hibaválasz

A hibaválaszokat is elküldheti a redirect_uri címzettnek, hogy az alkalmazás megfelelően tudja kezelni őket.

GET http://localhost:12345/?
error=access_denied
&error_description=the+user+canceled+the+authentication
Paraméter Leírás
error Az OAuth 2.0 engedélyezési keretrendszer 5.2. szakaszában definiált hibakódérték. A következő táblázat a Azure AD visszaadott hibakódokat ismerteti.
error_description A hiba részletesebb leírása. Ez az üzenet nem végfelhasználói felhasználóbarát.
állapot Az állapotérték egy véletlenszerűen generált, nem újrafelhasznált érték, amelyet a rendszer a kérelemben küld el, és a válaszban ad vissza, hogy megakadályozza a helyek közötti kérelemhamisítási (CSRF-) támadásokat.

Az engedélyezési végpont hibáinak hibakódjai

Az alábbi táblázat a hibaválasz paraméterében error visszaadható különböző hibakódokat ismerteti.

Hibakód Description Ügyfélművelet
invalid_request Protokollhiba, például hiányzó kötelező paraméter. Javítsa ki és küldje el újra a kérést. Ez egy fejlesztési hiba, amely általában a kezdeti tesztelés során jelenik meg.
unauthorized_client Az ügyfélalkalmazás nem kérhet engedélyezési kódot. Ez általában akkor fordul elő, ha az ügyfélalkalmazás nincs regisztrálva Azure AD, vagy nincs hozzáadva a felhasználó Azure AD bérlőhöz. Az alkalmazás megkérheti a felhasználót, hogy telepítse az alkalmazást, és vegye fel Azure AD.
access_denied Az erőforrás tulajdonosa megtagadta a hozzájárulást Az ügyfélalkalmazás értesítheti a felhasználót arról, hogy csak akkor folytathatja a műveletet, ha a felhasználó beleegyezik.
unsupported_response_type Az engedélyezési kiszolgáló nem támogatja a kérés választípusát. Javítsa ki és küldje el újra a kérést. Ez egy fejlesztési hiba, amely általában a kezdeti tesztelés során jelenik meg.
server_error A kiszolgáló váratlan hibát észlelt. Ismételje meg a kérést. Ezek a hibák ideiglenes feltételekből eredhetnek. Az ügyfélalkalmazás elmagyarázhatja a felhasználónak, hogy a válasza egy ideiglenes hiba miatt késik.
temporarily_unavailable A kiszolgáló átmenetileg túl elfoglalt a kérés kezeléséhez. Ismételje meg a kérést. Az ügyfélalkalmazás elmagyarázhatja a felhasználónak, hogy a válasza egy ideiglenes feltétel miatt késik.
invalid_resource A célerőforrás érvénytelen, mert nem létezik, Azure AD nem találja, vagy nincs megfelelően konfigurálva. Ez azt jelzi, hogy az erőforrás , ha létezik, nincs konfigurálva a bérlőben. Az alkalmazás megkérheti a felhasználót, hogy telepítse az alkalmazást, és vegye fel Azure AD.

Hozzáférési jogkivonat kérése az engedélyezési kóddal

Most, hogy beszerzett egy engedélyezési kódot, és a felhasználó engedélyt kapott, beválthatja a kódot egy hozzáférési jogkivonathoz a kívánt erőforráshoz, ha post kérést küld a /token végpontnak:

// Line breaks for legibility only

POST /{tenant}/oauth2/token HTTP/1.1
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
&client_id=2d4d11a2-f814-46a7-890a-274a72a7309e
&code=AwABAAAAvPM1KaPlrEqdFSBzjqfTGBCmLdgfSTLEMPGYuNHSUYBrqqf_ZT_p5uEAEJJ_nZ3UmphWygRNy2C3jJ239gV_DBnZ2syeg95Ki-374WHUP-i3yIhv5i-7KU2CEoPXwURQp6IVYMw-DjAOzn7C3JCu5wpngXmbZKtJdWmiBzHpcO2aICJPu1KvJrDLDP20chJBXzVYJtkfjviLNNW7l7Y3ydcHDsBRKZc3GuMQanmcghXPyoDg41g8XbwPudVh7uCmUponBQpIhbuffFP_tbV8SNzsPoFz9CLpBCZagJVXeqWoYMPe2dSsPiLO9Alf_YIe5zpi-zY4C3aLw5g9at35eZTfNd0gBRpR5ojkMIcZZ6IgAA
&redirect_uri=https%3A%2F%2Flocalhost%3A12345
&resource=https%3A%2F%2Fservice.contoso.com%2F
&client_secret=p@ssw0rd

//NOTE: client_secret only required for web apps
Paraméter Típus Description
Bérlő kötelező A {tenant} kérelem elérési útjának értéke alapján szabályozható, hogy ki jelentkezhet be az alkalmazásba. Az engedélyezett értékek például bérlőazonosítók vagy 8eaef023-2b34-4da1-9baa-8bc8c9d6a490contoso.onmicrosoft.comcommon bérlőfüggetlen jogkivonatok
client_id kötelező Az alkalmazáshoz rendelt alkalmazásazonosító, amikor regisztrálta az Azure AD. Ezt a Azure Portal találja. Az alkalmazásazonosító megjelenik az alkalmazásregisztráció beállításai között.
grant_type kötelező Az engedélyezési kód folyamatának kell lennie authorization_code .
code kötelező Az authorization_code előző szakaszban beszerzett
redirect_uri kötelező Az redirect_uriügyfélalkalmazásban regisztrált.
client_secret webalkalmazásokhoz szükséges, nyilvános ügyfelek számára nem engedélyezett Az alkalmazás Azure Portal a Kulcsok területen létrehozott alkalmazáskulcs. Natív alkalmazásban (nyilvános ügyfélprogramban) nem használható, mert client_secrets nem tárolhatók megbízhatóan az eszközökön. Ez olyan webalkalmazásokhoz és webes API-khoz (minden bizalmas ügyfélhez) szükséges, amelyek képesek biztonságosan tárolni a client_secret kiszolgálóoldalon. Az client_secret url-kódolásúnak kell lennie az elküldés előtt.
erőforrás Ajánlott A cél webes API (biztonságos erőforrás) alkalmazásazonosítójának URI-ja. Az alkalmazásazonosító URI-jának megkereséséhez a Azure Portal kattintson az Azure Active Directory elemre, kattintson az Alkalmazásregisztrációk elemre, nyissa meg az alkalmazás Beállítások lapját, majd kattintson a Tulajdonságok elemre. Külső erőforrás is lehet, például https://graph.microsoft.com. Erre az engedélyezési vagy jogkivonat-kérelmek egyikében van szükség. Annak biztosítása érdekében, hogy kevesebb hitelesítési kérés álljon az engedélyezési kérelemben, hogy a felhasználó megkapja a hozzájárulást. Ha az engedélyezési kérelemben és a jogkivonat-kérelemben is, az erőforrás paramétereinek egyeznie kell.
code_verifier választható Ugyanaz a code_verifier, amelyet a authorization_code beszerzéséhez használtak. Kötelező, ha a PKCE-t használták az engedélyezési kód megadására vonatkozó kérelemben. További információ: PKCE RFC

Az alkalmazásazonosító URI-jának megkereséséhez a Azure Portal kattintson az Azure Active Directory elemre, kattintson az Alkalmazásregisztrációk elemre, nyissa meg az alkalmazás Beállítások lapját, majd kattintson a Tulajdonságok elemre.

Sikeres válasz

Azure AD sikeres válasz esetén hozzáférési jogkivonatot ad vissza. Az ügyfélalkalmazásból érkező hálózati hívások és azok késésének minimalizálása érdekében az ügyfélalkalmazásnak gyorsítótáraznia kell a hozzáférési jogkivonatokat az OAuth 2.0-válaszban megadott jogkivonat-élettartamhoz. A jogkivonat élettartamának meghatározásához használja a vagy expires_on a expires_in paraméterértékeket.

Ha egy webes API-erőforrás hibakódot ad invalid_token vissza, az azt jelezheti, hogy az erőforrás megállapította, hogy a jogkivonat lejárt. Ha az ügyfél és az erőforrás óraideje eltér (más néven "időeltérés"), az erőforrás úgy tekintheti, hogy a jogkivonat lejárt, mielőtt a jogkivonat törlődne az ügyfél gyorsítótárából. Ha ez történik, törölje a jogkivonatot a gyorsítótárból, még akkor is, ha az még a számított élettartamon belül van.

A sikeres válasz a következőképpen nézhet ki:

{
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1THdqcHdBSk9NOW4tQSJ9.eyJhdWQiOiJodHRwczovL3NlcnZpY2UuY29udG9zby5jb20vIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvN2ZlODE0NDctZGE1Ny00Mzg1LWJlY2ItNmRlNTdmMjE0NzdlLyIsImlhdCI6MTM4ODQ0MDg2MywibmJmIjoxMzg4NDQwODYzLCJleHAiOjEzODg0NDQ3NjMsInZlciI6IjEuMCIsInRpZCI6IjdmZTgxNDQ3LWRhNTctNDM4NS1iZWNiLTZkZTU3ZjIxNDc3ZSIsIm9pZCI6IjY4Mzg5YWUyLTYyZmEtNGIxOC05MWZlLTUzZGQxMDlkNzRmNSIsInVwbiI6ImZyYW5rbUBjb250b3NvLmNvbSIsInVuaXF1ZV9uYW1lIjoiZnJhbmttQGNvbnRvc28uY29tIiwic3ViIjoiZGVOcUlqOUlPRTlQV0pXYkhzZnRYdDJFYWJQVmwwQ2o4UUFtZWZSTFY5OCIsImZhbWlseV9uYW1lIjoiTWlsbGVyIiwiZ2l2ZW5fbmFtZSI6IkZyYW5rIiwiYXBwaWQiOiIyZDRkMTFhMi1mODE0LTQ2YTctODkwYS0yNzRhNzJhNzMwOWUiLCJhcHBpZGFjciI6IjAiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJhY3IiOiIxIn0.JZw8jC0gptZxVC-7l5sFkdnJgP3_tRjeQEPgUn28XctVe3QqmheLZw7QVZDPCyGycDWBaqy7FLpSekET_BftDkewRhyHk9FW_KeEz0ch2c3i08NGNDbr6XYGVayNuSesYk5Aw_p3ICRlUV1bqEwk-Jkzs9EEkQg4hbefqJS6yS1HoV_2EsEhpd_wCQpxK89WPs3hLYZETRJtG5kvCCEOvSHXmDE6eTHGTnEgsIk--UlPe275Dvou4gEAwLofhLDQbMSjnlV5VLsjimNBVcSRFShoxmQwBJR_b2011Y5IuD6St5zPnzruBbZYkGNurQK63TJPWmRd3mbJsGM0mf3CUQ",
  "token_type": "Bearer",
  "expires_in": "3600",
  "expires_on": "1388444763",
  "resource": "https://service.contoso.com/",
  "refresh_token": "AwABAAAAvPM1KaPlrEqdFSBzjqfTGAMxZGUTdM0t4B4rTfgV29ghDOHRc2B-C_hHeJaJICqjZ3mY2b_YNqmf9SoAylD1PycGCB90xzZeEDg6oBzOIPfYsbDWNf621pKo2Q3GGTHYlmNfwoc-OlrxK69hkha2CF12azM_NYhgO668yfcUl4VBbiSHZyd1NVZG5QTIOcbObu3qnLutbpadZGAxqjIbMkQ2bQS09fTrjMBtDE3D6kSMIodpCecoANon9b0LATkpitimVCrl-NyfN3oyG4ZCWu18M9-vEou4Sq-1oMDzExgAf61noxzkNiaTecM-Ve5cq6wHqYQjfV9DOz4lbceuYCAA",
  "scope": "https%3A%2F%2Fgraph.microsoft.com%2Fmail.read",
  "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJhdWQiOiIyZDRkMTFhMi1mODE0LTQ2YTctODkwYS0yNzRhNzJhNzMwOWUiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83ZmU4MTQ0Ny1kYTU3LTQzODUtYmVjYi02ZGU1N2YyMTQ3N2UvIiwiaWF0IjoxMzg4NDQwODYzLCJuYmYiOjEzODg0NDA4NjMsImV4cCI6MTM4ODQ0NDc2MywidmVyIjoiMS4wIiwidGlkIjoiN2ZlODE0NDctZGE1Ny00Mzg1LWJlY2ItNmRlNTdmMjE0NzdlIiwib2lkIjoiNjgzODlhZTItNjJmYS00YjE4LTkxZmUtNTNkZDEwOWQ3NGY1IiwidXBuIjoiZnJhbmttQGNvbnRvc28uY29tIiwidW5pcXVlX25hbWUiOiJmcmFua21AY29udG9zby5jb20iLCJzdWIiOiJKV3ZZZENXUGhobHBTMVpzZjd5WVV4U2hVd3RVbTV5elBtd18talgzZkhZIiwiZmFtaWx5X25hbWUiOiJNaWxsZXIiLCJnaXZlbl9uYW1lIjoiRnJhbmsifQ."
}

Paraméter Leírás
access_token A kért hozzáférési jogkivonat. Ez egy átlátszatlan sztring – attól függ, hogy az erőforrás mit vár el, és nem az ügyfélnek szánták. Az alkalmazás ezzel a jogkivonattal hitelesítheti magát a biztonságos erőforrással, például egy webes API-val.
token_type A tokentípus értékét jelzi. Az egyetlen olyan típus, amelyet Azure AD támogat, a Bearer. További információ a Tulajdonosi jogkivonatokról: OAuth2.0 engedélyezési keretrendszer: Tulajdonosi jogkivonat-használat (RFC 6750)
expires_in Mennyi ideig érvényes a hozzáférési jogkivonat (másodpercben).
expires_on A hozzáférési jogkivonat lejáratának időpontja. A dátum az 1970-01-01T0:0:0Z (UTC) és a lejárati idő közötti másodpercek számaként jelenik meg. Ez az érték határozza meg a gyorsítótárazott jogkivonatok élettartamát.
erőforrás A webes API alkalmazásazonosítójának URI-ja (biztonságos erőforrás).
scope Az ügyfélalkalmazásnak megadott megszemélyesítési engedélyek. Az alapértelmezett engedély a következő: user_impersonation. A biztonságos erőforrás tulajdonosa további értékeket regisztrálhat a Azure AD.
refresh_token Egy OAuth 2.0 frissítési jogkivonat. Az alkalmazás ezzel a jogkivonattal további hozzáférési jogkivonatokat szerezhet be az aktuális hozzáférési jogkivonat lejárata után. A frissítési jogkivonatok hosszú élettartamúak, és hosszabb ideig használhatók az erőforrásokhoz való hozzáférés megőrzésére.
id_token Egy azonosító jogkivonatot jelképező aláíratlan JSON-webes jogkivonat (JWT). Az alkalmazás képes a base64Url dekódolni a jogkivonat szegmenseit, hogy információt kérjen a bejelentkezett felhasználóról. Az alkalmazás gyorsítótárazhatja az értékeket, és megjelenítheti őket, de nem hagyatkozhat rájuk semmilyen engedélyezési vagy biztonsági határra.

A JSON webes jogkivonatokkal kapcsolatos további információkért lásd a JWT IETF piszkozatspecifikációját. További információkért id_tokenslásd az 1.0-s verziós OpenID Connect-folyamatot.

Hibaválasz

A jogkivonat-kiállítási végpont hibái HTTP-hibakódok, mivel az ügyfél közvetlenül meghívja a jogkivonat-kiállítási végpontot. A HTTP-állapotkódon kívül a Azure AD tokenkiállítási végpont egy JSON-dokumentumot is visszaad, amely a hibát leíró objektumokat tartalmaz.

A minta hibaválasza a következőképpen nézhet ki:

{
  "error": "invalid_grant",
  "error_description": "AADSTS70002: Error validating credentials. AADSTS70008: The provided authorization code or refresh token is expired. Send a new interactive authorization request for this user and resource.\r\nTrace ID: 3939d04c-d7ba-42bf-9cb7-1e5854cdce9e\r\nCorrelation ID: a8125194-2dc8-4078-90ba-7b6592a7f231\r\nTimestamp: 2016-04-11 18:00:12Z",
  "error_codes": [
    70002,
    70008
  ],
  "timestamp": "2016-04-11 18:00:12Z",
  "trace_id": "3939d04c-d7ba-42bf-9cb7-1e5854cdce9e",
  "correlation_id": "a8125194-2dc8-4078-90ba-7b6592a7f231"
}
Paraméter Leírás
error Hibakódsztring, amely a előforduló hibák típusainak besorolására használható, és a hibákra való reagálásra használható.
error_description Egy adott hibaüzenet, amely segíthet a fejlesztőknek azonosítani a hitelesítési hiba kiváltó okát.
error_codes Az STS-specifikus hibakódok listája, amelyek segíthetnek a diagnosztikában.
időbélyeg A hiba előfordulásának időpontja.
trace_id A kérés egyedi azonosítója, amely segíthet a diagnosztikában.
correlation_id A kérés egyedi azonosítója, amely segíthet az összetevők közötti diagnosztikában.

HTTP-állapotkódok

Az alábbi táblázat felsorolja a jogkivonat-kiállítási végpont által visszaadott HTTP-állapotkódokat. Bizonyos esetekben a hibakód elegendő a válasz leírásához, de ha vannak hibák, elemeznie kell a kísérő JSON-dokumentumot, és meg kell vizsgálnia annak hibakódját.

HTTP-kód Leírás
400 Alapértelmezett HTTP-kód. A legtöbb esetben használják, és általában hibásan formázott kérés miatt használják. Javítsa ki és küldje el újra a kérést.
401 A hitelesítés sikertelen. A kérésből például hiányzik a client_secret paraméter.
403 Az engedélyezés nem sikerült. A felhasználónak például nincs engedélye az erőforrás elérésére.
500 Belső hiba történt a szolgáltatásban. Ismételje meg a kérést.

Hibakódok a jogkivonatvégpont hibáihoz

Hibakód Description Ügyfélművelet
invalid_request Protokollhiba, például hiányzó kötelező paraméter. A kérés javítása és újbóli elküldése
invalid_grant Az engedélyezési kód érvénytelen vagy lejárt. Új kérés kipróbálása a /authorize végponthoz
unauthorized_client A hitelesített ügyfél nem jogosult erre az engedélyezési engedélyezési típusra. Ez általában akkor fordul elő, ha az ügyfélalkalmazás nincs regisztrálva Azure AD, vagy nincs hozzáadva a felhasználó Azure AD bérlőhöz. Az alkalmazás megkérheti a felhasználót, hogy telepítse az alkalmazást, és vegye fel Azure AD.
invalid_client Az ügyfélhitelesítés nem sikerült. Az ügyfél hitelesítő adatai érvénytelenek. A javításhoz az alkalmazás rendszergazdája frissíti a hitelesítő adatokat.
unsupported_grant_type Az engedélyezési kiszolgáló nem támogatja az engedélyezési engedélyezési típust. Módosítsa a kérelemben a támogatási típust. Ez a hibatípus csak a fejlesztés során fordulhat elő, és a kezdeti tesztelés során észlelhető.
invalid_resource A célerőforrás érvénytelen, mert nem létezik, Azure AD nem találja, vagy nincs megfelelően konfigurálva. Ez azt jelzi, hogy az erőforrás , ha létezik, nincs konfigurálva a bérlőben. Az alkalmazás megkérheti a felhasználót, hogy telepítse az alkalmazást, és vegye fel Azure AD.
interaction_required A kérés felhasználói beavatkozást igényel. Szükség van például egy további hitelesítési lépésre. Nem interaktív kérés helyett próbálkozzon újra egy interaktív engedélyezési kérelemmel ugyanahhoz az erőforráshoz.
temporarily_unavailable A kiszolgáló átmenetileg túl elfoglalt a kérés kezeléséhez. Ismételje meg a kérést. Az ügyfélalkalmazás elmagyarázhatja a felhasználónak, hogy a válasza egy ideiglenes feltétel miatt késik.

A hozzáférési jogkivonat használata az erőforrás eléréséhez

Most, hogy sikeresen beszerezte a -t access_token, használhatja a jogkivonatot a webes API-k kéréseiben, ha beleveszi azt a Authorization fejlécbe. Az RFC 6750 specifikációja azt ismerteti, hogyan használhat tulajdonosi jogkivonatokat a HTTP-kérésekben a védett erőforrások eléréséhez.

Mintakérés

GET /data HTTP/1.1
Host: service.contoso.com
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1THdqcHdBSk9NOW4tQSJ9.eyJhdWQiOiJodHRwczovL3NlcnZpY2UuY29udG9zby5jb20vIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvN2ZlODE0NDctZGE1Ny00Mzg1LWJlY2ItNmRlNTdmMjE0NzdlLyIsImlhdCI6MTM4ODQ0MDg2MywibmJmIjoxMzg4NDQwODYzLCJleHAiOjEzODg0NDQ3NjMsInZlciI6IjEuMCIsInRpZCI6IjdmZTgxNDQ3LWRhNTctNDM4NS1iZWNiLTZkZTU3ZjIxNDc3ZSIsIm9pZCI6IjY4Mzg5YWUyLTYyZmEtNGIxOC05MWZlLTUzZGQxMDlkNzRmNSIsInVwbiI6ImZyYW5rbUBjb250b3NvLmNvbSIsInVuaXF1ZV9uYW1lIjoiZnJhbmttQGNvbnRvc28uY29tIiwic3ViIjoiZGVOcUlqOUlPRTlQV0pXYkhzZnRYdDJFYWJQVmwwQ2o4UUFtZWZSTFY5OCIsImZhbWlseV9uYW1lIjoiTWlsbGVyIiwiZ2l2ZW5fbmFtZSI6IkZyYW5rIiwiYXBwaWQiOiIyZDRkMTFhMi1mODE0LTQ2YTctODkwYS0yNzRhNzJhNzMwOWUiLCJhcHBpZGFjciI6IjAiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJhY3IiOiIxIn0.JZw8jC0gptZxVC-7l5sFkdnJgP3_tRjeQEPgUn28XctVe3QqmheLZw7QVZDPCyGycDWBaqy7FLpSekET_BftDkewRhyHk9FW_KeEz0ch2c3i08NGNDbr6XYGVayNuSesYk5Aw_p3ICRlUV1bqEwk-Jkzs9EEkQg4hbefqJS6yS1HoV_2EsEhpd_wCQpxK89WPs3hLYZETRJtG5kvCCEOvSHXmDE6eTHGTnEgsIk--UlPe275Dvou4gEAwLofhLDQbMSjnlV5VLsjimNBVcSRFShoxmQwBJR_b2011Y5IuD6St5zPnzruBbZYkGNurQK63TJPWmRd3mbJsGM0mf3CUQ

Hibaválasz

Az RFC 6750-et implementáló biztonságos erőforrások HTTP-állapotkódokat bocsátanak ki. Ha a kérelem nem tartalmazza a hitelesítési hitelesítő adatokat, vagy hiányzik a jogkivonat, a válasz tartalmaz egy fejlécet WWW-Authenticate . Ha egy kérés meghiúsul, az erőforrás-kiszolgáló a HTTP-állapotkóddal és egy hibakóddal válaszol.

Az alábbiakban egy példa látható egy sikertelen válaszra, ha az ügyfélkérés nem tartalmazza a tulajdonosi jogkivonatot:

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer authorization_uri="https://login.microsoftonline.com/contoso.com/oauth2/authorize",  error="invalid_token",  error_description="The access token is missing.",

Hibaparaméterek

Paraméter Leírás
authorization_uri Az engedélyezési kiszolgáló URI-ja (fizikai végpontja). Ez az érték keresési kulcsként is használható a kiszolgálóval kapcsolatos további információk lekéréséhez egy felderítési végpontról.

Az ügyfélnek ellenőriznie kell, hogy az engedélyezési kiszolgáló megbízható-e. Ha az erőforrást Azure AD védi, elegendő ellenőrizni, hogy az URL-cím az Azure AD által támogatott másik állomásnévvel https://login.microsoftonline.com kezdődik-e. A bérlőspecifikus erőforrásoknak mindig bérlőspecifikus engedélyezési URI-t kell visszaadnia.

error Az OAuth 2.0 engedélyezési keretrendszer 5.2. szakaszában definiált hibakódérték.
error_description A hiba részletesebb leírása. Ez az üzenet nem végfelhasználói felhasználóbarát.
resource_id Az erőforrás egyedi azonosítóját adja vissza. Az ügyfélalkalmazás ezt az azonosítót használhatja a resource paraméter értékeként, amikor jogkivonatot kér az erőforráshoz.

Fontos, hogy az ügyfélalkalmazás ellenőrizze ezt az értéket, különben egy rosszindulatú szolgáltatás jogosultságszint-emelési támadást indíthat

A támadás megelőzésének ajánlott stratégiája annak ellenőrzése, hogy az resource_id megfelel-e az elérni kívánt webes API URL-cím alapjainak. Ha például https://service.contoso.com/data a hozzáférése folyamatban van, a resource_id lehet https://service.contoso.com/. Az ügyfélalkalmazásnak el kell utasítania azokat a fájlokat resource_id , amelyek nem az alap URL-címmel kezdődnek, hacsak nincs megbízható alternatív módszer az azonosító ellenőrzésére.

Tulajdonosi séma hibakódjai

Az RFC 6750 specifikációja a következő hibákat határozza meg azon erőforrások esetében, amelyek a válaszban a WWW-Authenticate fejlécet és tulajdonosi sémát használják.

HTTP-állapotkód Hibakód Description Ügyfélművelet
400 invalid_request A kérés nem megfelelően formázott. Előfordulhat például, hogy hiányzik egy paraméter, vagy kétszer ugyanazt a paramétert használja. Javítsa ki a hibát, és próbálkozzon újra a kéréssel. Ez a hiba csak a fejlesztés során fordulhat elő, és a kezdeti tesztelés során észlelhető.
401 invalid_token A hozzáférési jogkivonat hiányzik, érvénytelen vagy visszavonva. A error_description paraméter értéke további részleteket tartalmaz. Kérjen új jogkivonatot az engedélyezési kiszolgálótól. Ha az új jogkivonat sikertelen, váratlan hiba történt. Küldjön egy hibaüzenetet a felhasználónak, és próbálkozzon újra véletlenszerű késések után.
403 insufficient_scope A hozzáférési jogkivonat nem tartalmazza az erőforrás eléréséhez szükséges megszemélyesítési engedélyeket. Küldjön egy új engedélyezési kérést az engedélyezési végpontnak. Ha a válasz tartalmazza a hatókörparamétert, használja a hatókör értékét az erőforrásra irányuló kérelemben.
403 insufficient_access A jogkivonat tárgya nem rendelkezik az erőforrás eléréséhez szükséges engedélyekkel. Kérje meg a felhasználót, hogy használjon másik fiókot, vagy kérjen engedélyeket a megadott erőforráshoz.

A hozzáférési jogkivonatok frissítése

A hozzáférési jogkivonatok rövid élettartamúak, és a lejáratuk után frissíteni kell őket, hogy továbbra is hozzáférjenek az erőforrásokhoz. A frissítéséhez access_token küldjön egy másik POST kérést a /token végpontnak, de ezúttal a helyett adja meg a refresh_token parancsot code. A frissítési jogkivonatok minden olyan erőforrásra érvényesek, amelyhez az ügyfél már engedélyt kapott a hozzáféréshez – így a kérelemre resource=https://graph.microsoft.com kiadott frissítési jogkivonatok segítségével új hozzáférési jogkivonatot kérhet a számára resource=https://contoso.com/api.

A frissítési jogkivonatok nem rendelkeznek megadott élettartamokkal. A frissítési jogkivonatok élettartama általában viszonylag hosszú. Bizonyos esetekben azonban a frissítési jogkivonatok lejárnak, visszavonják, vagy nem rendelkeznek megfelelő jogosultságokkal a kívánt művelethez. Az alkalmazásnak megfelelően kell számítania és kezelnie kell a jogkivonat-kiállítási végpont által visszaadott hibákat.

Ha frissítési jogkivonattal kapcsolatos hibaüzenetet kap, elvetheti az aktuális frissítési jogkivonatot, és új engedélyezési kódot vagy hozzáférési jogkivonatot kérhet. Különösen akkor, ha frissítési jogkivonatot használ az engedélyezési kód engedélyezési folyamatában, ha a vagy invalid_grant hibakóddal rendelkező interaction_required választ kapja, elvetheti a frissítési jogkivonatot, és új engedélyezési kódot kérhet.

A bérlőspecifikus végpontra irányuló mintakérés (a közös végpontot is használhatja) egy új hozzáférési jogkivonat frissítési jogkivonat használatával történő lekéréséhez a következőképpen néz ki:

// Line breaks for legibility only

POST /{tenant}/oauth2/token HTTP/1.1
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&refresh_token=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq...
&grant_type=refresh_token
&resource=https%3A%2F%2Fservice.contoso.com%2F
&client_secret=JqQX2PNo9bpM0uEihUPzyrh    // NOTE: Only required for web apps

Sikeres válasz

A sikeres jogkivonat-válasz a következőképpen fog kinézni:

{
  "token_type": "Bearer",
  "expires_in": "3600",
  "expires_on": "1460404526",
  "resource": "https://service.contoso.com/",
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1THdqcHdBSk9NOW4tQSJ9.eyJhdWQiOiJodHRwczovL3NlcnZpY2UuY29udG9zby5jb20vIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvN2ZlODE0NDctZGE1Ny00Mzg1LWJlY2ItNmRlNTdmMjE0NzdlLyIsImlhdCI6MTM4ODQ0MDg2MywibmJmIjoxMzg4NDQwODYzLCJleHAiOjEzODg0NDQ3NjMsInZlciI6IjEuMCIsInRpZCI6IjdmZTgxNDQ3LWRhNTctNDM4NS1iZWNiLTZkZTU3ZjIxNDc3ZSIsIm9pZCI6IjY4Mzg5YWUyLTYyZmEtNGIxOC05MWZlLTUzZGQxMDlkNzRmNSIsInVwbiI6ImZyYW5rbUBjb250b3NvLmNvbSIsInVuaXF1ZV9uYW1lIjoiZnJhbmttQGNvbnRvc28uY29tIiwic3ViIjoiZGVOcUlqOUlPRTlQV0pXYkhzZnRYdDJFYWJQVmwwQ2o4UUFtZWZSTFY5OCIsImZhbWlseV9uYW1lIjoiTWlsbGVyIiwiZ2l2ZW5fbmFtZSI6IkZyYW5rIiwiYXBwaWQiOiIyZDRkMTFhMi1mODE0LTQ2YTctODkwYS0yNzRhNzJhNzMwOWUiLCJhcHBpZGFjciI6IjAiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJhY3IiOiIxIn0.JZw8jC0gptZxVC-7l5sFkdnJgP3_tRjeQEPgUn28XctVe3QqmheLZw7QVZDPCyGycDWBaqy7FLpSekET_BftDkewRhyHk9FW_KeEz0ch2c3i08NGNDbr6XYGVayNuSesYk5Aw_p3ICRlUV1bqEwk-Jkzs9EEkQg4hbefqJS6yS1HoV_2EsEhpd_wCQpxK89WPs3hLYZETRJtG5kvCCEOvSHXmDE6eTHGTnEgsIk--UlPe275Dvou4gEAwLofhLDQbMSjnlV5VLsjimNBVcSRFShoxmQwBJR_b2011Y5IuD6St5zPnzruBbZYkGNurQK63TJPWmRd3mbJsGM0mf3CUQ",
  "refresh_token": "AwABAAAAv YNqmf9SoAylD1PycGCB90xzZeEDg6oBzOIPfYsbDWNf621pKo2Q3GGTHYlmNfwoc-OlrxK69hkha2CF12azM_NYhgO668yfcUl4VBbiSHZyd1NVZG5QTIOcbObu3qnLutbpadZGAxqjIbMkQ2bQS09fTrjMBtDE3D6kSMIodpCecoANon9b0LATkpitimVCrl PM1KaPlrEqdFSBzjqfTGAMxZGUTdM0t4B4rTfgV29ghDOHRc2B-C_hHeJaJICqjZ3mY2b_YNqmf9SoAylD1PycGCB90xzZeEDg6oBzOIPfYsbDWNf621pKo2Q3GGTHYlmNfwoc-OlrxK69hkha2CF12azM_NYhgO668yfmVCrl-NyfN3oyG4ZCWu18M9-vEou4Sq-1oMDzExgAf61noxzkNiaTecM-Ve5cq6wHqYQjfV9DOz4lbceuYCAA"
}
Paraméter Leírás
token_type A jogkivonat típusa. Az egyetlen támogatott érték a tulajdonos.
expires_in A jogkivonat hátralévő élettartama másodpercben. Egy tipikus érték 3600 (egy óra).
expires_on A jogkivonat lejáratának dátuma és időpontja. A dátum az 1970-01-01T0:0:0Z UTC és a lejárati idő közötti másodpercek számaként jelenik meg.
erőforrás Azonosítja azt a biztonságos erőforrást, amelyhez a hozzáférési jogkivonat használható.
scope A natív ügyfélalkalmazásnak megadott megszemélyesítési engedélyek. Az alapértelmezett engedély a user_impersonation. A célerőforrás tulajdonosa regisztrálhat alternatív értékeket Azure AD.
access_token A kért új hozzáférési jogkivonat.
refresh_token Egy új OAuth 2.0-refresh_token, amellyel új hozzáférési jogkivonatokat kérhet, amikor a válaszban szereplő jogkivonat lejár.

Hibaválasz

A hibaválasz-minta a következőképpen nézhet ki:

{
  "error": "invalid_resource",
  "error_description": "AADSTS50001: The application named https://foo.microsoft.com/mail.read was not found in the tenant named 295e01fc-0c56-4ac3-ac57-5d0ed568f872. This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant. You might have sent your authentication request to the wrong tenant.\r\nTrace ID: ef1f89f6-a14f-49de-9868-61bd4072f0a9\r\nCorrelation ID: b6908274-2c58-4e91-aea9-1f6b9c99347c\r\nTimestamp: 2016-04-11 18:59:01Z",
  "error_codes": [
    50001
  ],
  "timestamp": "2016-04-11 18:59:01Z",
  "trace_id": "ef1f89f6-a14f-49de-9868-61bd4072f0a9",
  "correlation_id": "b6908274-2c58-4e91-aea9-1f6b9c99347c"
}
Paraméter Leírás
error Hibakódsztring, amely a felmerülő hibák típusainak besorolására használható, és a hibákra való reagálásra használható.
error_description Egy adott hibaüzenet, amely segíthet a fejlesztőknek azonosítani a hitelesítési hiba kiváltó okát.
error_codes StS-specifikus hibakódok listája, amelyek segíthetnek a diagnosztikában.
időbélyeg A hiba előfordulásának időpontja.
trace_id A kérés egyedi azonosítója, amely segíthet a diagnosztikában.
correlation_id A kérés egyedi azonosítója, amely segíthet az összetevők közötti diagnosztikában.

A hibakódok leírásáért és az ajánlott ügyfélműveletért lásd: Hibakódok a jogkivonatvégpontok hibáihoz.

Következő lépések

A Azure AD 1.0-s verziójú végpontról, valamint a hitelesítés és engedélyezés webalkalmazásokhoz és webes API-khoz való hozzáadásáról a mintaalkalmazások című témakörben olvashat bővebben.