Configuration requise

Connaissances préalables

  • Compréhension de MySQL et PHP
  • Compréhension d'AEM Mobile
  • Maîtrise du processus de création et de publication de contenu via le portail à la demande

Produits requis

  • AEM Mobile

 

Présentation des droits personnalisés

À l'aide d'un service de droits, les applications Experience Manager Mobile peuvent prendre en charge la connexion des utilisateurs et accorder un accès (des droits) à certaines collections en fonction des identifiants.

Notez qu'AEM Mobile ne prend en charge que l'interface Direct Entitlement API v2. Reportez-vous à la page Droits dans les applications AEM Mobile.

Téléchargement du code source

Pour commencer à utiliser l'exemple de code pour le serveur de droits, vous devez télécharger les fichiers du service de droits.

 

Remarque :

en téléchargeant les logiciels mentionnés ci-après, vous reconnaissez avoir lu et accepter les conditions énoncées dans les Conditions d'utilisation d’Adobe.com et la Politique de confidentialité en ligne d’Adobe.

Remarque :

l'exemple d'implémentation est fourni « en l'état » ; Adobe ne propose aucune assistance technique pour le code, l'implémentation ou le processus de déploiement. Pour toute question concernant l'implémentation, veuillez utiliser le forum AEM Mobile.  

Installation de la base de données de droits

Pour que le système de droits puisse stocker et extraire les informations, la structure des tables de la base de données MySQL doit être au bon format.

Les exemples suivants utilisent phpMyAdmin pour administrer la base de données MySQL, mais le même résultat peut être obtenu avec d'autres outils MySQL.

Si phpMyAdmin est déjà installé sur votre serveur, veuillez passer à la section suivante expliquant la création d'une nouvelle base de données.

Installation de phpMyAdmin

  1. Cliquez sur le bouton « Download x.x.x » afin de télécharger la version la plus récente de phpMyAdmin.

  2. Suivez le guide d'installation de phpMyAdmin et installez phpMyAdmin sur le serveur qui hébergera les droits directs.

  3. Accédez au portail phpMyAdmin à partir du serveur sur lequel il a été installé. Exemple : http://<mon-domaine>/phpmyadmin

  4. Si vous êtes invité à vous connecter, saisissez le nom d'utilisateur et le mot de passe de la base de données sur le serveur.

Création d’une nouvelle base de données

  1. Sur la page d'accueil de phpMyAdmin, cliquez sur le bouton « New » situé sur la barre latérale gauche ou sur l'onglet « Database » situé sur la barre de navigation supérieure.

  2. Sur la page de la base de données, saisissez un nom pour la nouvelle base de données (de préférence « entitlement_admin ») dans le champ « Create database ».

  3. Cliquez sur le bouton « Create » pour générer une nouvelle base de données portant le nom saisi.

Chargement de la structure de base de données prédéfinie

  1. Après avoir créé la base de données, cliquez sur la base de données « entitlement_admin » (ou le nom de base de données que vous avez indiqué) dans la liste.

  2. Sur la page de la base de données « entitlement_admin », cliquez sur l'onglet « Import », situé sur la barre de navigation supérieure.

  3. Cliquez sur l'option « Choose File » afin d'ouvrir la fenêtre du navigateur.

  4. De la fenêtre du navigateur, accédez au dossier du serveur de droits téléchargé et sélectionnez le fichier de base de données prédéfini intitulé « entitlement_admin.sql ».

  5. Cliquez sur le bouton « Go » pour charger la base de données sélectionnée.

    Un message vous informe lorsque le chargement aboutit.

Configuration du code source

Vous devez mettre à jour une partie du code source afin que le service de droits communique avec la base de données que vous venez de créer.

