Requisitos

Conocimientos previos necesarios

  • Conocimientos de MySQL y PHP
  • Explicación de AEM Mobile
  • Conocimientos sobre creación y publicación de contenido a través de On-Demand Portal

Productos requeridos

  • AEM Mobile

 

Introducción a la asignación de derechos personalizada

Mediante un servicio de asignación de derechos, las aplicaciones de Experience Manager Mobile pueden permitir que los usuarios inicien sesión en ellas y otorgar acceso (asignación de derechos) a determinadas colecciones según las credenciales de inicio de sesión.

Tenga en cuenta que AEM Mobile solo admite la Direct Entitlement API v2. Consulte Asignación de derechos en AEM Mobile.

Descarga del código fuente

Para empezar a trabajar con el código del servidor de asignación de derechos de ejemplo, descargue los archivos del servicio de asignación de derechos.

 

Nota:

Al descargar el software que se indica a continuación, confirmo que he leído y acepto los términos de las Condiciones de uso de Adobe.com y la Política de privacidad en línea de Adobe.

Nota:

La implementación de ejemplo se ofrece tal cual; Adobe no le proporcionará asistencia relativa al código, la implantación o el proceso de implementación. Si tiene alguna pregunta sobre la implementación, utilice el foro de AEM Mobile.  

Instalación de la base de datos de asignación de derechos

La base de datos MySQL deberá tener la estructura de tabla adecuada para que el sistema de asignación de derechos pueda almacenar información en ella y recuperarla.

Tenga en cuenta que, aunque en los siguientes ejemplos se utiliza phpMyAdmin para administrar la base de datos MySQL, existen otras herramientas de administración de MySQL que pueden servir para el mismo propósito.

Si ya tiene phpMyAdmin instalado en el servidor, avance a la siguiente sección sobre cómo crear una nueva base de datos.

Instalación de phpMyAdmin

  1. Haga clic en el botón “Download x.x.x” para descargar la versión más reciente de phpMyAdmin.

  2. Siga la guía de instalación de phpMyAdmin e instale la herramienta en el servidor que alojará la asignación directa de derechos.

  3. Vaya al portal de phpMyAdmin desde el servidor en el que se instaló. Ejemplo: http://<mi-dominio>/phpmyadmin

  4. Si se le solicita que inicie sesión, especifique el nombre de usuario y la contraseña de la base de datos en el servidor.

Creación de una nueva base de datos

  1. En la página principal de phpMyAdmin, haga clic en el botón “New” situado en la barra lateral izquierda o en la ficha “Database” ubicada en la barra de navegación superior.

  2. En la página de la base de datos, introduzca el nombre de la nueva base de datos (preferiblemente, “entitlement_admin”) en campo “Create database”.

  3. Haga clic en el botón “Create” para generar una nueva base de datos con el nombre especificado.

Carga de la estructura de la base de datos predefinida

  1. Tras crear correctamente la base de datos, haga clic en la base de datos “entitlement_admin” (o el nombre que haya especificado) en la lista.

  2. Desde la página de la base de datos “entitlement_admin”, haga clic en la ficha “Import” situada en la barra de navegación superior.

  3. Haga clic en “Choose File” para abrir la ventana del navegador.

  4. Desde la ventana del navegador, vaya a la carpeta del servidor de asignación de derechos descargado y seleccione el archivo de la base de datos predefinida llamado “entitlement_admin.sql”.

  5. Haga clic en el botón “Go” para cargar la base de datos seleccionada.

    Recibirá un mensaje de notificación cuando la carga se haya efectuado correctamente.

Configuración del código fuente

Debe actualizar una sección del código fuente para que el servicio de asignación de derechos se comunique con la base de datos que acaba de crear.

Actualización de la configuración de MySQL

  1. Vaya a la carpeta del código fuente del servidor de asignación de derechos.

  2. Abra el archivo “settings.php”, que se encuentra en este directorio: “Source-Code/php/settings.php”, con un editor de texto.

  3. Actualice los valores de los siguientes parámetros:

    // 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. Actualice la lista de usuarios administrativos predefinidos del parámetro $admin_list. Se trata de la lista de usuarios administradores que podrán acceder al ejemplo de servidor de asignación de derechos personalizado una vez que se encuentre alojado.

     

    Cada uno de los usuarios administradores está ligado a una aplicación de AEM Mobile. Si cuenta con dos aplicaciones de iOS, tendrá que crear dos usuarios administradores.

    La lista presenta el siguiente formato:

    $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
    );

    Nota:

    Tendrá que efectuar un hash MD5 en la contraseña (es decir, PHP function md5()). En el ejemplo anterior, la contraseña de muestra “202cb962ac59075b964b07152d234b70” es un hash MD5 del valor “123”.

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

