Share via


Felhasználói regisztráció és termék-előfizetés delegálása

A KÖVETKEZŐKRE VONATKOZIK: Fejlesztő | Alapszintű | Standard | Prémium

A delegálás lehetővé teszi, hogy a webhely birtokolja a felhasználói adatokat, és egyéni ellenőrzést végezzen. A delegálással a fejlesztői bejelentkezést/regisztrációt (és a kapcsolódó fiókkezelési műveleteket) és a termék-előfizetést a meglévő webhely használatával kezelheti a fejlesztői portál beépített funkciói helyett.

Fejlesztői bejelentkezés és regisztráció delegálása

Ha a fejlesztői bejelentkezési, regisztrációs és fejlesztői fiókkezelési lehetőségeket a meglévő webhelyre szeretné delegálni, hozzon létre egy speciális delegálási végpontot a webhelyen. Ez a különleges delegálás szolgál belépési pontként az API Management fejlesztői portálról kezdeményezett minden bejelentkezési/regisztrációs és kapcsolódó kéréshez.

A végső munkafolyamat a következő lesz:

  1. A fejlesztő a bejelentkezési vagy regisztrációs hivatkozásra vagy egy fiókkezelési hivatkozásra kattint az API Management fejlesztői portálján.
  2. A böngésző átirányítja a delegálási végpontra.
  3. A delegálási végpont cserébe átirányítja a felhasználót a bejelentkezési/regisztrációs vagy fiókkezelési felhasználói felülettel, vagy megjeleníti a felhasználót.
  4. A művelet befejeződése után a rendszer visszairányítja a felhasználót az API Management fejlesztői portálra a bal oldalon.

Az API Management beállítása a kérelmek delegálási végponton keresztüli átirányításához

  1. Az Azure Portalon keressen fejlesztői portált az API Management-erőforrásban.

  2. Kattintson a Delegálás elemre.

  3. A delegált bejelentkezés > regisztráció engedélyezéséhez kattintson a jelölőnégyzetre.

    Képernyőkép a bejelentkezés és a regisztráció delegálásáról a portálon.

  4. Döntse el a speciális delegálási végpont URL-címét, és írja be a Delegálás végpontJÁNAK URL-mezőjébe .

  5. A Delegálás érvényesítési kulcs mezőjében vagy:

    • Adjon meg egy titkos kulcsot, amely egy, a kérés API Managementből származó ellenőrzéséhez megadott aláírás kiszámításához használható.
    • Kattintson az API Management Létrehozás gombjára egy véletlenszerű kulcs létrehozásához.
  6. Kattintson a Mentés gombra.

A delegálási végpont létrehozása

Ajánlott lépések új delegálási végpont létrehozásához a webhelyen való implementáláshoz:

  1. A művelettől függően a következő űrlapon kaphat kérést:

    http://www.yourwebsite.com/apimdelegation?operation={operation}& returnUrl={A forrásoldal URL-címe}&só={string}&sig={string}

    -Vagy-

    http://www.yourwebsite.com/apimdelegation?operation={operation}& userId={fiók felhasználói azonosítója}&só={string}&sig={string}

    Lekérdezési paraméterek:

    Paraméter Leírás
    Művelet Azonosítja a delegálási kérelem típusát. Elérhető műveletek: SignIn, SignUp, ChangePassword, ChangeProfile, CloseAccount, SignOut.
    returnUrl Bejelentkezéskor vagy regisztrációkor annak az URL-címnek az URL-címe, amelyre a felhasználó egy bejelentkezési vagy regisztrációs hivatkozásra kattintott.
    Userid ChangePassword, ChangeProfile, CloseAccount és SignOut esetén a kezelni kívánt fiók felhasználói azonosítója.
    Egy speciális sósztring, amely biztonsági kivonat kiszámítására szolgál.
    Sig A saját számítási kivonat összehasonlításához használt számított biztonsági kivonat.
  2. Ellenőrizze, hogy a kérés az Azure API Managementtől származik-e (nem kötelező, de a biztonság szempontjából erősen ajánlott).

    • Egy sztring HMAC-SHA512 kivonatának kiszámítása a returnUrl (vagy UserId) és a lekérdezési paraméterek alapján. Ellenőrizze például a példakódot.

      Bejelentkezés és regisztráció esetén:

      HMAC(salt + '\n' + returnUrl)
      

      ChangePassword, ChangeProfile, CloseAccount és SignOut esetén:

      HMAC(salt + '\n' + userId)
      
    • Hasonlítsa össze a fenti számítási kivonatot a sig lekérdezési paraméter értékével. Ha a két kivonat egyezik, lépjen tovább a következő lépésre. Ellenkező esetben tagadja meg a kérést.

  3. Ellenőrizze, hogy kapott-e egy bejelentkezési/regisztrációs vagy fiókkezelési műveletre vonatkozó kérést.

  4. A felhasználó bemutatása bejelentkezési/regisztrációs vagy fiókkezelési felhasználói felülettel.

  5. Miután elvégezte a műveletet az Ön oldalán, kezelje a felhasználót az API Managementben. Ha például a felhasználó regisztrál, hozzon létre egy megfelelő fiókot az API Managementben.

    • Hozzon létre egy felhasználót az API Management REST API-val.
    • Állítsa be a felhasználói azonosítót ugyanarra az értékre a felhasználói tárolóban, vagy egy új, könnyen nyomon követhető azonosítót.
  6. A bejelentkezés vagy a regisztráció után, amikor a felhasználó hitelesítése sikeresen megtörtént:

    • Közös hozzáférési jogkivonat kérése az API Management REST API-val.

    • Fűzze hozzá a returnUrl lekérdezési paramétert a fenti API-hívástól kapott egyszeri bejelentkezés URL-címéhez. Példa:

      https://contoso.developer.azure-api.net/signin-sso?token=<URL-encoded token>&returnUrl=%2Freturn%2Furl

    • A felhasználó átirányítása a fent létrehozott URL-címre.

