Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’APPLIQUE À : Développeur | Essentiel | Essentiel v2 | Standard | Standard v2 | Premium | Premium v2
La délégation permet à votre site web de posséder les données utilisateur et d’effectuer une validation personnalisée pour les utilisateurs du portail des développeurs. Avec la délégation, vous pouvez gérer la connexion et l’inscription aux développeurs (ainsi que les opérations de gestion des comptes associées) et l’abonnement produit à l’aide de votre site web existant, au lieu des fonctionnalités intégrées du portail des développeurs.
Délégation de la connexion et de l'inscription des développeurs
Pour déléguer les options de connexion et d'inscription des développeurs ainsi que la gestion des comptes développeurs à votre site Web existant, créez un point de terminaison de délégation spécial sur votre site. Cette délégation spéciale agit comme point d’entrée pour toute connexion/inscription et demandes associées lancées à partir du portail des développeurs Gestion des API.
Le flux de travail final se compose de ces étapes :
- Le développeur clique sur le lien de connexion ou d’inscription ou sur un lien de gestion de compte sur le portail des développeurs Gestion des API.
- Le navigateur redirige vers le point de terminaison de délégation.
- Le point de terminaison de délégation, en retour, redirige l’utilisateur vers ou présente à l’utilisateur l’interface utilisateur de connexion/inscription ou de gestion de compte.
- Une fois l'opération terminée, l'utilisateur est redirigé vers le portail développeur de gestion des API à l'endroit où il s'était arrêté.
Configurer Gestion des API pour acheminer les demandes via un endpoint de délégation
Dans le portail Azure, accédez à votre instance Gestion des API.
Dans le menu de la barre latérale, sous le portail des développeurs, sélectionnez Délégation.
Cochez la case pour activer la délégation.
Cochez la case pour activer l'authentification déléguée et l'inscription.
Choisissez l’URL de votre point de terminaison de délégation spécial et entrez-la dans le champ point de terminaison du service de délégation .
Dans clés de délégation :
- Générez la clé de validation primaire ou la clé de validation secondaire (ou les deux) à utiliser par votre service de délégation pour valider les demandes de Gestion des API. Sélectionnez les points de suspension (...) à côté de l'une ou l'autre des touches, puis sélectionnez Régénérer.
- Sélectionnez les points de suspension (...) à côté de l'une ou l'autre des touches, puis sélectionnez Copier. Copiez les clés dans un emplacement sécurisé et utilisez-les lors de la configuration de votre service de délégation.
Cliquez sur Enregistrer.
Conseil / Astuce
Vous pouvez faire pivoter et régénérer les clés de validation de délégation à tout moment. La rotation remplace la clé primaire par la clé secondaire et régénère la clé secondaire. Après avoir enregistré les clés, veillez à mettre à jour votre service de délégation pour utiliser les nouvelles clés.
Créer votre point de terminaison de délégation
Pour créer un point de terminaison de délégation à implémenter sur votre site, procédez comme suit :
Vous recevrez une requête sous la forme suivante, selon l'opération :
http://www.yourwebsite.com/apimdelegation?operation={operation}& returnUrl={URL de la page source}&salt={string}&sig={string}
-Ou-
http://www.yourwebsite.com/apimdelegation?operation={operation}& userId={ID utilisateur du compte}&salt={string}&sig={string}
Paramètres de requête :
Paramètre Descriptif opération Identifie le type de demande de délégation. Opérations disponibles : SignIn, SignUp, ChangePassword, ChangeProfile, CloseAccount, SignOut. returnUrl Sur SignIn ou SignUp, l'URL de l'endroit où l'utilisateur a cliqué sur un lien de connexion ou d'inscription. userId Sur ChangePassword, ChangeProfile, CloseAccount et SignOut, l'identifiant utilisateur du compte que vous souhaitez gérer. salt Chaîne salt spéciale utilisée pour calculer un code de hachage de sécurité. sig Code de hachage de sécurité calculé à comparer avec votre propre code de hachage calculé. Vérifiez que la demande émane bien de Gestion des API Azure (facultatif, mais fortement recommandé pour assurer la sécurité).
Calculer un hachage HMAC-SHA512 d'une chaîne en fonction des paramètres de requête returnUrl (ou UserId) et salt. Pour des exemples, consultez notre code d'exemple.
Pour SignIn et SignUp :
HMAC(salt + '\n' + returnUrl)Pour ChangePassword, ChangeProfile, CloseAccount, et SignOut :
HMAC(salt + '\n' + userId)Comparez le code de hachage calculé plus haut avec la valeur du paramètre de requête sig. Si les deux codes de hachage correspondent, passez à l’étape suivante. Sinon, rejetez la demande.
Vérifiez que vous avez bien reçu une requête pour une opération de connexion/inscription ou de gestion de compte.
Présentez à l'utilisateur une interface de connexion/inscription ou de gestion de compte.
Une fois l'opération terminée de votre côté, gérez l'utilisateur dans la gestion des API. Par exemple, si l'utilisateur s'inscrit, créez un compte correspondant pour lui dans la gestion des API.
- Créez un utilisateur avec l'API REST de gestion de Gestion des API.
- Définissez l’ID utilisateur sur la même valeur dans votre magasin d’utilisateurs ou un nouvel ID facile à suivre.
Après la connexion ou l'inscription, lorsque l'utilisateur est authentifié avec succès :
Demandez un jeton d’accès partagé via l’API REST Gestion des API.
Ajoutez un paramètre de requête returnUrl à l’URL SSO que vous reçue de l’appel d’API ci-dessus. Exemple :
https://contoso.developer.azure-api.net/signin-sso?token=<URL-encoded token>&returnUrl=%2Freturn%2FurlRedirigez l’utilisateur vers l’URL générée ci-dessus.
Délégation de l'abonnement au produit
La délégation des abonnements aux produits fonctionne de la même manière que la délégation de la connexion/inscription d’un utilisateur. Le flux de travail final se compose de ces étapes :
- Le développeur sélectionne un produit dans le portail des développeurs Gestion des API et sélectionne le bouton S’abonner .
- Le navigateur redirige vers le point de terminaison de délégation.
- Le point de terminaison de délégation effectue les étapes nécessaires pour l’abonnement au produit, que vous concevez. Ces étapes peuvent inclure :
- La redirection vers une autre page pour demander des informations de facturation.
- Poser d’autres questions.
- Le stockage des informations, sans intervention de l’utilisateur.
Activer la fonctionnalité Gestion des API
Dans la page Délégation , cochez la case pour activer la délégation, puis activez l’abonnement délégué au produit.
Créer votre point de terminaison de délégation
Pour créer un point de terminaison de délégation pour votre site, procédez comme suit :
Vous recevrez une requête sous la forme suivante, selon l'opération.
http://www.yourwebsite.com/apimdelegation?operation={operation}&productId={produit à souscrire}&userId={utilisateur faisant la demande}&salt={string}&sig={string}
-Ou-
http://www.yourwebsite.com/apimdelegation?operation={operation}& subscriptionId={abonnement à gérer}&salt={string}&sig={string}
Paramètres de requête :
Paramètre Descriptif opération Identifie le type de demande de délégation. Les options de demande d’abonnement de produit valides sont les suivantes : - Subscribe : une demande d’abonnement de l’utilisateur à un produit donné avec l’identifiant fourni (voir ci-dessous).
- Unsubscribe : demande de désabonnement de l’utilisateur pour un produit.
Productid Sur Subscribe, l’ID du produit auquel l’utilisateur a demandé l’abonnement. userId Sur Subscribe, ID de l’utilisateur qui fait la demande. subscriptionId Sur Unsubscribe, ID d’abonnement du produit. salt Chaîne salt spéciale utilisée pour calculer un code de hachage de sécurité. sig Code de hachage de sécurité calculé à comparer avec votre propre code de hachage calculé. Vérifiez que la demande provient de Gestion des API Azure (facultatif, mais fortement recommandé pour la sécurité).
Calculer un HMAC-SHA512 d'une chaîne en fonction des paramètres de requête productId et userId (ou subscriptionId) et salt :
Pour s’abonner :
HMAC(salt + '\n' + productId + '\n' + userId)Pour Unsubscribe :
HMAC(salt + '\n' + subscriptionId)Comparez le code de hachage calculé plus haut avec la valeur du paramètre de requête sig. Si les deux hachages correspondent, passez à l'étape suivante. Sinon, rejetez la demande.
Traitez l’abonnement au produit en fonction du type d’opération demandé dans operation (par exemple : facturation, autres questions, etc.).
Une fois l'opération terminée de votre côté, gérez l'abonnement dans la gestion des API. Par exemple, abonnez l'utilisateur au produit de gestion des API en appelant l'API REST pour les abonnements.
Exemple de code
Ces exemples de code montrent comment générer le hachage du paramètre de requête returnUrl lors de la délégation de la connexion ou de l'inscription de l'utilisateur. Il returnUrl s’agit de l’URL de la page dans laquelle l’utilisateur a cliqué sur le lien de connexion ou d’inscription.
- Prenez la clé de validation de délégation, que vous avez définie dans l’écran Délégation du portail Azure.
- Créez un HMAC qui valide la signature et prouve la validité des données transmises
returnUrl.
Avec une légère modification, vous pouvez utiliser le même code pour calculer d'autres hachages, par exemple productId et userId lors de la délégation d'abonnements à des produits.
Code C# pour générer le hachage de returnUrl
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
}
Code Node.js pour générer le hachage de returnUrl
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');
Important
Vous devez republier le portail des développeurs pour que les modifications apportées à la délégation prennent effet.
Contenu connexe
- En savoir plus sur le portail des développeurs
- S’authentifier à l’aide de l’ID Microsoft Entra ou de l’ID externe Microsoft Entra
- Plus de questions sur le portail des développeurs ? Trouvez des réponses dans notre FAQ.