Vereisten

Vereiste kennis

  • Kennis van MySQL en PHP
  • Kennis van AEM Mobile
  • Kennis van het maken en publiceren van inhoud via de on-demandportal

Vereiste producten

  • AEM Mobile

 

Inleiding tot aangepaste machtigingen

Via een machtigingsservice kunnen Experience Manager Mobile-apps ondersteuning bieden voor gebruikersaanmeldingen en toegang (machtigingen) tot bepaalde collecties verlenen op basis van de aanmeldingsgegevens.

Let op: AEM Mobile biedt alleen ondersteuning voor de Direct Entitlement API v2. Zie Machtiging in AEM Mobile.

De broncode downloaden

Als u met de voorbeeldcode van de machtigingsserver wilt werken, downloadt u de machtigingsservicebestanden.

 

Opmerking:

Door de onderstaande software te downloaden geef ik aan dat ik de voorwaarden van Adobe.com en het onlineprivacybeleid van Adobe heb gelezen en dat ik hiermee akkoord ga.

Opmerking:

De voorbeeldimplementatie wordt in de huidige staat geleverd; Adobe biedt geen ondersteuning voor de code, de implementatie of het implementatieproces. Als u vragen hebt over de implementatie, gebruikt u het AEM Mobile-forum.  

De machtigingsdatabase installeren

Als het machtigingssysteem informatie uit de MySQL-database moet kunnen opslaan en ophalen, moet deze database over de juiste tabelstructuur beschikken.

Let op: in de volgende voorbeelden wordt phpMyAdmin gebruikt om de MySQL-database te beheren; met andere MySQL-beheergereedschappen bereikt u mogelijk hetzelfde effect.

Als u phpMyAdmin al op de server hebt geïnstalleerd, gaat u door naar de volgende sectie over het maken van een nieuwe database.

phpMyAdmin installeren

  1. Navigeer naar de startpagina van phpMyAdmin.

  2. Klik op de knop “Download x.x.x” om de meest recente versie van phpMyAdmin te downloaden.

  3. Volg de installatierichtlijnen van phpMyAdmin en installeer phpMyAdmin op de server die als host voor de directe machtiging fungeert.

  4. Navigeer naar de phpMyAdmin-portal van de server waarop de portal is geïnstalleerd. Voorbeeld: http://<my-domain>/phpmyadmin

  5. Als u wordt gevraagd om u aan te melden, voert u de databasegebruikersnaam en het wachtwoord voor de server in.

Een nieuwe database maken

  1. Klik op de startpagina van phpMyAdmin op de knop “New” (Nieuw) op de linkerzijbalk of op het tabblad “Database” op de navigatiebalk aan de bovenkant.

  2. Voer op de databasepagina in het veld “Create database” (Database maken) een nieuwe databasenaam in (bij voorkeur 'entitlement_admin').

  3. Klik op de knop “Create” (Maken) om een nieuwe database met de ingevoerde naam te genereren.

De vooraf gedefinieerde databasestructuur uploaden

  1. Nadat u de database hebt gemaakt, klikt u in de lijst op de database “entitlement_admin” (of de opgegeven databasenaam).

  2. Klik op de databasepagina “entitlement_admin” op het tabblad “Import” (Importeren) op de navigatiebalk aan de bovenkant.

  3. Kies de optie “Choose File” (Bestand selecteren) om het browservenster te openen.

  4. Navigeer vanuit het browservenster naar de gedownloade machtigingsservermap en selecteer het vooraf gedefinieerde databasebestand “entitlement_admin.sql”.

  5. Klik op de knop “Go” (Starten) om de geselecteerde database te uploaden.

    Er verschijnt een bericht wanneer het uploaden is gelukt.

De broncode configureren

U moet een sectie van de broncode bijwerken zodat de machtigingsservice kan communiceren met de database die u zojuist hebt gemaakt.

De MySQL-instellingen bijwerken

  1. Navigeer naar de broncodemap van de machtigingsserver.

  2. Open met een teksteditor het bestand “settings.php” dat u in de volgende map vindt: “Source-Code/php/settings.php”.

  3. Werk de waarden voor de volgende parameters bij:

    // 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. Werk voor de parameter $admin_list de lijst met vooraf gedefinieerde beheerders bij. Dit is de lijst met beheerders die toegang hebben tot het aangepaste voorbeeld van de machtigingsserver zodra deze wordt gehost.

     

    Elke beheerder is gekoppeld aan een AEM Mobile-app. Als u twee iOS-apps hebt, moet u twee beheerders maken.

    De lijst bevat de volgende indeling:

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

    Opmerking:

    U moet een MD5-hash op het wachtwoord uitvoeren (via de PHP-functie md5()). In het bovenstaande voorbeeld is het voorbeeldwachtwoord “202cb962ac59075b964b07152d234b70” een MD5-hash van de waarde “123”.

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

