Comment personnaliser et valider le message Json pour le jeton d'accès de type Grant dans Apigee

Présentation
Ce cas d'utilisation décrit comment personnaliser et valider le message JSON pour les informations d'identification du client GrantType – AccessToken.
Qu'est-ce que les informations d'identification du client GrantType?
Client POST est un appel API à Apigee avec ID client et secret client pour récupérer le jeton d'accès à partir de l'application développeur enregistrée. En outre, le paramètre de requête grant_type = client_credentials doit être transmis dans la requête. Mais dans ce blog, nous allons envoyer clientId / secret et grantType dans la charge utile json.
Diagramme de séquence
- L'application client envoie une requête Json à Apigee edge pour récupérer le jeton d'accès. La requête contient clientId, clientSecret et grantType.
- Données de la requête validées par rapport à la spécification OpenAPI (Swagger).
- Si la validation échoue, la réponse d'erreur est envoyée.
- Authentification de périphérie autre clientId et clientSecret.
- Si l'authentification échoue, envoie réponse d'erreur.
- Else edge renvoie la réponse de succès json personnalisée.
Applications requises pour travailler sur ce cas d'utilisation
- Postman ou toute application cliente
- APIGEE Edge
Définition du problème
Ce document aide à résoudre des problèmes techniques lors de la configuration de clientCredential grantType
Public visé
Personnes ayant des connaissances (développeur / administrateur) dans APIGEE EDGE.
Spécification Open API
Créez une spécification OpenAPI pour définir la structure du jeton d'accès de type grant API RESTful. Définissez client_id, client_secret et grant_Type comme élément de requête requis. access_token, published_at et expires_in sont des éléments de réponse de réussite.
Proxy Configuration
Créez un proxy sans cible en utilisant la spécification API ouverte
Étape 1: Développer-> Proxy-> Pas de cible- > Cliquez sur Utiliser les spécifications OpenAPI Étape 2: définir le nom, le chemin de base et la description Étape 3: Sélectionnez la stratégie comme PassThrough
Configurations de stratégie
OpenAPI Spec validation policy
OAS Validation policy pour valider le message json entrant par rapport à la spécification API ouverte.
Ajoutez la politique de validation de spécification OpenAPI et importez la spécification d'API ouverte (Swagger) pour valider le message d'entrée.
Extract Variables policy
Ajouter une stratégie de variable d'extraction pour définir la variable de flux clientId / clientSecret / GratTypeas à partir du message d'entrée.
Ci-dessous, l'extrait de code pour extraire la variable de flux,
|
JavaScriptPolicy
Ajoutez une stratégie JavaScript pour définir clientId / clientSecret sur formparam et grantType sur queryparam. Parce que par défaut, la politique OAuth2 lit clientCredential à partir de.
var username = context.getVariable ("clientId"); var mot de passe = context.getVariable ("clientSecret"); var granttype = context.getVariable ("grantType"); context.setVariable ("request.queryparam.grant_type", granttype); context.setVariable ("request.formparam.client_id", nom d'utilisateur); context.setVariable ("request.formparam.client_secret", mot de passe); |
Politique OAuth2
Ajoutez une politique Oauth2 pour générer un jeton d'accès. Cette stratégie vérifie les clientCredentails avant d'envoyer le jeton d'accès. Mettez à jour la configuration ci-dessous vers la politique oauth2,
|
Assign Message Policy
Ajoutez une politique d'affectation de message pour créer une réponse de succès JSON personnalisée. Mettez à jour l'extrait de code ci-dessous avec la stratégie,
|
Ajoutez une autre stratégie d'affectation pour gérer la réponse d'erreur JSON personnalisée. Mettez à jour l'extrait de code ci-dessous vers la stratégie,
|
Fault Rule
Ajoutez une étape DefaultFaultRule pour gérer les cas d'erreur. Il ne sera exécuté que s'il y a une exception / erreur dans le flux proxy. Reportez-vous à la stratégie de message d'affectation de réponse d'erreur pour envoyer une réponse d'erreur personnalisée.
|
Flow Design
Deploy and Test
Déployez le proxy et testez à l'aide de la collection postman.
Happy Path Scenario [19659029]
Erreur de validation Json
La politique OAS valide la demande entrante et renvoie l'erreur de validation pour le champ grant_type.
Authentification Erreur d'échec
La stratégie Oauth2 valide les informations d'identification client des utilisateurs enregistrés. Si les informations d'identification du client ne sont pas valides, l'erreur est générée.
Conclusion
Ce blog vous a montré comment personnaliser et valider le message JSON pour que les informations d'identification du client GrantType récupèrent le jeton d'accès. Pour plus d'informations sur les informations d'identification du client grantType, reportez-vous à la documentation apigee.
Lien de référence: https://docs.apigee.com/api-platform/security/oauth/oauth-20-client-credentials-grant -type
Source link