DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Integration Zone»Authentification API à l’aide d’Azure AD dans IBM API Connect
    Integration Zone

    Authentification API à l’aide d’Azure AD dans IBM API Connect

    novembre 14, 2022
    Authentification API à l'aide d'Azure AD dans IBM API Connect
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Authentification API est nécessaire pour sécuriser l’accès à l’API de tout utilisateur non autorisé. Il existe plusieurs façons de sécuriser les API. OAuth la validation de jeton est utilisée pour authentifier l’utilisateur. L’une des méthodes consiste à utiliser Azure AD en tant que fournisseur OAuth pour sécuriser un appel d’API. Azure AD fournit un jeton d’authentification lorsque l’utilisateur envoie une demande à l’URL de connexion avec un valide client_id et client_secret à la connexion microsoftonline.com.

    Architecture

    Le diagramme de séquence ci-dessous montre la conception du processus d’authentification OAuth lorsqu’Azure AD est utilisé comme fournisseur OAuth pour authentifier l’accès à l’API REST implémenté dans IBM API Connect. Diagramme de séquence d'autorisation Azure AD dans IBM API Connect

    Figure 1 : Diagramme de séquence d’autorisation Azure AD dans IBM API Connect

    Le diagramme de séquence est explicite.

    Azure AD ne fournit pas d’URL d’introspection prête à l’emploi. L’URL d’introspection doit être implémentée dans API Connect. Cet article décrit les étapes de création d’un service REST d’introspection dans IBM API Connect dans le diagramme de séquence ci-dessus. Il fournit des étapes pour implémenter l’URL d’introspection dans IBM API Connect et des étapes pour utiliser l’URL d’introspection implémentée dans la configuration du fournisseur API Connect OAuth pour activer Azure AD en tant que fournisseur OAuth pour l’authentification d’API implémentée dans IBM API Connect.

    Mise en œuvre

    Voici les étapes pour configurer et configurer l’authentification du fournisseur OAuth2 :

    1. Création d’URL d’introspection

    Pour créer une configuration de fournisseur OAuth tiers dans IBM API Connect, nous avons besoin d’une URL d’introspection. Ce service REST doit introspecter le jeton d’authentification envoyé par le client et générer un jeton JWT valide si l’introspection réussit. Sinon, il doit rejeter la demande d’introspection.

    La Service REPOS est créé dans API Connect pour examiner le jeton d’autorisation fourni par l’utilisateur et valider si l’enfant correspond. S’il y a un enfant correspondant, renvoyez l’enfant en tant que jeton JWT.

    • https:///jwtvalidation

    L’API REST peut être implémentée à l’aide de l’implémentation de passerelle ci-dessous et publiée sur les passerelles respectives.

    Script de passerelle

    Figure 2 : Script de passerelle

    1.1 GatewayScript : étape 1

    Obtenez l’autorisation à partir des paramètres de requête de requête et définissez-la dans une variable de jeton. Cette variable de jeton sera utilisée dans le Gatewayscript-Step2. Définissez également la variable de jeton dans message.headers.Authorization variable.

    var apim = require('apim'); console.log("======== step1 ========="); 
    
    var token=apim.getvariable('request.parameters.token'); apim.setvariable('message.headers.Authorization', token);  
    
    context.set('token1',token);

    1.2 Invoquer

    Obtenez la clé de découverte à partir de l’URL en ligne de Microsoft pour votre ID de locataire et stockez-la dans rsa256-key. Utilisez le Get méthode.

    • https://login.microsoftonline.com//discovery/keys

    1.3 GatewayScript : étape 2

    1. Obtenez le jeton d’autorisation stocké à l’étape 1.
    2. Divisez le jeton d’autorisation du premier point (.) et stockez la partie gauche du token avant le point dans une variable.
    3. Décodez ce jeton à l’aide de l’algorithme Base64.
    4. Analysez le jeton à l’aide de l’analyseur JSON et stockez kid dans une variable.
    5. Comparez l’enfant ci-dessus avec la liste des enfants découverts dans le rsa256-key variable défini dans la sortie de l’appel d’appel de découverte précédent. S’il y a un enfant correspondant entre l’enfant symbolique et les enfants découverts, puis placez l’enfant correspondant dans un jwt_key variable.
    var apim = require('apim');
    var ctxAuth = context.get('token1');
    // =====start step 3==========
    // get bearer token from request
    var token = ctxAuth; 
    context.set('myctx.bearerToken', token);
    //decode and parse the token to find the key id (kid)
    var base64Payload = token.split('.')[0];
    var base64 = base64Payload.replace(/-/g, '+').replace(/_/g, "http://dzone.com/");
    var payload = Buffer.from(base64, 'base64');
    var oppayload = JSON.parse(payload.toString());
    var kidInToken = oppayload.kid
    session.output.write(kidInToken);
    // search in rsa256 Keys
    var jwt_keys1 = context.get('rsa256-key.body');
    var jwt_keys = JSON.parse(jwt_keys1);
    session.output.write(jwt_keys);
    //identify the key to provide for validation from the keys list
    var jwt_key;
    for(var i=0;i<jwt_keys.keys.length;i++){
        if(kidInToken == jwt_keys.keys[i].kid){
            jwt_key = jwt_keys.keys[i];
            break;
        }
    
    }
    session.output.write(jwt_key);
    apim.setvariable('jwk-key', JSON.stringify(jwt_key));
    context.message.body.write(jwt_keys);
    

    1.4 Valider JWT

    Utilisez le nœud de sécurité « Valider JWT » pour valider la clé JWT en transmettant le message.headers.authorization et jwk-key.

    1.5. PasserelleScript : étape 3

    Obtenir le ‘decoded.claims’ dans le resp variable et créez une message.body avec le resp variable.

    var apim = require('apim');
    
    var resp=apim.getvariable('decoded.claims'); 
    
    resp.active=true;
    
    resp.token_type="bearer"; 
    
    apim.setvariable('message.body', resp);

    2. Ajouter le fournisseur OAuth dans les ressources

    2.1 Titre

    • Aller à Ressources -> Fournisseurs OAuth –> ajouter –> Fournisseur OAuth tiers.
    • Écrivez le Titre comme « AzureAD ».

    Configuration du fournisseur OAuth : titre en tant qu'Azure AD

    Figure 3 : Configuration du fournisseur OAuth

    2.2. Type de subvention pris en charge

    • Indiquez le nom du fournisseur tiers sous Titre –> « AzureAD. »
    • Sélectionnez le type de subvention pris en charge comme Application.

    Configuration du fournisseur OAuth : sélectionnez le type d'octroi pris en charge comme "application"

    Figure 4 : Configuration du fournisseur OAuth

    2.3. Valider le jeton

    Configurez les points de terminaison pour autoriser et valider le jeton. Configuration du fournisseur OAuth : configurer les points de terminaison pour autoriser et valider le jeton

    Figure 5 : Configuration du fournisseur OAuth

    1. Définissez un fournisseur OAuth tiers pour émettre et valider des jetons afin de protéger l’accès à l’API.
      • URL d’autorisation : https://login.microsoftonline.com//oauth2/authorize
    2. Appelez l’URL du jeton pour obtenir le jeton OAuth.
      • https://login.microsoftonline.com/ ID>/oauth2/token
    3. Fournissez l’URL Introspect qui est développée à l’étape 1 en tant qu’API REST.
      • https:///jwtvalidation

    photo de l'article

    Figure 6 : Configuration des points de terminaison du fournisseur OAuth

    3. Configurer le catalogue pour utiliser le fournisseur OAuth

    1. Aller à Gestionnaire –> Sélectionnez –> Paramètres du catalogue –> Fournisseurs OAuth –> Modifier et sélectionnez le Fournisseur OAuth case à cocher.

    Sélectionnez le fournisseur OAuth pour le catalogue

    Figure 7 : Sélectionnez le fournisseur OAuth pour le catalogue

    2. Sélectionnez le Tierce personne Fournisseur OAuth « AzureAD » en cliquant sur la case à cocher.

    Sélectionnez et enregistrez le fournisseur OAuth pour l'utilisation de l'API

    Figure 8 : Sélectionnez et enregistrez le fournisseur OAuth pour l’utilisation de l’API

    Conclusion

    Cet article explique les étapes de mise en œuvre de l’autorisation OAuth pour l’API. Ici, le fournisseur OAuth est Azur. Plus de détails sur les étapes seront publiés dans la prochaine version de cet article.

    Références

    1. Notion de fournisseur OAuth : Concepts OAuth pour API Connect – IBM Documentation
    2. Analyse du jeton JWT : Jetons Web JSON
    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.