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
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.
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.
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.
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.
-
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'); ?>
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.
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).
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
- Cree una imagen con estas dimensiones: 1200 x 1200 píxeles.
- Guárdela como “login_bg.jpg”.
Personalización del logotipo de la pantalla de inicio de sesión
- Cree una imagen con estas dimensiones: 34 x 33 píxeles.
- Guárdela como “aemmobile_logo.png”.
Personalización de la pancarta de la página principal
- Cree una imagen con estas dimensiones: 1200 x 170 píxeles.
- Guárdela como “header.jpg”.
Personalización del texto de la página de inicio de sesión
- Vaya a la carpeta del código fuente del servidor de asignación directa de derechos.
- Abra el archivo “index.html” con un editor de texto.
- 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.
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.
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.
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”.

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”.

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”.

Para asociar el servidor de asignación de derechos en un proyecto de AEM Mobile, deberá hacer lo siguiente:
-
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.
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.
-
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 ); } } } }
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.
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.
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.
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);