Requisitos

Conhecimento necessário

  • Noções básicas sobre MySQL e PHP
  • Noções básicas sobre o AEM Mobile
  • Conhecimento sobre criação e publicação de conteúdo por meio do portal sob demanda

Produtos necessários

  • AEM Mobile

 

Introdução ao direito personalizado

Com um serviço de direito, os aplicativos do Experience Manager Mobile podem oferecer suporte a logon de usuário e conceder acesso (direito) a determinadas coleções com base nas credenciais de logon.

Observe que o AEM Mobile oferece suporte somente à Direct Entitlement API v2. Consulte Direitos no AEM Mobile.

Baixar o código-fonte

Para começar a trabalhar com o exemplo de código de servidor de direito, baixe os arquivos do serviço de direito.

 

Observação:

ao baixar o software relacionado abaixo, eu reconheço que li e concordo com os Termos de uso em Adobe.com e a Política de privacidade Online da Adobe.

Observação:

a implementação de exemplo deve ser fornecida como estiver. A Adobe não fornecerá suporte ao código, à implementação ou ao processo de implantação. Se você tiver dúvidas sobre a implementação, use o fórum do AEM Mobile.  

Instalar o banco de dados de direito

O banco de dados MySQL deve ter a estrutura correta de tabelas para que o sistema de direito armazene e recupere as informações contidas no banco de dados.

Observe que enquanto os seguintes exemplos usam o phpMyAdmin para administrar o banco de dados MySQL, outras ferramentas administrativas do MySQL podem obter o mesmo resultado.

Se você já tiver o phpMyAdmin instalado no servidor, prossiga para a próxima seção sobre criação de um banco de dados.

Instalação do phpMyAdmin

  1. Clique no botão “Download x.x.x” para baixar a versão mais recente do phpMyAdmin.

  2. Siga as instruções do guia de instalação do phpMyAdmin e instale-o no servidor que hospedará o direito direto.

  3. Navegue até o portal do phpMyAdmin no servidor em que ele foi instalado. Exemplo: http://<meu-domínio>/phpmyadmin

  4. Se solicitado para fazer logon, digite o nome de usuário e a senha do banco de dados no servidor.

Criação de um banco de dados

  1. Na página inicial do phpMyAdmin, clique no botão “New” localizado na barra lateral esquerda ou na guia “Database” localizada na barra de navegação superior.

  2. Na página do banco de dados, digite um novo nome do banco de dados (preferencialmente “entitlement_admin”) no campo “Create database”.

  3. Clique no botão “Create” para gerar um novo banco de dados com o nome inserido.

Upload da estrutura predefinida do banco de dados

  1. Depois de criar o banco de dados, clique no banco de dados “entitlement_admin” (ou no nome do banco de dados que você especificou) na lista.

  2. Na página do banco de dados “entitlement_admin”, clique na guia “Import” localizada na barra de navegação superior.

  3. Clique na opção “Choose File” para abrir a janela do navegador.

  4. Na janela do navegador, navegue até a pasta do servidor de direito baixada e selecione o arquivo de banco de dados predefinido denominado “entitlement_admin.sql”.

  5. Clique no botão “Go” para fazer o upload do banco de dados selecionado.

    Uma mensagem informará quando o upload estiver concluído.

Configurar o código-fonte

Você precisa atualizar uma parte do código fonte para que o serviço de direito se comunique com o banco de dados que você acabou de criar.

Atualização das configurações do MySQL

  1. Navegue até a pasta do código-fonte do servidor de direito.

  2. Abra, com um editor de texto, o arquivo “settings.php” localizado no seguinte diretório: “Source-Code/php/settings.php”.

  3. Atualize os valores para os seguintes 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. Atualize a lista de usuários administrativos predefinidos para o parâmetro $admin_list. Esta é a lista de usuários administradores que poderão acessar o exemplo de servidor de direito personalizado depois que estiver hospedado.

     

    Cada um dos usuários administradores está vinculado a um aplicativo do AEM Mobile. Se você tiver dois aplicativos iOS, será necessário criar dois usuários administradores.

    A lista contém o seguinte 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
    );

    Observação:

    será necessário implementar um hash MD5 na senha (ou seja, função md5 () do PHP). No exemplo acima, a senha de exemplo “202cb962ac59075b964b07152d234b70” é um hash MD5 do valor “123”.

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

Hospedagem do código-fonte

Faça upload do código-fonte do serviço de direito com as configurações atualizadas no servidor hospedado no qual o banco de dados foi configurado nas etapas anteriores.

  1. Use um cliente FTP, como o Transmit, para conectar-se ao servidor da Web que hospedará o serviço de direito.

  2. Ajuste o destino do upload para o diretório desejado do servidor da Web.

  3. Selecione a pasta do código-fonte do servidor de direito.

  4. Faça upload de todos os arquivos da pasta do código-fonte do servidor de direito.

  5. Navegue até o caminho da pasta do código-fonte do servidor da Web para exibir a tela de logon.

Testar a configuração do servidor de direito

Um conjunto de testes foi fornecido para testar a configuração do serviço de direito. Navegue até setup_check.html no servidor de hospedagem. Clique em qualquer um dos botões na barra lateral esquerda para executar o teste correspondente. Cada verificação retornará um “ok” se concluída ou uma mensagem de erro se não concluída.

Isso inclui os seguintes testes:

  • All – isso executará o teste inteiro abaixo.
  • PHP Modules – verifica se os módulos do PHP necessários, usados pelo código-fonte de direito direto, estão instalados.
  • Configuration – verifica se o usuário atualizou o arquivo settings.php. Por padrão, os valores são comentados para que os usuários forneçam os valores reais.
  • Database – verifica se o banco de dados de direito direto foi criado com êxito. Verifica se o banco de dados de direito direto pode ser acessado com as credenciais fornecidas (em settings.php).
  • HTTP Connection – verifica se o servidor de hospedagem pode acessar sites HTTP (não seguros).
  • HTTPS Connection – verifica se o servidor de hospedagem pode acessar sites HTTPS (criptografados).

Personalizar seu serviço de direito

Esta seção ajudará você a adaptar o serviço de direito à sua própria marca. Todas as imagens devem ser colocadas na pasta “images” dentro da pasta do código-fonte do servidor de direito.

Personalizar o fundo da tela de logon

  1. Crie uma imagem com a seguinte dimensão: 1200x1200 pixels.
  2. Salve a imagem como “login_bg.jpg”.

Personalizar o logotipo na tela de logon

  1. Crie uma imagem com a seguinte dimensão: 34x33 pixels.
  2. Salve a imagem como “aemmobile_logo.png”.

Personalizar o banner na página inicial

  1. Crie uma imagem com a seguinte dimensão: 1200x170 pixels.
  2. Salve a imagem como “header.jpg”.

Personalizar o texto na página de logon

  1. Navegue até a pasta do código-fonte do servidor de direito direto.
  2. Abra o arquivo “index.html” com um editor de texto.
  3. Edite os seguintes valores:

Cabeçalho de logon

  • Localize: “Adobe Experience Manager Mobile” (linha 31).
  • Altere o valor para o seu próprio cabeçalho de logon.

Espaço reservado para nome de usuário

  • Localize: “Sign in with your Adobe ID for AEM Mobile” (linha 40)
  • Altere o valor para o seu próprio espaço reservado para nome de usuário.

Espaço reservado para senha

  • Localize: “Password” (linha 48)
  • Altere o valor para o seu próprio espaço reservado para senha.

Acessar o serviço de direito

O serviço de direito criará automaticamente os administradores durante o logon, se ainda não existirem. Assim que se conectar, você verá a tela para autorizar usuários e grupos a coleções. Para obter mais informações sobre como o direito funciona, consulte este artigo: Configurar direitos em aplicativos do AEM Mobile.

Especificação da ID do pacote

Insira a ID do pacote para o aplicativo AEM Mobile. Ela deve corresponder àquela definida em um dos seguintes locais dos serviços sob demanda:

Configurações de projeto

Vá para Configurações de projeto > guia Acesso > ID do pacote. Se a ID do pacote for especificada aqui, isso será enviado para o serviço de direito em vez do valor da ID do pacote em Aplicativos.

Configurações do aplicativo

Vá para Aplicativos na coluna esquerda e crie ou edite um aplicativo. Se nenhuma ID do pacote for especificada nas configurações do projeto, esta ID do pacote será usada.

Gerenciamento de usuários

Usando o administrador de direito, você pode criar e atualizar usuários. Usuários devem ter um nome de usuário e uma senha e ter um campo de descrição opcional. Um usuário pode ser autorizado a um ou mais produtos e pode ser atribuído a um ou mais grupos.

  • Para adicionar um usuário, clique em “Adicionar usuário” na guia “Usuários”.
  • Para editar um usuário, selecione um usuário da grade e clique em “Editar usuário” ou clique duas vezes em uma entrada de usuário. Na caixa de diálogo Editar usuário, atualize o nome de usuário, a senha ou a descrição. Você só precisa definir a senha se a estiver atualizando; caso contrário, pode deixá-la vazia.
  • Para autorizar um produto ao usuário, selecione um produto do primeiro menu suspenso e clique no botão “+”.
  • Para adicionar o usuário a um grupo, selecione um grupo do segundo menu suspenso e clique no botão “+”.
  • Para remover um produto ou grupo do usuário, selecione-o na lista e clique em “Remover”.

Gerenciamento de grupos

Usando o administrador de direito, você pode criar e atualizar grupos. Grupos não são obrigatórios, mas são úteis para autorizar grupos de usuários a um ou mais produtos. Grupos devem ter um nome e ter um campo de descrição opcional. Você pode autorizar produtos a um grupo e atribuir usuários a um grupo.

  • Para adicionar um grupo, clique em “Adicionar grupo” na guia “Grupos”.
  • Para editar um grupo, selecione um grupo da grade, clique em “Editar grupo” ou clique duas vezes. Na caixa de diálogo “Editar grupo”, atualize o nome ou a descrição.
  • Para autorizar um produto ao grupo, selecione um produto do primeiro menu suspenso e clique no botão “+”.
  • Para adicionar um usuário ao grupo, selecione um usuário do segundo menu suspenso e clique no botão “+”.
  • Para remover um produto ou um usuário do grupo, selecione-o na lista e clique em “Remover”.

Gerenciamento de produtos

Usando o administrador de direito, você pode criar e atualizar produtos. Produtos devem ter um rótulo do produto, uma descrição do produto, uma ID de produto e a data de disponibilidade. Ao criar os produtos, verifique se a ID de produto corresponde àquela criada na seção Produtos e assinaturas do portal sob demanda. Para obter mais informações, consulte este artigo: Compras no aplicativo e assinaturas para o AEM Mobile.

  • Para adicionar um produto, clique em “Adicionar produto” na guia “Produto”.
  • Para editar um produto, selecione-o da grade e clique em “Editar produtos” ou clique duas vezes. Na caixa de diálogo Editar produto, atualize o rótulo do produto, a descrição do produto, a ID de produto ou a data de disponibilidade.
  • Para autorizar um grupo ao produto, selecione um grupo do primeiro menu suspenso e clique no botão “+”.
  • Para autorizar um usuário ao produto, selecione um usuário do segundo menu suspenso e clique no botão “+”.
  • Para remover um grupo ou usuário do produto, selecione-o na lista e clique em “Remover”.  

Ativação do servidor de direito para projetos do AEM Mobile