Termék-előfizetés delegálása

A termék-előfizetések delegálása ugyanúgy működik, mint a felhasználói bejelentkezés/regisztráció delegálása. A végső munkafolyamat a következő lenne:

  1. A fejlesztő kiválaszt egy terméket az API Management fejlesztői portálján, és a Feliratkozás gombra kattint.
  2. A böngésző átirányítja a delegálási végpontra.
  3. A delegálási végpont végrehajtja a szükséges termék-előfizetési lépéseket, amelyeket ön tervez. Ezek közé tartozhatnak a következők:
    • Átirányítás egy másik oldalra számlázási adatok kéréséhez.
    • További kérdéseket tehet fel.
    • Az információk tárolása, és nem igényel felhasználói műveletet.

Az API Management funkció engedélyezése

A Delegálás lapon kattintson a Termék-előfizetés delegálása elemre.

A delegálási végpont létrehozása

Ajánlott lépések új delegálási végpont létrehozásához a webhelyen való implementáláshoz:

  1. A művelettől függően a következő űrlapon kaphat kérést.

    http://www.yourwebsite.com/apimdelegation?operation={operation}&p roductId={product to subscribe to}&userId={user making request}&salt={string}&sig={string}

    -Vagy-

    http://www.yourwebsite.com/apimdelegation?operation={operation}& subscriptionId={kezelendő előfizetés}&só={sztring}&sig={string}

    Lekérdezési paraméterek:

    Paraméter Leírás
    Művelet Azonosítja a delegálási kérelem típusát. Az érvényes termék-előfizetési kérelmek beállításai a következők:
    • Feliratkozás: a felhasználónak egy megadott azonosítóval rendelkező termékre való feliratkozásra vonatkozó kérés (lásd alább).
    • Leiratkozás: egy felhasználó termékről való leiratkozására irányuló kérés
    Termelés A Feliratkozáskor a felhasználó által kért termékazonosító.
    Userid A feliratkozáskor a kérelmező felhasználó azonosítója.
    subscriptionId Leiratkozás után a termék-előfizetés azonosítója.
    Egy speciális sósztring, amely biztonsági kivonat kiszámítására szolgál.
    Sig A saját számítási kivonat összehasonlításához használt számított biztonsági kivonat.
  2. Ellenőrizze, hogy a kérés az Azure API Managementtől érkezik-e (nem kötelező, de a biztonság szempontjából erősen ajánlott)

    • Egy sztring HMAC-SHA512-jének kiszámítása a productId és a userId (vagy subscriptionId) és a lekérdezési paraméterek alapján:

      Előfizetés esetén:

      HMAC(salt + '\n' + productId + '\n' + userId)
      

      Leiratkozás esetén:

      HMAC(salt + '\n' + subscriptionId)
      
    • Hasonlítsa össze a fenti számítási kivonatot a sig lekérdezési paraméter értékével. Ha a két kivonat egyezik, lépjen tovább a következő lépésre. Ellenkező esetben tagadja meg a kérést.

  3. A termék-előfizetés feldolgozása a műveletben kért művelettípus alapján (például számlázás, további kérdések stb.).

  4. Miután elvégezte a műveletet az Ön oldalán, kezelje az előfizetést az API Managementben. Előfizetheti például a felhasználót az API Management termékre a REST API előfizetésekhez való meghívásával.

Mintakód

Ezek a kódminták bemutatják, hogyan hozhatja létre a lekérdezési paraméter kivonatát a returnUrl felhasználói bejelentkezés vagy a regisztráció delegálása során. Annak returnUrl a lapnak az URL-címe, amelyre a felhasználó a bejelentkezési vagy regisztrációs hivatkozásra kattintott.

  • Használja az Azure Portal Delegálás képernyőjén beállított delegálási érvényesítési kulcsot.
  • Hozzon létre egy HMAC-t, amely ellenőrzi az aláírást, és igazolja az átadott returnUrl érvényességét.

Kis módosítással ugyanazt a kódot használhatja más kivonatok kiszámításához, például termék-előfizetéssel és userId delegálássalproductId.

C#-kód a returnUrl kivonatának létrehozásához

using System.Security.Cryptography;

string key = "delegation validation key";
string returnUrl = "returnUrl query parameter";
string salt = "salt query parameter";
string signature;
using (var encoder = new HMACSHA512(Convert.FromBase64String(key)))
{
    signature = Convert.ToBase64String(encoder.ComputeHash(Encoding.UTF8.GetBytes(salt + "\n" + returnUrl)));
    // change to (salt + "\n" + productId + "\n" + userId) when delegating product subscription
    // compare signature to sig query parameter
}

NodeJS-kód a returnUrl kivonatának létrehozásához

var crypto = require('crypto');

var key = 'delegation validation key'; 
var returnUrl = 'returnUrl query parameter';
var salt = 'salt query parameter';

var hmac = crypto.createHmac('sha512', new Buffer(key, 'base64'));
var digest = hmac.update(salt + '\n' + returnUrl).digest();
// change to (salt + "\n" + productId + "\n" + userId) when delegating product subscription
// compare signature to sig query parameter

var signature = digest.toString('base64');

Fontos

A delegálási módosítások érvénybe lépéséhez újra közzé kell tennie a fejlesztői portált .

Következő lépések