Alojamiento del código fuente

Cargue el código fuente del servicio de asignación de derechos con la configuración actualizada en el servidor alojado donde se configuró la base de datos en pasos anteriores.

  1. Utilice un cliente de FTP como Transmit para conectarse al servidor web que alojará su servicio de asignación de derechos.

  2. Establezca el destino de la carga en el directorio que desee del servidor web.

  3. Seleccione la carpeta del código fuente del servidor de asignación de derechos.

  4. Cargue todos los archivos en la carpeta del código fuente del servidor de asignación de derechos.

  5. Vaya a la ruta de la carpeta del código fuente en el servidor web para ver la pantalla de inicio de sesión.

Comprobación de la configuración del servidor de asignación de derechos

Se ha proporcionado un conjunto de pruebas para comprobar la configuración del servicio de asignación de derechos. Vaya a setup_check.html en el servidor de alojamiento. Haga clic en cualquiera de los botones de la barra lateral izquierda para realizar la prueba correspondiente. Cada comprobación devolverá un mensaje de confirmación (“ok”) si se realiza correctamente o uno de error, en el caso de que el resultado no sea favorable.

Se incluyen las siguientes pruebas:

  • Todo: esta opción realizará todas las pruebas descritas a continuación.
  • Módulos de PHP: compruebe si los módulos PHP necesarios, utilizados por el código fuente de la asignación directa de derechos, están instalados.
  • Configuración: compruebe si el usuario ha actualizado el archivo settings.php. De forma predeterminada, los valores tienen formato de comentarios, por lo que el usuario tendrá que especificar sus valores reales.
  • Base de datos: compruebe si la base de datos de asignación directa de derechos se ha creado correctamente. Además, compruebe si se puede acceder a la base de datos de asignación directa de derechos con las credenciales especificadas (en settings.php).
  • Conexión HTTP: compruebe si el servidor de alojamiento puede acceder a sitios web HTTP (no seguros).
  • Conexión HTTPS: compruebe si el servidor de alojamiento puede acceder a sitios web HTTPS (cifrados).

Personalización de su servicio de asignación de derechos

Esta sección le ayudará a adaptar el servicio de asignación de derechos a su propia marca. Todas las imágenes deben colocarse en la carpeta “images” del directorio del código fuente del servidor de asignación de derechos.

Personalización del fondo de la pantalla de inicio de sesión

  1. Cree una imagen con estas dimensiones: 1200 x 1200 píxeles.
  2. Guárdela como “login_bg.jpg”.

Personalización del logotipo de la pantalla de inicio de sesión

  1. Cree una imagen con estas dimensiones: 34 x 33 píxeles.
  2. Guárdela como “aemmobile_logo.png”.

Personalización de la pancarta de la página principal

  1. Cree una imagen con estas dimensiones: 1200 x 170 píxeles.
  2. Guárdela como “header.jpg”.

Personalización del texto de la página de inicio de sesión

  1. Vaya a la carpeta del código fuente del servidor de asignación directa de derechos.
  2. Abra el archivo “index.html” con un editor de texto.
  3. Edite los siguientes valores:

Encabezado de inicio de sesión

  • Busque lo siguiente: “Adobe Experience Manager Mobile” (línea 31).
  • Cambie el valor a su propio encabezado de inicio de sesión.

Marcador de posición de nombre de usuario

  • Busque lo siguiente: “Sign in with your Adobe ID for AEM Mobile” (línea 40).
  • Cambie el valor a su propio marcador de posición de nombre de usuario.

Marcador de posición de contraseña

  • Busque lo siguiente: “Password” (línea 48).
  • Cambie el valor a su propio marcador de posición de contraseña.

Acceso al servicio de asignación de derechos

El servicio de asignación de derechos creará automáticamente a los administradores, si no existen ya, durante el inicio de sesión. Una vez que haya iniciado sesión, se le mostrará la pantalla para asignar derechos a los usuarios y grupos sobre las colecciones. Para obtener más información acerca de cómo funciona la asignación de derechos, consulte el siguiente artículo: Asignación de derechos en las aplicaciones AEM Mobile.

Especificación del ID del paquete

Introduzca el ID del paquete de la aplicación de AEM Mobile. Debe coincidir con alguno que esté configurado en uno de los siguientes lugares de On-Demand Services:

Ajustes del proyecto

Vaya a Ajustes del proyecto > ficha Acceder >ID del paquete. Si el ID del paquete se ha especificado aquí, se enviará al servicio de asignación de derechos en lugar del valor de ID del paquete de Aplicaciones.

Ajustes de aplicaciones

Vaya a Aplicaciones, en la barra de la izquierda, para crear o editar una aplicación. Si no se ha especificado ningún ID del paquete en los ajustes del proyecto, se utiliza este.

Administración de usuarios

Mediante la administración de la asignación de derechos, podrá crear y actualizar usuarios. Los usuarios deben tener un nombre de usuario y una contraseña, así como incluir un campo de descripción opcional. Un usuario puede tener derechos sobre uno o más productos y se puede asignar a uno o varios grupos.

  • Para añadir a un usuario, haga clic en la opción “Añadir usuario” de la ficha “Usuarios”.
  • Para editar un usuario, seleccione uno de la tabla y, después, haga clic en “Editar usuario” o haga doble clic en la entrada de un usuario. En el cuadro de diálogo Editar usuario, puede actualizar el nombre de usuario, la contraseña o la descripción. Solo tiene que introducir la contraseña cuando la vaya a actualizar; de lo contrario, podrá dejarla en blanco.
  • Para asignar derechos a un usuario sobre un producto, seleccione el producto en la primera lista desplegable y haga clic en el botón “+”.
  • Para añadir el usuario a un grupo, seleccione un grupo en la segunda lista desplegable y haga clic en el botón “+”.
  • Para quitar un producto o grupo del usuario, selecciónelo en la lista y haga clic en “Quitar”.

Administración de grupos

Mediante la administración de la asignación de derechos, podrá crear y actualizar grupos. Los grupos no son obligatorios, pero resultan útiles para asignar derechos a grupos de usuarios sobre uno o varios productos. Los grupos deben tener un nombre e incluir un campo de descripción opcional. Puede asignar derechos sobre productos a un grupo, así como asignar usuarios a este último.

  • Para añadir un grupo, haga clic en la opción “Añadir grupo” de la ficha “Grupos”.
  • Para editar un grupo, seleccione uno de la tabla y, después, haga clic en “Editar grupo” o haga doble clic en él. En el cuadro de diálogo Editar grupo, puede actualizar el nombre o la descripción.
  • Para asignar derechos a un grupo sobre un producto, seleccione el producto en la primera lista desplegable y haga clic en el botón “+”.
  • Para añadir un usuario al grupo, seleccione un usuario en la segunda lista desplegable y haga clic en el botón “+”.
  • Para quitar un producto o usuario del grupo, selecciónelo en la lista y haga clic en “Quitar”.

Gestión de productos

Mediante la administración de la asignación de derechos, podrá crear y actualizar productos. Los productos deben tener una etiqueta, una descripción y un ID del producto, así como una fecha de disponibilidad. A la hora de crear los productos, asegúrese de que el ID de producto coincide con el que se ha creado en la sección Productos y suscripciones de On-Demand Portal. Para obtener más información, consulte este artículo: Compras y suscripciones dentro de las aplicaciones en AEM Mobile.

  • Para añadir un producto, haga clic en la opción “Añadir producto” de la ficha “Producto”.
  • Para editar un producto, seleccione uno de la tabla y, después, haga clic en “Editar producto” o haga doble clic en él. En el cuadro de diálogo Editar producto, puede actualizar la etiqueta, la descripción o el ID del producto, o bien la fecha de disponibilidad.
  • Para asignar derechos a un grupo sobre un producto, seleccione el grupo en la primera lista desplegable y haga clic en el botón “+”.
  • Para asignar derechos a un usuario sobre un producto, seleccione el usuario en la segunda lista desplegable y haga clic en el botón “+”.
  • Para quitar un grupo o usuario del producto, selecciónelo en la lista y haga clic en “Quitar”.  

Activación del servidor de asignación de derechos para proyectos de AEM Mobile

Para asociar el servidor de asignación de derechos en un proyecto de AEM Mobile, deberá hacer lo siguiente:

  1. Especifique el ID del paquete en el servidor de asignación de derechos. Debe coincidir con el que se configuró en On-Demand Services.

    Podrá encontrarlo en los metadatos del proyecto de On-Demand Services:

    O en la configuración de la aplicación de AEM Mobile (si no se configura en el nivel del proyecto).

  2. Especifique el extremo de asignación de derechos en On-Demand Services. Para obtener más información, consulte este artículo de ayuda: Asignación de derechos en las aplicaciones AEM Mobile.

Mejoras de la producción

Con la configuración actual, las credenciales del usuario administrador se establecen en el archivo /php/settings.php. Para optimizar este proceso de gestión de los usuarios administradores, lo mejor es almacenar $admin_list en la base de datos y utilizar herramientas administrativas de MySQL (como phpMyAdmin) para crearlos, editarlos, actualizarlos y eliminarlos.

  1. Cree una nueva tabla (es decir, administradores) en la base de datos; podrá usar la misma tabla (opción preferente) que se creó en pasos anteriores y crear todos los usuarios administradores que necesite.

  2. En el archivo /php/settings.php, tendrá que sustituir $admin_list = array() por declaraciones de preparación de MySQL que efectuarán consultas en la base de datos para recuperar la lista de usuarios administradores. A continuación se muestra un ejemplo:

    // 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
    				);
    			}
    		}
    	}
    }
    

Uso de la autenticación personalizada para el servicio de asignación de derechos

Este servidor de asignación de derechos de ejemplo ahora admite el uso de Google, Facebook o un proveedor de identidad genérico. De esta forma, los usuarios pueden iniciar sesión con una cuenta de Google o Facebook o bien utilizar un inicio de sesión personalizado diseñado por usted. De forma predeterminada, el servicio de asignación de derechos no admite los tres tipos de proveedor de identidad de forma simultánea.

Para obtener más información acerca de la autenticación personalizada, consulte Autenticación personalizada en aplicaciones AEM Mobile.

Uso de Google o Facebook como proveedor de identidad

Al utilizar Google o Facebook como proveedores de identidad, la aplicación AEM Mobile proporcionará el authToken en Entitlement V2 API: /entitlements. En función de la configuración del servidor de asignación de derechos, este servidor de asignación de derechos de ejemplo utilizará la API de Google o Facebook para extraer del correo electrónico del usuario según el authToken y lo comprobará con la base de datos de la asignación de derechos.

Para configurar el servidor, actualice el parámetro $identity_provider con “google” o “facebook”. Este parámetro se encuentra en /php/settings.php.

Uso de un proveedor de identidad genérico

Al utilizar un proveedor de identidad genérico, la aplicación redirigirá a los usuarios a la interfaz de inicio de sesión personalizada que haya determinado. La interfaz de usuario debe administrar las credenciales de inicio de sesión, validarlas y devolver el resultado a la aplicación.

Se ha configurado una pantalla de interfaz de inicio de sesión de ejemplo en /idp directory. Al configurar el proveedor de identidad genérico en On-Demand Services, la dirección URL de autenticación debe ser de esta forma:
http://<dominio>/<ruta-al-código-fuente>/idp/index.html

Si previamente ha configurado el servidor para utilizar Google o Facebook, actualice el parámetro $identity_provider al predeterminado. Este parámetro se encuentra en /php/settings.php.

Configuración del servicio para ofrecer compatibilidad con los proveedores de identidad

Cada aplicación admite solo un proveedor de identidad: Google, Facebook o el genérico. De forma predeterminada, este servidor de asignación de derechos de ejemplo solo admite uno. No obstante, si existe un motivo por el que ofrecer compatibilidad con más de un proveedor de identidad, como el uso del mismo servidor de asignación de derechos para varias aplicaciones, debe copiar el directorio /services y cambiarle el nombre por otro, por ejemplo, services-Google. En el directorio recién copiado, establezca el parámetro $identity_provider en el proveedor de identidad deseado (por ejemplo: $identity_provider = “google”) añadiéndolo tras la línea 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);

En este ejemplo, el nuevo extremo de asignación de derechos será el siguiente:
http://<domain>/<path-to-source-code>/services-google/index.php

Esta obra está autorizada con arreglo a la licencia de Reconocimiento-NoComercial-CompartirIgual 3.0 Unported de Creative Commons.  Los términos de Creative Commons no cubren las publicaciones en Twitter™ y Facebook.

Avisos legales   |   Política de privacidad en línea