Gestion des identités dans Nuxeo avec Okta


Tue 18 July 2017 Par Mariana Cedica

Okta est actuellement l'une des solutions de gestion des identités dans le Cloud les plus plébiscitées et c'est pour cette raison que nous voulions intégrer ses capacités à Nuxeo Platform. Configurer Nuxeo Platform pour utiliser Okta à des fins d'authentification et de gestion des droits des utilisateurs est extrêmement simple !

Nuxeo Platform supporte l'intégration de n'importe quel fournisseur d'identité (Identity Provider) SAML 2.0 et la plateforme a déjà été testée avec Okta, OneLogin, Ping One, SSOCircle, Google, OIF et ADFS. Dans ce blog, je vais me concentrer sur Okta et vous montrer à quel point il est facile et rapide de le configurer à l'aide de Nuxeo Studio pour ensuite le déployer.

Cas d'utilisation

Partons du principe que votre organisation utilise déjà Okta en tant que fournisseur d'identité, que vous avez décidé d'implémenter Nuxeo Platform en tant que système de Digital Asset Management (DAM) et que vous avez besoin de configurer l'authentification de vos utilisateurs dans Nuxeo Platform via Okta.

Prérequis

Vous avez une connaissance de base de Nuxeo Platform et vous avez utilisé Nuxeo Studio pour ajouter de nouvelles fonctionnalités à votre nouveau projet de DAM.

La solution

Je vais partir de zéro. Je veux que ce processus soit rapide, donc je vais simplement déployer un conteneur Docker Nuxeo LTS 2016 (8.10) dans mon cluster OpenShift existant et le rendre accessible depuis http://example-nuxeo-test-okta-integration.apps.io.nuxeo.com/ (ce n'est qu'une URL d'exemple qui ne sera pas accessible par la suite). Bien sûr, l'emplacement et la façon dont vous déployez Nuxeo Platform n'ont pas d'importance (c'est juste que j'aime les conteneurs). Les étapes à suivre pour la configuration d'Okta côté Nuxeo seront toujours les mêmes. En fait, vous pouvez même suivre les mêmes étapes pour intégrer n'importe quel identity provider SAML 2.0 à Nuxeo Platform.

Si vous n'avez pas de serveur Nuxeo en cours d'exécution, vous pouvez simplement démarrer un conteneur en local pour passer aux étapes suivantes avec :

$ docker run -p 8080:8080 nuxeo:8.10

Configuration d'Okta

La première étape pour que Nuxeo Platform supporte le Single Sign-On basé sur SAML à partir d'Okta est de créer une nouvelle application dans Okta. Il existe un tutoriel avec les étapes détaillées dans la documentation d'Okta. Voici un résumé de ce tutoriel :

  1. Normalement, vous avez déjà une organisation Okta. Si ce n'est pas le cas, il vous faut en créer une nouvelle.
  2. Créez une nouvelle application en passant par Admin/Applications (j'ai appelé la mienne Nuxeo Okta Integration) et choisissez SAML 2.0 comme méthode d'authentification.

    Okta Dashboard Applications

    Create New Okta Application

  3. Dans les paramètres SAML, vous devez définir "Single sign on URL/IdP" et "Audience URI (SP Entity ID)" sur :

    • http://$NUXEO_URL/nuxeo/nxstartup.faces si vous utilisez l'UI JSF (ou les deux UI)
    • http://$NUXEO_URL/nuxeo/ui si vous utilisez uniquement Web UI

Voici ce que j'obtiens dans mon cas :

Okta SAML Settings

J'ai également associé les propriétés 'lastName', 'firstName' et 'email' du profil utilisateur Okta pour qu'elles soient transmises à Nuxeo Platform lors de l'authentification.

  1. Configurez les informations additionnelles dont vous pouvez avoir besoin (Okta vous demandera des feedbacks) et vous avez (presque) terminé.

  2. Une fois l'application créée, assurez-vous de récupérer votre Identity Provider Metadata pour cette application, car vous allez l'utiliser côté Nuxeo. Allez jusqu'à l'onglet Sign on de votre application Okta et copiez l'emplacement du lien (juste en dessous du bouton View Setup Instructions, comme illustré dans l'image ci-dessous).

    Setup Instructios For SAML2.0 In Okta Applications

