Megosztás a következőn keresztül:


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

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

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 fejlesztői portál felhasználói számára. A delegálással a fejlesztői bejelentkezést és a 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ő lépésekből áll:

  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ületre, vagy megjeleníti azt.
  4. A művelet befejezése után a felhasználó visszairányításra kerül az API Management fejlesztői portáljára arra a helyre, ahol utoljára járt.

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 nyissa meg az API Management-példányt.

  2. Az oldalsáv menüjében, a Fejlesztői portál területen válassza a Delegálás lehetőséget.

  3. Jelölje be a jelölőnégyzetet a delegálás engedélyezéséhez.

  4. Jelölje be a jelölőnégyzetet a Delegált bejelentkezés > regisztráció engedélyezéséhez.

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

  5. Válassza ki a speciális delegálási végpont URL-címét, és írja be a Delegálási szolgáltatás végpont mezőjébe.

  6. Delegálási kulcsokban:

    • Hozza létre az elsődleges érvényesítési kulcsot vagy a másodlagos érvényesítési kulcsot (vagy mindkettőt), amelyet a delegálási szolgáltatás használ az API Management kéréseinek ellenőrzéséhez. Jelölje ki a három pontot (...) a kulcs mellett, majd válassza az Újragenerálás lehetőséget.
    • Válassza ki az "ellipszis" (...) jelet bármelyik kulcs mellett, majd válassza a Másolás lehetőséget. Másolja a kulcsokat egy biztonságos helyre, és használja őket a delegálási szolgáltatás konfigurálásakor.
  7. Válassza az Mentésgombot.

Jótanács

A delegálás érvényesítési kulcsait bármikor elforgathatja és újra létrehozhatja. A forgatás az elsődleges kulcsot a másodlagos kulcsra cseréli, és újragenerálja a másodlagos kulcsot. A kulcsok mentése után frissítse a delegálási szolgáltatást az új kulcsok használatára.

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

Ha új delegálási végpontot szeretne létrehozni a webhelyen való implementáláshoz, kövesse az alábbi lépéseket:

  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}&salt={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ó karakterlánc, 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 hashának kiszámítása a returnUrl (vagy UserId) és 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)
      

      Jelszó megváltoztatása, Profil megváltoztatása, Fiók bezárása és Kijelentkezés:

      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, akkor lépjen a következő fázisba. 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ő lépésekből áll:

  1. A fejlesztő kiválaszt egy terméket az API Management fejlesztői portálján, és kiválasztja a Feliratkozás gombot.
  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 a lépések a következők lehetnek:
    • Átirányítás egy másik oldalra számlázási adatok kéréséhez.
    • További kérdéseket lehet feltenni.
    • 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 jelölje be a delegálás engedélyezéséhez szükséges jelölőnégyzetet, majd engedélyezze a termék-előfizetés delegálását.

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

Ha új delegálási végpontot szeretne létrehozni a webhelyhez, kövesse az alábbi lépéseket:

  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ó={karakterlánc}&sig={karakterlánc}

    Lekérdezési paraméterek:

    Paraméter Leírás
    művelet Azonosítja a delegálási kérelem típusát. A termék-előfizetés érvényes kérési 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 Feliratkozáskor a felhasználó által kért termékazonosítót.
    userId A feliratkozáskor a kérelmező felhasználó azonosítója: Subscribe.
    subscriptionId Az leiratkozás gombnál a termék-előfizetés azonosítója.
    Egy speciális só karakterlánc, 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 Management szolgáltatásból származik-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 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 a felhasználót például az API Management termékre, a REST API-t hívva az előfizetésekhez.

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 a delegálás érvényesítési kulcsát, amelyet az Azure Portal Delegálás képernyőjén állított be.
  • Hozzon létre egy HMAC-t, amely ellenőrzi az aláírást, és igazolja az átadott tanúsítvány érvényességét returnUrl.

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

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
}

Node.js 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 .