De broncode hosten

Upload de broncode van de machtigingsservice met de bijgewerkte instellingen naar de gehoste server waarop u in de vorige stappen de database hebt ingesteld.

  1. Gebruik een FTP-client zoals Transmit om verbinding te maken met de webserver die als host voor uw machtigingsservice fungeert.

  2. Stel de uploadbestemming in op de gewenste map van de webserver.

  3. Selecteer de broncodemap van de machtigingsserver.

  4. Upload alle bestanden in de broncodemap van de machtigingsserver.

  5. Navigeer naar het pad van de broncodemap van de webserver om het aanmeldingsscherm weer te geven.

De instellingen van de machtigingsserver testen

Er is een reeks testen beschikbaar om de instellingen van de machtigingsservice te testen. Navigeer via de hostserver naar setup_check.html. Klik op een van de knoppen op de linkerzijbalk om de bijbehorende test uit te voeren. Elke controle krijgt de status OK als de bewerking is gelukt of een foutbericht als de bewerking niet is gelukt.

De volgende testen kunnen worden uitgevoerd:

  • Alles: hiermee wordt de volledige onderstaande test uitgevoerd.
  • PHP-modules: controleren of de benodigde PHP-modules zijn geïnstalleerd die door de broncode voor directe machtigingen worden gebruikt.
  • Configuratie: Controleren of de gebruiker het bestand settings.php heeft bijgewerkt. De waarden worden standaard uitgeschakeld zodat gebruikers hun daadwerkelijke waarden moeten opgeven.
  • Database: Controleren of de database voor directe machtiging is gemaakt. U moet controleren of de database voor directe machtiging toegankelijk is met de opgegeven referenties (in settings.php).
  • HTTP-verbinding: controleren of de hostserver toegang heeft tot (onbeveiligde) HTTP-websites.
  • HTTPS-verbinding: controleren of de hostserver toegang heeft tot (gecodeerde) HTTPS-websites.

Uw machtigingsservice aanpassen

In deze sectie kunt u de machtigingsservice aanpassen aan uw eigen merk. Alle afbeeldingen moeten in de afbeeldingenmap in de broncodemap van de machtigingsserver worden geplaatst.

De achtergrond van het aanmeldingsscherm aanpassen

  1. Maak een afbeelding met de volgende afmeting: 1200 x 1200 pixels.
  2. Sla de afbeelding op als “login_bg.jpg”.

Het logo in het aanmeldingsscherm aanpassen

  1. Maak een afbeelding met de volgende afmeting: 34 x 33 pixels.
  2. Sla de afbeelding op als “aemmobile_logo.png”.

De banner op de startpagina aanpassen

  1. Maak een afbeelding met de volgende afmeting: 1200 x 170 pixels.
  2. Sla de afbeelding op als “header.jpg”.

De tekst op de aanmeldingspagina aanpassen

  1. Navigeer naar de broncodemap van de directe-machtigingsserver.
  2. Open het bestand “index.html” in een teksteditor.
  3. Bewerk de volgende waarden:

Aanmeldingskoptekst

  • Zoek het volgende: “Adobe Experience Manager Mobile” (regel 31).
  • Wijzig de waarde in uw eigen aanmeldingskoptekst.

Gebruikersnaamaanduiding

  • Zoek het volgende: “Sign in with your Adobe ID for AEM Mobile” (regel 40)
  • Wijzig de waarde in uw eigen gebruikersnaamaanduiding.

Wachtwoordaanduiding

  • Zoek het volgende: “Password” (regel 48)
  • Wijzig de waarde in uw eigen wachtwoordaanduiding.

Toegang tot de machtigingsservice

Als er nog geen beheerders zijn, worden deze automatisch door de machtigingsservice gemaakt tijdens het aanmelden. Nadat u zich hebt aangemeld, wordt het scherm weergegeven waarin u gebruikers en groepen kunt machtigen voor collecties. Zie Machtiging in AEM Mobile-apps voor meer informatie over de wijze waarop machtiging werkt.

De bundel-id opgeven

Voer de bundel-id voor de AEM Mobile-app in. Deze moet overeenkomen met de id die u hebt ingesteld op een van de volgende locaties voor on-demandservices:

Projectinstellingen