Mise à jour des paramètres MySQL

  1. Accédez au dossier du code source du serveur de droits.

  2. Ouvrez le fichier de « settings.php » à l'aide d'un éditeur de texte ; ce fichier se trouve dans le répertoire « Source-Code/php/settings.php ».

  3. Mettez à jour les valeurs des paramètres suivants :

    // enter the MySQL host name
    $db_host = 'localhost';
    // enter the MySQL database username
    $db_user = 'root';
    // enter the MySQL database password
    $db_password = 'root';
    // enter the name of the MySQL database
    $db_name = 'entitlement_admin';
  4. Mettez à jour la liste des utilisateurs administrateurs prédéfinis pour le paramètre $admin_list. Il s'agit de la liste des utilisateurs administrateurs qui pourront accéder à l'exemple de serveur de droits personnalisé lorsqu'il sera hébergé.

     

    Chaque utilisateur administrateur est associé à une application AEM Mobile. Si vous disposez de deux applications iOS, vous devez créer deux utilisateurs administrateurs.

    La liste comporte le format suivant :

    $admin_list = array(
        // admin user #1
        array(
            'username' => 'admin1',
            'password' => '202cb962ac59075b964b07152d234b70'
        ),
        // admin user #2
        array(
            'username' => 'admin2',
            'password' => '202cb962ac59075b964b07152d234b70'
        ),
        // add as many admin users as necessary
    );

    Remarque :

    vous devez appliquer un hachage MD5 sur le mot de passe (c'est-à-dire, la fonction PHP md5()). Dans l'exemple ci-dessus, l'exemple de mot de passe « 202cb962ac59075b964b07152d234b70 » est un hachage MD5 de la valeur « 123 ».

    <?php
    
    // this will output 202cb962ac59075b964b07152d234b70
    // replace the value '123' below with the desired password for the admin
    echo md5('123');
    
    ?>

Hébergement du code source

Téléchargez le code source du service de droits avec les paramètres mis à jour sur le serveur hébergé sur lequel la base de données a été configurée lors des étapes précédentes.

  1. Utilisez un client FTP, tel que Transmit, pour vous connecter au serveur web qui hébergera votre service de droits.

  2. Définissez la destination du téléchargement dans le répertoire approprié du serveur web.

  3. Sélectionnez le dossier du code source du serveur de droits.

  4. Téléchargez tous les fichiers dans le dossier du code source du serveur de droits.

  5. Accédez au chemin du dossier du code source sur le serveur de web pour afficher l'écran de connexion.

Test de la configuration du serveur de droits

Un ensemble de tests a été fourni pour tester la configuration du service de droits. Accédez à setup_check.html à partir du serveur d'hébergement. Cliquez sur l'un des boutons de la barre latérale gauche pour exécuter le test correspondant. Chaque contrôle retourne « OK » en cas de succès ou un message d'erreur en cas d'échec.

Ces contrôles comportent les tests suivants :

  • Tous – Le test complet ci-dessous est exécuté.
  • Modules PHP – Contrôle si les modules PHP requis, utilisés par le code source des droits directs, sont installés.
  • Configuration – Contrôle si l'utilisateur a mis à jour le fichier settings.php. Par défaut, les valeurs sont mises en commentaire ; les utilisateurs doivent donc indiquer leurs valeurs réelles.
  • Base de données – Contrôle si la base de données de droits directs a été créée avec succès. Contrôle si l'accès à la base de données de droits directs fonctionne avec les identifiants fournis (dans settings.php).
  • Connexion HTTP – Contrôle si le serveur d'hébergement peut accéder aux sites web HTTP (non sécurisés).
  • Connexion HTTPS – Contrôle si le serveur d'hébergement peut accéder aux sites web HTTPS (chiffrés).

Personnalisation de votre service de droits

Cette section vous aidera à concevoir un service de droits correspondant à votre propre marque. Toutes les images doivent être placées dans le dossier « Images » dans le dossier du code source du serveur de droits.

Personnalisation de l'arrière-plan de l'écran de connexion

  1. Créez une image avec les dimensions suivantes : 1200 x 1200 pixels.
  2. Sauvegardez l'image sous le nom « login_bg.jpg ».

Personnalisation du logo de l'écran de connexion

  1. Créez une image avec les dimensions suivantes : 34 x 33 pixels.
  2. Sauvez l'image sous le nom « aemmobile_logo.png ».

Personnalisation de la bannière de la page d'accueil

  1. Créez une image avec les dimensions suivantes : 1200 x 170 pixels.
  2. Sauvegardez l'image sous le nom « header.jpg ».

Personnalisation du texte de la page de connexion

  1. Accédez au dossier du code source du serveur de droits directs.
  2. Ouvrez le fichier de « index.html » avec un éditeur de texte.
  3. Modifiez les valeurs suivantes :

En-tête de connexion

  • Localisez « Adobe Experience Manager Mobile » (ligne 31).
  • Remplacez la valeur par votre propre en-tête de connexion.

Espace réservé pour le nom d'utilisateur

  • Localisez « Sign in with your Adobe ID for AEM Mobile » (ligne 40)
  • Remplacez la valeur par votre propre espace réservé pour le nom d'utilisateur.

Espace réservé pour le mot de passe

  • Localisez « Password » (ligne 48)
  • Remplacez la valeur par votre propre espace réservé pour le mot de passe.

Accès au service de droits

S'ils n'existent pas déjà, le service de droits crée automatiquement les administrateurs lors de la connexion. Une fois connecté, vous accédez à l'écran permettant d'accorder des droits aux collections pour les utilisateurs et les groupes. Pour plus d'information sur le fonctionnement des droits, reportez-vous à l'article Droits dans les applications AEM Mobile.

Spécification du Bundle ID

Saisissez le Bundle ID pour l'application AEM Mobile. Il doit correspondre à celui défini à l'un des emplacements suivants des services à la demande :

Paramètres du projet

Accédez à Paramètres du projet > onglet Accès > Bundle ID. Si un Bundle ID est spécifié ici, il sera envoyé au service de droits à la place de la valeur du Bundle ID figurant dans les applications.

Paramètres des applications

Accédez à Applications dans la barre de navigation de gauche et créez ou modifiez une application. Si aucun Bundle ID n'est spécifié dans les paramètres du projet, ce Bundle ID est utilisé.

Gestion des utilisateurs

En tant qu'administrateur des droits, vous pouvez créer et mettre à jour des utilisateurs. Les utilisateurs doivent avoir un nom d'utilisateur et un mot de passe et peuvent éventuellement comporter un champ de description. Un utilisateur peut être autorisé à accéder à un ou plusieurs produits et peut être affecté à un ou plusieurs groupes.

  • Pour ajouter un utilisateur, cliquez sur « Add User » sur l'onglet « Users ».
  • Pour modifier un utilisateur, sélectionnez un utilisateur dans la grille, puis cliquez sur « Edit User » ou double-cliquez sur un utilisateur. Dans la boîte de dialogue Edit User, vous pouvez mettre à jour le nom d'utilisateur, le mot de passe ou la description. Vous ne devez indiquer le mot de passe que si vous le mettez à jour ; dans le cas contraire, vous ne devez pas le renseigner.
  • Pour autoriser l'utilisateur à accéder à un produit, sélectionnez un produit dans la première liste déroulante et cliquez sur le bouton « + ».
  • Pour ajouter l'utilisateur à un groupe, sélectionnez un groupe dans la deuxième liste déroulante et cliquez sur le bouton « + ».
  • Pour retirer l'accès de l'utilisateur à un produit ou son affectation à un groupe, sélectionnez-le dans la liste et cliquez sur « Remove ».

Gestion des groupes

En tant qu'administrateur des droits, vous pouvez créer et mettre à jour des groupes. Les groupes ne sont pas obligatoires, mais ils peuvent être très utiles pour autoriser des groupes d'utilisateurs à accéder à un ou plusieurs produits. Les groupes doivent avoir un nom et peuvent éventuellement comporter un champ de description. Vous pouvez autoriser un groupe à accéder à des produits et affecter des utilisateurs à un groupe.

  • Pour ajouter un groupe, cliquez sur « Add Group » sur l'onglet « Groups ».
  • Pour modifier un groupe, sélectionnez un groupe dans la grille et cliquez sur « Edit Group » ou double-cliquez dessus. Dans la boîte de dialogue Edit Group, vous pouvez mettre à jour le nom ou la description.
  • Pour autoriser le groupe à accéder à un produit, sélectionnez un produit dans la première liste déroulante et cliquez sur le bouton « + ».
  • Pour ajouter un utilisateur au groupe, sélectionnez un utilisateur dans la deuxième liste déroulante et cliquez sur le bouton « + ».
  • Pour retirer l'accès du groupe à un produit ou retirer un utilisateur du groupe, sélectionnez-le dans la liste et cliquez sur « Remove ».

Gestion des produits

En tant qu'administrateur des droits, vous pouvez créer et mettre à jour des produits. Les produits doivent avoir un libellé du produit, une description du produit, un ID du produit et une date de disponibilité. Lors de la création des produits, vérifiez que l'ID du produit correspond à celui créé dans la section Produits et abonnements du portail à la demande. Pour plus d'informations, reportez-vous à l'article Options d’achat et d’abonnement intégrées pour les applications AEM Mobile.

  • Pour ajouter un produit, cliquez sur « Add Product » sur l'onglet « Product ».
  • Pour modifier un produit, sélectionnez un produit dans la grille et cliquez sur « Edit Product » ou double-cliquez dessus. Dans la boîte de dialogue Edit Product, vous pouvez mettre à jour le libellé du produit, la description du produit, l'ID du produit ou la date de disponibilité.
  • Pour autoriser un groupe à accéder au produit, sélectionnez un groupe dans la première liste déroulante et cliquez sur le bouton « + ».
  • Pour autoriser un utilisateur à accéder au produit, sélectionnez un utilisateur dans la deuxième liste déroulante et cliquez sur le bouton « + ».
  • Pour retirer l'accès d'un groupe ou d'un utilisateur au produit, sélectionnez-le dans la liste et cliquez sur « Remove ».  

Activation du serveur de droits pour un projet AEM Mobile

Pour associer le serveur de droits à un projet AEM Mobile :

  1. Saisissez le Bundle ID sur le serveur de droits. Il doit correspondre à celui défini dans les services à la demande.

    Vous trouverez cette information dans les métadonnées de projet des services à la demande :

    Ou dans les paramètres de l'application AEM Mobile (s'il n'est pas défini au niveau du projet).

  2. Saisissez le point de terminaison des droits dans les services à la demande. Pour plus d'informations, reportez-vous à l'article d'aide Droits dans les applications AEM Mobile.

Améliorations de la production

Avec la configuration actuelle, les identifiants d'utilisateur administrateur sont définis dans le fichier /php/settings.php. Pour optimiser ce processus de gestion des utilisateurs administrateurs, il est recommandé de les stocker dans $admin_list dans la base de données et d'utiliser des outils d'administration MySQL (tels que phpMyAdmin) pour les créer/modifier/mettre à jour/supprimer.

  1. Créez une nouvelle table (c'est-à-dire la table des administrateurs) dans la base de données ; vous pouvez utiliser la même base de données que celle créée précédemment (recommandé) et créer autant d'utilisateurs administrateurs que nécessaire.

  2. Dans le fichier /php/settings.php, vous devez remplacer $admin_list = array() par les instructions MySQL qui interrogeront la base de données pour obtenir la liste des utilisateurs administrateurs. Par exemple :

    // initializes the empty list of admin user
    $admin_list = array();
    
    // connects to the database
    $dbconnect = $mysqli = new mysqli($db_host, $db_user, $db_password, $db_name);
    
    if ($dbconnect) { // successfully connected to the database
    	// queries the database for the list of admin user credentials: username, password
    	$stmt = $mysqli->prepare('SELECT username, password FROM admins);
    
    	if ($stmt) { // prepare statement succeeded
    		$stmt->bind_param('ss', $username, $password);
    		$stmt->execute();
    		// stores the queried results
    		$stmt->store_result();
    
    		if ($stmt->num_rows > 0) { // there exists admin users in the database
    			// appends the queried admin credentials to the list
    			while($stmt->fetch()) {
    				$admin_list[] = array(
    					'username' => $username,
    					'password' => $password
    				);
    			}
    		}
    	}
    }
    

Utilisation de l'authentification personnalisée dans un service de droits

Cet exemple de serveur de droits prend désormais en charge l'utilisation de Google, Facebook ou d'un fournisseur d'identité générique. Les utilisateurs peuvent ainsi se connecter en utilisant un compte Google ou Facebook ou en utilisant une expérience de connexion personnalisée que vous concevez. Par défaut, le service de droits ne prend pas en charge les trois types de fournisseurs d'identité simultanément.

Pour plus d'informations sur l'authentification personnalisée, reportez-vous à la page Authentification personnalisée dans les applications AEM Mobile.

Utilisation de Google ou Facebook en tant que fournisseur d'identité

Lors de l'utilisation de Google ou Facebook en tant que fournisseur d'identité, l'application AEM Mobile transmet le jeton authToken dans l'interface Entitlement V2 API : /entitlements. Suivant la configuration du serveur de droits, cet exemple de serveur de droits utilise l'API Google ou Facebook pour extraire l'adresse électronique de l'utilisateur en fonction du jeton authToken et vérifie dans la base de données des droits.

Pour configurer le serveur, mettez à jour le paramètre $identity_provider avec la valeur « google » ou « facebook ». Vous trouverez ce paramètre sous /php/settings.php.

Utilisation d'un fournisseur d'identité générique

Lorsque vous utilisez un fournisseur d'identité générique, l'application redirige les utilisateurs vers l'IU de connexion personnalisée fournie. L'IU doit gérer les identifiants, les valider et transmettre le résultat à l'application.

Vous trouverez un exemple d'IU de connexion dans le répertoire /idp. Lors de la configuration du fournisseur d'identité générique dans les services à la demande, l'URL d'authentification doit être dans le format suivant :
http://<domaine>/<chemin-vers-code-source>/idp/index.html

Si vous avez précédemment configuré le serveur de manière à utiliser Google ou Facebook, mettez à jour le paramètre $identity_provider avec la valeur « default ». Vous trouverez ce paramètre sous /php/settings.php.

Configuration du service de manière à prendre en charge les fournisseurs d'identité

Chaque application ne prend en charge qu'un seul fournisseur d'identité : Google, Facebook ou générique. Par défaut, cet exemple de serveur de droits n'en prend également qu'un seul en charge. Cependant, si vous devez prendre en charge plusieurs fournisseurs d'identité, par exemple pour utiliser le même serveur de droits pour plusieurs applications, vous devez copier le répertoire /services et le renommer, par exemple en services-Google. Dans le répertoire nouvellement copié, définissez le paramètre $identity_provider avec le fournisseur d'identité souhaité (par exemple, $identity_provider = « google » en l'ajoutant après la ligne 13.

// in /services-google/index.php

require_once "../php/settings.php";
require_once "../php/utils.php";

$identity_provider = "google"

$path_info = $_SERVER["PATH_INFO"];
$call = substr($path_info, 1);

Dans cet exemple, le nouveau point de terminaison des droits est le suivant :
http://<domaine>/<chemin-vers-code-source>/services-google/index.php

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne