Configurer l’appel aux API K2 en OAuth

Nous avons vu il y a 4 mois comment faire appel aux APIs K2 depuis un MS Flow. Les appels à K2 étaient alors en authentification basique. Nous allons donc de voir aujourd’hui comment configurer votre plateforme afin de faire ces appels en OAuth.

L’idée est donc de changer ce qu’il se passe à l’étape 6 de l’article sur MS Flow, mais sachez que ceci se configure exactement de la même façon lorsqu’on utilise les Azure Functions, ou les Azure Logic Apps. Donc qu’est-ce que je dois mettre sur sur ces champs : 

Les champs à configurer
Les champs à configurer

Pour pouvoir saisir les différentes valeurs nécessaires, il va y avoir quelques manipulations préalables à faire côté Azure Active Directory. Nous allons devoir être accompagné par un administrateur global du tenant qui gère les authentifications K2. Une fois que vous avez la bonne personne avec vous, RDV sur le portail azure.

Etape #1 – l’App Azure Directory

  1. Commencez par créer une App Azure Active Directory : 
    Créer une App Azure AD
    Créer une App Azure AD
  2. Donnez lui un nom : 
    Nommer l'App
    Nommer l’App
  3. Une fois l’app créée, conservez l’ID de l’application, il viendra se mapper avec le Client id de la configuration de l’authentification de notre connecteur personnalisé MS Flow/LogicApps, puis accédez aux paramètres de cette App : 
    Le client id
    Le client id

     

  4. Accédez aux permissions, afin d’ajouter de nouvelles API, sélectionnez alors “K2 API” en passant par le champ de recherche (toutes les API n’étant pas listées par défaut ) : 

    Ajout des permissions vers l'API K2
    Ajout des permissions vers l’API K2
  5. Puis choisissez les permissions déléguées Access K2 API et pensez à recliquer que le bouton Select puis ensuite sur le bouton Done

    Sélectionner l'accès au API K2
    Sélectionner l’accès au API K2
  6. Vous devez alors voir la ligne K2 API dans la liste de vos permissions, il faut ensuite cliquer sur Grant permissions et répondre Yes

    Grant permissions
    Grant permissions
  7. Vous allez à présent pouvoir récupérer la valeur de la clé applicative, elle viendra se mapper avec le Client secret de la configuration de l’authentification de notre connecteur personnalisé MS Flow/LogicApps. Toujours dans les paramètres, choisissez l’option clés, mettez une description, une date d’expiration, puis cliquez sur le bouton save. La clé apparaît alors dans la fenêtre. Copiez-là car vous ne pourrez plus la faire réapparaître a posteriori : 
    Génération de la clé secrète
    Génération de la clé secrète
  8. On a fini pour cette 1ère étape, conservez cependant la fenêtre des paramètres de votre App ouverte, car nous allons en avoir besoin encore une fois, un peu plus tard.

Etape #2 – paramétrage du connecteur personnalisé

Alors, c’est surtout ici que les copies d’écran diffèrent si on utilise MS Flow ou Logic Apps, mais le principe est exactement le même.

  1. Sur votre interface Flow, ajoutez un connecteur personnalisé comme décrit sur les étapes 1 à 5 de notre billet précédent sur les intégrations K2 et Flow.
  2. Sur la page sécurité, il va être temps d’utiliser les copies de GUID et clés que vous avez mis de côté : 
    Config du connecteur personnalisé
    Config du connecteur personnalisé
     
    1. Sélectionnez Azure Active Directory comme provider.
    2. Copiez l’ID récupéré au point 3 de l’étape 1 pour le client id.
    3. Copiez la clé récupérée au point 7 de l’étape 1 pour le client secret.
    4. Mettez l’identifiant de votre tenant (ID ou nom) pour le tenant ID.
    5. Enfin saisissez https://api.k2.com pour la Resource URL.
    6. Cliquez sur le bouton Enregistrer en haut à droite, pour confirmer la saisie.
  3. Une fois le connecteur enregistré, revenez sur la même page et récupérez l’URL de redirection en bas : 
    Récupération de l'URL de redirection
    Récupération de l’URL de redirection

     

Etape #3 – Modification de l’App Azure

Retour sur l’App Azure où l’on va référencer cette URL de redirection (étape 2 – point 3) au niveau des Reply URLs autorisées. Comme on peut le voir sur ma copie d’écran, plusieurs valeurs sont autorisées, dans mon cas, je dispose d’URL de redirection propre à des Apps Logiques en plus de l’URL correspondant à mon Flow. J’utilise en effet cette App Azure AD pour plusieurs typologies d’objets : 

Configuration des Reply URLs
Configuration des Reply URLs

 

Etape #4 – Création d’une connexion sur le connecteur personnalisé MS Flow

On arrive au bout . Retournons côté MS Flow, où il n’y a plus qu’à créer une connexion pour le connecteur personnalisé : 

Créer une connexion
Créer une connexion

La classique fenêtre d’authentification Oauth de mon tenant s’ouvre et je peux saisir mes informations de connexion :

Fenêtre de connexion
Fenêtre de connexion

Considérations

  • La documentation officielle K2 propose un exemple de code permettant de faire la même chose (étape #2), dans les cas où on ne passe pas par une App. Et c’est ici.
  • N’oubliez pas de donner les bonnes permissions côté K2 à vos utilisateurs et, s’il s’agit de votre 1ère utilisation des API rest de K2 de penser à faire le consentement des APIs depuis le management site
    AAD consent
    AAD consent

     

  • Un client a été embêté pour valider que son flux Logic App fonctionnait avec cette configuration, car il disposait d’un bloqueur de publicités sur son navigateur qui, vraissemblablement, empêchait les différentes redirections de se faire correctement. Il recevait alors une erreur Unauthorized, sans plus d’informations.

Happy K2ing!

jean

Directeur technique de K2 France depuis 2006 et passionné par les technologies, je travaille dans le monde du BPM et des applications métier depuis... que je travaille :). Vous pouvez également me suivre sur twitter, linkedin.

One thought to “Configurer l’appel aux API K2 en OAuth”

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.