Ga naar Projectinstellingen > het tabblad Toegang > Bundel-id. Als hier de bundel-id is opgegeven, wordt deze waarde naar de machtigingsservice verzonden in plaats van de waarde voor de bundel-id in Apps.

Appinstellingen

Ga naar Apps aan de linkerkant en maak of bewerk een app. Als er geen bundel-id is opgegeven bij de projectinstellingen, wordt deze bundel-id gebruikt.

Gebruikers beheren

Met de machtigingsbeheerfunctie kunt u gebruikers maken en bijwerken. Gebruikers moeten een gebruikersnaam en wachtwoord hebben en een optioneel beschrijvingsveld bevatten. Gebruikers kunnen voor een of meer producten worden gemachtigd en worden toegewezen aan een of meer groepen.

  • Als u een gebruiker wilt toevoegen, klikt u op het tabblad “Users” (Gebruikers) op de optie “Add User” (Gebruiker toevoegen).
  • Als u een gebruiker wilt bewerken, selecteert u een gebruiker in het raster. Klik vervolgens op “Edit User” (Gebruiker bewerken) of dubbelklik op de naam van een gebruiker. In het dialoogvenster Edit User kunt u de gebruikersnaam, het wachtwoord of de beschrijving bijwerken. U hoeft het wachtwoord alleen in te stellen als u dit bijwerkt. Anders kunt u dit leeg laten.
  • Als u een gebruiker voor een product wilt machtigen, selecteert u een product in het eerste vervolgkeuzemenu en klikt u op de plusknop (+).
  • Als u de gebruiker aan een groep wilt toevoegen, selecteert u een groep in het tweede vervolgkeuzemenu en klikt u op de plusknop (+).
  • Als u een product of groep van de gebruiker wilt verwijderen, selecteert u dit in de lijst en klikt u op “Remove” (Verwijderen).

Groepen beheren

Met de machtigingsbeheerfunctie kunt u groepen maken en bijwerken. Groepen zijn niet vereist, maar ze zijn handig om groepen of gebruikers te machtigen voor een of meer producten. Groepen moeten een naam hebben en een optioneel beschrijvingsveld bevatten. U kunt groepen machtigen voor producten en gebruikers aan een groep toevoegen.

  • Als u een groep wilt toevoegen, klikt u op het tabblad “Groups” (Groepen) op de optie “Add Group” (Groep toevoegen).
  • Als u een groep wilt bewerken, selecteert u een groep in het raster en klikt u op “Edit Group” (Groep bewerken) of dubbelklikt u op de naam van de groep. In het dialoogvenster Edit Group kunt u de naam of de beschrijving bijwerken.
  • Als u een groep voor een product wilt machtigen, selecteert u een product in het eerste vervolgkeuzemenu en klikt u op de plusknop (+).
  • Als u een gebruiker aan de groep wilt toevoegen, selecteert u een gebruiker in het tweede vervolgkeuzemenu en klikt u op de plusknop (+).
  • Als u een product of gebruiker van de groep wilt verwijderen, selecteert u dit in de lijst en klikt u op “Remove”.

Producten beheren

Met de machtigingsbeheerfunctie kunt u producten maken en bijwerken. Producten moeten een productlabel, productbeschrijving, product-id en beschikbaarheidsdatum hebben. Als u producten maakt, moet u controleren of de product-id overeenkomt met de id die u hebt gemaakt in het gedeelte Producten en abonnementen van de on-demandportal. Zie het artikel Aankopen in de app en abonnementen voor AEM Mobile voor meer informatie.

  • Als u een product wilt toevoegen, klikt u op het tabblad “Product” op de optie “Add Product” (Product toevoegen).
  • Als u een product wilt bewerken, selecteert u een product in het raster en klikt u op “Edit Product” (Product bewerken) of dubbelklikt u op de naam van het product. In het dialoogvenster Edit Product kunt u het productlabel, de productbeschrijving, de product-id of de beschikbaarheidsdatum bijwerken.
  • Als u een groep voor een product wilt machtigen, selecteert u een groep in het eerste vervolgkeuzemenu en klikt u op de plusknop (+).
  • Als u een gebruiker voor een product wilt machtigen, selecteert u een gebruiker in het tweede vervolgkeuzemenu en klikt u op de plusknop (+).
  • Als u een groep of gebruiker van het product wilt verwijderen, selecteert u deze in de lijst en klikt u op “Remove”.  

De machtigingsserver activeren voor een AEM Mobile-project