Para associar o servidor de direito a um projeto do AEM Mobile, é necessário:

  1. Inserir a ID de pacote no servidor de direito. Ela deve corresponder àquela definida nos serviços sob demanda.

    Essa informação pode ser encontrada nos metadados do projeto nos serviços sob demanda:

    Ou nas configurações do aplicativo AEM Mobile (se não definida no nível do projeto).

  2. Inserir o endpoint de direito nos serviços sob demanda. Para obter mais informações, consulte este artigo de ajuda: Configurar direitos em aplicativos do AEM Mobile.

Melhorias na produção

Com a configuração atual, as credenciais do usuário administrativo são definidas no arquivo /php/settings.php. Para otimizar esse processo de organização dos usuários administradores, é melhor armazenar o $admin_list no banco de dados e usar as ferramentas administrativas do MySQL (como phpMyAdmin) para criar, editar, atualizar ou excluir esses usuários.

  1. Crie uma nova tabela (ou seja, admin) no banco de dados. Você pode usar o mesmo banco de dados (preferencial) que foi criado anteriormente e criar quantos usuários administradores forem necessários.

  2. No arquivo /php/settings.php, você precisará substituir $admin_list = array() por instruções preparadas (prepared statements) do MySQL que pedirão ao banco de dados a lista de usuários administradores. Veja, abaixo, um exemplo:

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

Usar a autenticação personalizada no serviço de direito

Este exemplo de servidor de direito agora é compatível com o Google, o Facebook ou um provedor de identidade genérico. Dessa forma, os usuários podem fazer logon usando uma conta do Google ou Facebook ou por meio de uma experiência personalizada de logon que você pode criar. Por padrão, o serviço de direito não é compatível com os três tipos de provedores de identidade simultaneamente.

Para obter mais informações sobre a autenticação personalizada, consulte Autenticação personalizada em aplicativos do AEM Mobile.

Usar o Google ou o Facebook como um provedor de identidade

Ao usar o Google ou o Facebook como provedor de identidade, o aplicativo do AEM Mobile fornecerá o authToken na API Entitlement V2: /entitlements. Dependendo da configuração do servidor de direito, este exemplo de servidor de direito usará a API do Google ou do Facebook para extrair o email do usuário com base no authToken e verificar com o banco de dados de direito.

Para configurar o servidor, atualize o parâmetro $identity_provider para “google” ou “facebook”. Este parâmetro está localizado em /php/settings.php.

Usar um provedor de identidade genérico

Ao usar um provedor de identidade genérico, o aplicativo redirecionará os usuários para a UI de logon personalizada. A UI deve manipular as credenciais de logon, validá-las e retornar o resultado para o aplicativo.

Um exemplo de UI de logon foi configurada no diretório /idp. Ao configurar o provedor de identidade genérico nos serviços sob demanda, o URL de autenticação deve ser o seguinte:
http://<domínio>/<caminho-do-código-fonte>/idp/index.html

Se você já tiver configurado o servidor para usar o Google ou o Facebook, atualize o parâmetro $identity_provider para “default”. Este parâmetro está localizado em /php/settings.php.

Configurar o serviço para dar suporte a provedores de identidade

Cada aplicativo é compatível com apenas um provedor de identidade: Google, Facebook ou genérico. Por padrão, este exemplo de servidor de direito é compatível com apenas um também. No entanto, se você precisar de suporte a mais de um provedor de identidade, para, por exemplo, usar o mesmo servidor de direito para vários aplicativos, copie o diretório /services e renomeie-o para outro nome, como services-google. No diretório recentemente copiado, defina o parâmetro $identity_provider como o provedor de identidade desejado (por exemplo: $identity_provider = “google”) adicionando-o após a linha nº 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);

Neste exemplo, o novo endpoint de direito será o seguinte:
http://<domínio>/<caminho-do-código-fonte>/services-google/index.php

Esta obra está licenciada sob uma licença não adaptada da Creative Commons Attribution-Noncommercial-Share Alike 3.0  As publicações do Twitter™ e do Facebook não são cobertas pelos termos do Creative Commons.

Avisos legais   |   Política de privacidade online