Si vous vous demandez comment les utilisateurs sont gérés dans Okta, passez aux étapes suivantes. Dans le cas contraire, passez directement à la section Configuration Nuxeo. Vous pourrez ajouter des utilisateurs plus tard !

  1. Configurez les utilisateurs dans votre organisation Okta.

Si vous ne partez pas de zéro, il se peut que des utilisateurs soient déjà configurés dans votre organisation (peut-être même via une directory integration). Si ce n'est pas le cas et que vous n'avez pas d'utilisateur, ajoutons notre vieil ami, "John Doe". Il y a plusieurs options permettant d'importer des utilisateurs dans Okta, mais pour cet exemple, nous allons simplement ajouter un utilisateur manuellement.

Les utilisateurs d'un domaine / d'une organisation Okta sont globaux et peuvent être assignés à n'importe quelle application Okta de l'organisation. Pour ajouter un nouvel utilisateur, cliquez sur Directory/People, puis Add Person :

Create John Doe In Okta

Assurez-vous d'utiliser l'adresse e-mail en tant que nom d'utilisateur (pour plus de simplicité) et cochez Send user activation email now si vous pensez que John va regarder immédiatement ses mails. Je me suis assurée que John Doe avait configuré l'authentification multifacteur et je vous conseille d'en faire de même !

  1. Assignez les utilisateurs Okta de votre organisation à votre nouvelle application Okta.

Maintenant que John Doe est dans le système, nous devons l'assigner à notre nouvelle application. Retournez dans vos applications et sélectionnez la vôtre ou l'application Nuxeo Okta puis sélectionnez Assignments/Assign/Assign to People :

Assign John Doe To Okta Application

Configurons maintenant Nuxeo Platform afin d'utiliser notre toute nouvelle application Okta pour l'authentification.

Configuration Nuxeo

  1. Installez SAML2-Authentication depuis la marketplace. Assurez-vous de choisir la bonne version en fonction de votre serveur. Dans mon cas il s'agit de la 2.3.

    $NUXEO_HOME/bin/nuxeoctl mp-install saml2-authentication
    
  2. Paramétrez Nuxeo Platform pour que la plateforme s'authentifie avec votre application Okta en ajoutant un nouvel attribut authenticationPlugin ayant la valeur "OKTA_AUTH" et en associant les attributs existants pour qu'ils correspondent à ceux que vous avez configurés dans Okta.

Pour ce faire, ajoutez notre modèle dans votre projet Studio et modifiez simplement le nom du paramètre "metadata" pour qu'il redirige vers l'Identity Provider Metadata ou votre application Okta (l'URL que vous avez récupérée de votre application Okta lors de l'étape 5 de la configuration Okta ci-dessus).

Okta Studio Contribution

Testez votre nouvelle configuration !

Si tout a bien été configuré, vous aurez un nouveau lien Okta dans votre page de connexion à Nuxeo Platform :

Nuxeo Okta Login Page

Cliquez sur le lien Okta et vous serez redirigé vers la page de connexion Okta :

Okta Login For Nuxeo

Après s'être connecté à Okta, John Doe pourra accéder à Nuxeo Platform :

Nuxeo Home

Après la première connexion, l'utilisateur "John Doe" sera disponible dans Nuxeo Platform et il pourra être utilisé comme n'importe quel utilisateur de Nuxeo Platform (vous pouvez lui assigner des permissions, des tâches de workflows, etc.). Si vous voulez que vos utilisateurs Okta soient disponibles dans Nuxeo Platform avant qu'ils n'effectuent leur première connexion, vous pouvez les configurer avec le protocole SCIM, mais je vous expliquerai la procédure en détail dans un prochain article !


Tagged: Okta, Nuxeo Integration, How to