Als u de machtigingsserver aan een AEM Mobile-project wilt koppelen, moet u het volgende doen:

  1. Voer de bundel-id in de machtigingsserver in. Deze moet overeenkomen met de id die is ingesteld in de on-demandservices.

    U vindt deze in de projectmetagegevens van de on-demandservices:

    Of in de instellingen van de AEM Mobile-app (als deze niet is ingesteld op projectniveau).

  2. Voer het machtigingseindpunt in bij de on-demandservices. Zie het artikel Machtiging in AEM Mobile-apps voor meer informatie.

Productieverbeteringen

Met de huidige instellingen worden de referenties voor de beheerder ingesteld in het bestand /php/settings.php. Als u het selectieproces voor beheerders wilt optimaliseren, kunt u $admin_list het beste opslaan in de database en de beheergereedschappen van MySQL (zoals phpMyAdmin) gebruiken voor het maken, bewerken, bijwerken en verwijderen van beheerders.

  1. Maak een nieuwe tabel (dat wil zeggen beheerders) in de database. U kunt dezelfde database gebruiken (aanbevolen) die eerder is gemaakt en zoveel beheerders maken als u nodig hebt.

  2. In het bestand /php/settings.php moet u $admin_list = array() vervangen door voorbereidende instructies van MySQL die een query op de database uitvoeren voor de lijst met beheerders. Hieronder ziet u een voorbeeld:

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

Aangepaste verificatie gebruiken in de machtigingsservice

In dit voorbeeld van een machtigingsserver wordt nu het gebruik van Google, Facebook of een algemene identiteitsprovider ondersteund. Op deze manier kunnen gebruikers zich aanmelden met een Google- of Facebook-account of een aangepaste, door u ontworpen aanmeldingsmethode gebruiken. Standaard worden niet alle drie typen identiteitsproviders tegelijkertijd ondersteund.

Zie Aangepaste verificatie in AEM Mobile-apps voor meer informatie over aangepaste verificatie.

Google of Facebook gebruiken als identiteitsprovider

Als u Google of Facebook als identiteitsprovider gebruikt, is de authToken in de AEM Mobile-app beschikbaar in Entitlement V2 API: /entitlements. Afhankelijk van de configuratie van de machtigingsserver, wordt in dit voorbeeld van een machtigingsserver de Google of Facebook API gebruikt om het e-mailadres van de gebruiker op basis van de authToken vast te stellen en te controleren met de machtigingendatabase.

Als u de server wilt configureren, moet u de parameter $identity_provider bijwerken naar google of facebook. U vindt deze parameter in /php/settings.php.

Een algemene identiteitsprovider gebruiken

Als u een algemene identiteitsprovider gebruikt, worden gebruikers in de app omgeleid naar de aangepaste aanmeldingsgebruikersinterface die u hebt opgegeven. De gebruikersinterface moet de aanmeldingsgegevens verwerken, deze valideren en het resultaat retourneren aan de app.

In de map /idp is een voorbeeld ingesteld van de aanmeldingsgebruikersinterface. Wanneer u de algemene identiteitsprovider instelt in de on-demandservices, moet de verificatie-URL als volgt zijn:
http://<domein>/<pad-naar-broncode>/idp/index.html

Als u de server eerder voor gebruik van Google of Facebook hebt geconfigureerd, moet u de parameter $identity_provider weer bijwerken naar de standaardwaarde. U vindt deze parameter in /php/settings.php.

De service configureren voor het ondersteunen van identiteitsproviders

Elke app ondersteunt slechts één identiteitsprovider: Google, Facebook of Algemeen. In dit voorbeeld van een machtigingsserver wordt standaard ook maar één identiteitsprovider ondersteund. Als u echter een reden hebt om meer dan één identiteitsprovider te ondersteunen, als u bijvoorbeeld dezelfde machtigingsserver voor meerdere apps wilt gebruiken, moet u de map /services kopiëren en de naam ervan in iets anders wijzigen, zoals services-google. Stel in de zojuist gekopieerde map de parameter $identity_provider geforceerd in op de gewenste identiteitsprovider (voorbeeld: $identity_provider = "google") door deze na regel 13 toe te voegen.

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

In dit voorbeeld wordt het nieuwe machtigingseindpunt:
http://<domein>/<pad-naar-broncode>/services-google/index.php

Dit werk is gelicentieerd onder de Creative Commons Naamsvermelding/Niet-commercieel/Gelijk delen 3.0 Unported-licentie  De voorwaarden van Creative Commons zijn niet van toepassing op Twitter™- en Facebook-berichten.

Juridische kennisgevingen   |   Online privacybeleid