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:
- 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.
- A böngésző átirányítja a delegálási végpontra.
- 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.
- 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
Az Azure Portalon keressen fejlesztői portált az API Management-erőforrásban.
Kattintson a Delegálás elemre.
A delegált bejelentkezés > regisztráció engedélyezéséhez kattintson a jelölőnégyzetre.
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 .
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.
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:
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. Só 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. 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 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)
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.
Ellenőrizze, hogy kapott-e egy bejelentkezési/regisztrációs vagy fiókkezelési műveletre vonatkozó kérést.
A felhasználó bemutatása bejelentkezési/regisztrációs vagy fiókkezelési felhasználói felülettel.
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.
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:
- A fejlesztő kiválaszt egy terméket az API Management fejlesztői portálján, és a Feliratkozás gombra kattint.
- A böngésző átirányítja a delegálási végpontra.
- 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:
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. Só 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. 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 só 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.
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.).
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
- További információ a fejlesztői portálról.
- Hitelesítés Microsoft Entra-azonosítóval vagy Azure AD B2C-vel.
- További fejlesztői portállal kapcsolatos kérdések? A válaszokat a gyakori kérdések között találja.