Anforderungen

Grundlagen

  • Grundlagen von MySQL und PHP
  • Grundlagen von AEM Mobile
  • Grundlagen des Erstellens und Veröffentlichens von Inhalten über das On-Demand-Portal

Erforderliche Produkte

  • AEM Mobile

 

Einführung in benutzerdefinierte Berechtigungen

Mithilfe eines Berechtigungsdiensts können Experience Manager Mobile-Apps eine Benutzeranmeldung unterstützen und auf Grundlage der Anmeldeinformationen Zugriff auf bestimmte Sammlungen gewähren (die sogenannte Berechtigung).

Beachten Sie, dass AEM Mobile nur die Direct Entitlement API, Version 2, unterstützt. Siehe Berechtigungen in AEM Mobile-Apps.

Quellcode herunterladen

Damit Sie mit dem Beispielcode für den Berechtigungsserver arbeiten können, laden Sie die Dateien für den Berechtigungsdienst herunter.

 

Hinweis:

Durch Herunterladen der unten aufgeführten Software bestätigen Sie, dass Sie die Adobe.com-Nutzungsbedingungen und die Online-Datenschutzrichtlinie von Adobe gelesen haben und diesen zustimmen.

Hinweis:

Die Beispielimplementierung wird wie vorliegend zur Verfügung gestellt. Adobe bietet keinen Support für den Code, die Implementierung oder das Bereitstellungsverfahren. Wenn Sie Fragen zur Implementierung haben, nutzen Sie das AEM Mobile-Forum.  

Berechtigungsdatenbank installieren

Die MySQL-Datenbank muss die richtige Tabellenstruktur aufweisen, damit das Berechtigungssystem Daten speichern und abrufen kann.

Beachten Sie, dass in den folgenden Beispielen phpMyAdmin für die Verwaltung der MySQL-Datenbank verwendet wird. Sie können aber auch ein anderes MySQL-Verwaltungswerkzeug verwenden.

Wenn phpMyAdmin bereits auf dem Server installiert ist, fahren Sie mit dem nächsten Abschnitt zum Erstellen einer neuen Datenbank fort.

phpMyAdmin installieren

  1. Rufen Sie die phpMyAdmin-Homepage auf.

  2. Klicken Sie auf die Schaltfläche „Download x.x.x“, um die aktuelle Version von phpMyAdmin herunterzuladen.

  3. Folgen Sie dem phpMyAdmin-Installationsleitfaden und installieren Sie phpMyAdmin auf dem Server, auf dem die direkte Berechtigung gehostet wird.

  4. Öffnen Sie das phpMyAdmin-Portal auf dem Server, auf dem Sie es installiert haben. Beispiel: http://<meine-Domäne>/phpmyadmin

  5. Wenn Sie aufgefordert werden, sich anzumelden, geben Sie den Benutzernamen und das Kennwort für die Datenbank auf dem Server ein.

Neue Datenbank erstellen

  1. Klicken Sie auf der Homepage von phpMyAdmin in der linken Seitenleiste auf die Schaltfläche „New“ (Neu) oder auf die Registerkarte „Database“ (Datenbank) in der oberen Navigationsleiste.

  2. Geben Sie auf der Datenbankseite im Feld „Create database“ (Neue Datenbank anlegen) einen neuen Datenbanknamen ein (vorzugsweise „entitlement_admin“).

  3. Klicken Sie auf die Schaltfläche „Create“ (Anlegen), um eine neue Datenbank mit dem eingegebenen Namen zu erstellen.

Vordefinierte Datenbankstruktur hochladen

  1. Nachdem Sie die Datenbank erstellt haben, klicken Sie in der Liste auf die Datenbank „entitlement_admin“ (bzw. den Datenbanknamen, den Sie angegeben haben).

  2. Klicken Sie auf der Seite für die Datenbank „entitlement_admin“ in der oberen Navigationsleiste auf die Registerkarte „Import“ (Importieren).

  3. Klicken Sie auf die Option „Choose File“ (Datei wählen), um das Browser-Fenster zu öffnen.

  4. Navigieren Sie im Browser-Fenster zum heruntergeladenen Berechtigungsserverordner und wählen Sie die vordefinierte Datenbankdatei mit dem Namen „entitlement_admin.sql“ aus.

  5. Klicken Sie auf die Schaltfläche „OK“, um die ausgewählte Datenbank hochzuladen.

    Sie erhalten eine Meldung, dass der Upload erfolgreich abgeschlossen wurde.

Quellcode konfigurieren

Sie müssen einen Abschnitt des Quellcodes aktualisieren, damit der Berechtigungsdienst mit der Datenbank kommunizieren kann, die Sie soeben erstellt haben.

MySQL-Einstellungen aktualisieren

  1. Navigieren Sie zum Quellcodeordner des Berechtigungsservers.

  2. Öffnen Sie die Datei „settings.php“ in einem Texteditor. Sie finden diese Datei im Ordner „Source-Code/php/settings.php“.

  3. Aktualisieren Sie die Werte für die folgenden Parameter:

    // 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. Aktualisieren Sie die Liste der vordefinierten Benutzer mit Administratorrechten für den Parameter $admin_list. Dies ist die Liste von Administratoren, die auf den benutzerdefinierten Beispielberechtigungsserver zugreifen können, sobald dieser gehostet wird.

     

    Jeder Administrator ist an eine AEM Mobile-App gebunden. Wenn Sie über zwei iOS-Apps verfügen, müssen Sie zwei Administratoren erstellen.

    Die Liste weist das folgende Format auf:

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

    Hinweis:

    Sie müssen einen MD5-Hash des Kennworts erstellen (PHP-Funktion „md5()“). Im Beispiel oben ist das Beispielkennwort „202cb962ac59075b964b07152d234b70“ ein MD5-Hash mit dem Wert „123“.

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

Quellcode hosten

Laden Sie den Quellcode für den Berechtigungsdienst mit den aktualisierten Einstellungen auf den gehosteten Server hoch, auf dem Sie die Datenbank in den vorherigen Schritten eingerichtet haben.

  1. Stellen Sie mit einem FTP-Client wie Transmit eine Verbindung mit dem Webserver her, auf dem der Berechtigungsdienst gehostet wird.

  2. Legen Sie als Upload-Ziel das gewünschte Verzeichnis auf dem Webserver fest.

  3. Wählen Sie den Quellcodeordner des Berechtigungsservers aus.

  4. Laden Sie alle Dateien im Quellcodeordner des Berechtigungsservers hoch.

  5. Navigieren Sie auf dem Webserver zum Pfad des Quellcodeordners, um den Anmeldebildschirm anzuzeigen.

Setup des Berechtigungsservers testen

Zum Testen des Setups des Berechtigungsdiensts stehen eine Reihe von Tests zur Verfügung. Navigieren Sie auf dem Host-Server zu „setup_check.html“. Klicken Sie auf eine der Schaltflächen in der linken Seitenleiste, um den entsprechenden Test durchzuführen. Für jeden Test wird bei Erfolg „ok“ oder bei einem Fehler eine entsprechende Fehlermeldung zurückgegeben.

Folgende Tests sind verfügbar:

  • „All“: Hiermit werden alle unten aufgeführten Tests ausgeführt.
  • „PHP Modules“: Hiermit wird überprüft, ob die erforderlichen PHP-Module installiert wurden, die vom Quellcode für die direkte Berechtigung verwendet werden.
  • „Configuration“: Überprüft, ob der Benutzer die Datei „settings.php“ aktualisiert hat. Standardmäßig werden die Werte auskommentiert. Daher müssen Benutzer die tatsächlichen Werte angeben.
  • „Database“: Hiermit wird überprüft, ob die Datenbank für die direkte Berechtigung erfolgreich erstellt wurde. Außerdem wird überprüft, ob mit den angegebenen Anmeldeinformationen (in „settings.php“) auf die Datenbank für die direkte Berechtigung zugegriffen werden kann.
  • „HTTP Connection“: Überprüft, ob der Hosting-Server auf (ungesicherte) HTTP-Websites zugreifen kann.
  • „HTTPS Connection“: Hiermit wird überprüft, ob der Hosting-Server auf (verschlüsselte) HTTPS-Websites zugreifen kann.

Berechtigungsdienst anpassen

In diesem Abschnitt erfahren Sie, wie Sie den Berechtigungsdienst an Ihr Branding anpassen können. Alle Bilder müssen im Ordner „images“ im Ordner mit dem Quellcode für den Berechtigungsserver gespeichert werden.

Hintergrund für den Anmeldebildschirm anpassen

  1. Erstellen Sie ein Bild mit den Abmessungen 1200 x 1200 Pixel.
  2. Speichern Sie das Bild als „login_bg.jpg“.

Logo auf dem Anmeldebildschirm anpassen

  1. Erstellen Sie ein Bild mit den Abmessungen 34 x 33 Pixel.
  2. Speichern Sie das Bild als „aemmobile_logo.png“.

Banner auf der Startseite anpassen

  1. Erstellen Sie ein Bild mit den Abmessungen 1200 x 170 Pixel.
  2. Speichern Sie das Bild als „header.jpg“.

Text auf der Anmeldeseite anpassen

  1. Navigieren Sie zum Quellcodeordner des Servers für direkte Berechtigung.
  2. Öffnen Sie die Datei „index.html“ in einem Texteditor.
  3. Bearbeiten Sie die folgenden Werte:

Kopfzeile für Anmeldung

  • Suchen Sie den Text „Adobe Experience Manager Mobile“ (Zeile 31).
  • Überschreiben Sie den Wert mit Ihrer eigenen Kopfzeile für die Anmeldung.

Platzhalter für den Benutzernamen

  • Suchen Sie den Text „Sign in with your Adobe ID for AEM Mobile“ (Zeile 40).
  • Überschreiben Sie den Wert mit Ihrem eigenen Platzhalter für den Benutzernamen.

Platzhalter für das Kennwort

  • Suchen Sie den Text „Password“ (Zeile 48).
  • Überschreiben Sie den Wert mit Ihrem eigenen Platzhalter für das Kennwort.

Zugriff auf den Berechtigungsdienst

Der Administrator wird vom Berechtigungsdienst automatisch erstellt, wenn dieser bei der Anmeldung nicht bereits vorhanden ist. Nach der Anmeldung wird der Bildschirm angezeigt, auf dem Sie Benutzern und Gruppen Berechtigungen für Sammlungen zuweisen können. Weitere Informationen zur Funktionsweise von Berechtigungen finden Sie im Artikel Berechtigungen in AEM Mobile-Apps.

Bündel-ID angeben

Geben Sie die Bündel-ID für die AEM Mobile-App ein. Diese sollte mit den Werten übereinstimmen, die an folgenden Stellen in On-Demand-Diensten festgelegt wurden:

Projekteinstellungen

Öffnen Sie „Projekteinstellungen“ > Registerkarte „Zugriff“ > „Bündel-ID“. Wenn die Bündel-ID hier angegeben wurde, wird diese anstelle des Werts für die Bündel-ID unter „Apps“ an den Berechtigungsdienst gesendet.

Einstellungen unter „Apps“

Öffnen Sie auf der linken Seite „Apps“ und erstellen oder bearbeiten Sie eine App. Wenn in den Projekteinstellungen keine Bündel-ID festgelegt wurde, wird diese Bündel-ID verwendet.

Benutzer verwalten

Als Berechtigungsadministrator können Sie Benutzer erstellen und aktualisieren. Für Benutzer müssen ein Benutzername und ein Kennwort festgelegt werden. Außerdem ist ein optionales Beschreibungsfeld vorhanden. Ein Benutzer kann eine Berechtigung für eines oder mehrere Produkte besitzen und einer oder mehreren Gruppen zugewiesen werden.

  • Klicken Sie zum Hinzufügen eines Benutzers auf der Registerkarte „Users“ (Benutzer) auf „Add User“ (Benutzer hinzufügen).
  • Um einen Benutzer zu bearbeiten, wählen Sie einen Benutzer im Raster aus und klicken Sie auf „Edit User“ (Benutzer bearbeiten) oder doppelklicken Sie auf einen Benutzereintrag. Im Dialogfeld „Edit User“ können Sie den Benutzernamen, das Kennwort und die Beschreibung aktualisieren. Sie müssen das Kennwort nur festlegen, wenn Sie es aktualisieren möchten, andernfalls können Sie das Feld leer lassen.
  • Wenn Sie dem Benutzer die Berechtigung für ein Produkt zuweisen möchten, wählen Sie im ersten Dropdown-Feld ein Produkt und klicken Sie dann auf die Schaltfläche „+“.
  • Wenn Sie den Benutzer einer Gruppe hinzufügen möchten, wählen Sie im zweiten Dropdown-Feld eine Gruppe und klicken Sie dann auf die Schaltfläche „+“.
  • Wenn Sie bei dem Benutzer ein Produkt oder eine Gruppe entfernen möchten, wählen Sie den entsprechenden Eintrag in der Liste aus und klicken Sie auf „Remove“ (Entfernen).

Gruppen verwalten

Als Berechtigungsadministrator können Sie Gruppen erstellen und aktualisieren. Gruppen sind nicht erforderlich, sie sind aber praktisch, um mehreren Benutzern gleichzeitig Berechtigungen für eines oder mehrere Produkte zu erteilen. Für Gruppen muss ein Namen festgelegt werden. Außerdem ist ein optionales Beschreibungsfeld vorhanden. Sie können einer Gruppe Berechtigungen für Produkte erteilen oder Benutzer zuweisen.

  • Klicken Sie zum Hinzufügen einer Gruppe auf der Registerkarte „Groups“ (Gruppen) auf „Add Group“ (Gruppe hinzufügen).
  • Um eine Gruppe zu bearbeiten, wählen Sie eine Gruppe im Raster und klicken dann auf „Edit Group“ (Gruppe bearbeiten) oder Sie doppelklicken auf die Gruppe. Im Dialogfeld „Edit Group“ (Gruppe bearbeiten) können Sie den Namen und die Beschreibung aktualisieren.
  • Wenn Sie der Gruppe die Berechtigung für ein Produkt zuweisen möchten, wählen Sie im ersten Dropdown-Feld ein Produkt und klicken Sie dann auf die Schaltfläche „+“.
  • Wenn Sie der Gruppe einen Benutzer hinzufügen möchten, wählen Sie im zweiten Dropdown-Feld einen Benutzer und klicken Sie dann auf die Schaltfläche „+“.
  • Wenn Sie ein Produkt oder einen Benutzer aus der Gruppe entfernen möchten, wählen Sie den entsprechenden Eintrag in der Liste aus und klicken Sie auf „Remove“ (Entfernen).

Produkte verwalten

Als Berechtigungsadministrator können Sie Produkte erstellen und aktualisieren. Für Produkte müssen eine Produktbeschriftung, eine Produktbeschreibung, eine Produkt-ID und ein Verfügbarkeitsdatum angegeben werden. Wenn Sie die Produkte erstellen, achten Sie darauf, dass die Produkt-ID mit der ID übereinstimmt, die im Abschnitt „Produkte und Abonnements“ im On-Demand-Portal erstellt wurde. Weitere Informationen finden Sie im Artikel In-App-Käufe und -Abonnements in AEM Mobile.

  • Klicken Sie zum Hinzufügen eines Produkts auf der Registerkarte „Product“ (Product) auf „Add Product“ (Produkt hinzufügen).
  • Um ein Produkt zu bearbeiten, wählen Sie ein Produkt im Raster und klicken dann auf „Edit Product“ (Produkt bearbeiten) oder Sie doppelklicken auf das Produkt. Im Dialogfeld „Edit Product“ (Produkt bearbeiten) können Sie die Produktbeschriftung, die Produktbeschreibung, die Produkt-ID und das Verfügbarkeitsdatum aktualisieren.
  • Wenn Sie einer Gruppe die Berechtigung für das Produkt zuweisen möchten, wählen Sie im ersten Dropdown-Feld eine Gruppe und klicken Sie dann auf die Schaltfläche „+“.
  • Wenn Sie einem Benutzer die Berechtigung für ein Produkt zuweisen möchten, wählen Sie im zweiten Dropdown-Feld einen Benutzer und klicken Sie dann auf die Schaltfläche „+“.
  • Wenn Sie eine Gruppe oder einen Benutzer aus dem Produkt entfernen möchten, wählen Sie den entsprechenden Eintrag in der Liste aus und klicken Sie auf „Remove“ (Entfernen).  

Berechtigungsserver für ein AEM Mobile-Projekt aktivieren

Um den Berechtigungsserver einem AEM Mobile-Projekt zuzuordnen, müssen Sie folgende Schritte ausführen:

  1. Geben Sie die Bündel-ID auf dem Berechtigungsserver ein. Sie muss mit dem Wert übereinstimmen, der in den On-Demand-Diensten festgelegt wurde.

    Diesen finden Sie in den Projektmetadaten in den On-Demand-Diensten:

    Der Wert wird auch in den App-Einstellungen in AEM Mobile aufgeführt (falls nicht auf Projektebene festgelegt).

  2. Geben Sie den Berechtigungsendpunkt in den On-Demand-Diensten ein. Weitere Informationen finden Sie im Hilfeartikel Berechtigungen in AEM Mobile-Apps.

Verbesserungen für die Produktion

Beim aktuellen Setup werden die Anmeldeinformationen für Benutzer mit Administratorrechten in der Datei „/php/settings.php“ festgelegt. Um diesen Vorgang zum Auswählen von Administratoren zu optimieren, sollten Sie „$admin_list“ in der Datenbank speichern und mit den MySQL-Verwaltungswerkzeugen (z. B. phpMyAdmin) erstellen, bearbeiten, aktualisieren und löschen.

  1. Erstellen Sie eine neue Tabelle (z. B. „admins“) in der Datenbank. Sie können die weiter oben erstellte Datenbank verwenden (empfohlen) und beliebig viele Administratoren erstellen.

  2. In der Datei „/php/settings.php“ müssen Sie „$admin_list = array()“ durch MySQL-PREPARE-Anweisungen ersetzen, mit denen die Liste der Administratoren bei der Datenbank abgefragt wird. Ein Beispiel:

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

Verwenden der benutzerdefinierten Authentifizierung im Berechtigungsdienst

Dieser Beispielberechtigungsserver unterstützt jetzt die Verwendung von Google, Facebook und allgemeinen Identitätsanbietern. So können sich Benutzer mit einem Google- oder Facebook-Konto oder über ein von Ihnen entworfenes benutzerdefiniertes Anmeldeverfahren anmelden. Standardmäßig unterstützt der Berechtigungsdienst nicht alle drei Typen von Identitätsanbietern gleichzeitig.

Weitere Informationen über die benutzerdefinierte Authentifizierung finden Sie unter Benutzerdefinierte Authentifizierung in AEM Mobile-Apps.

Verwenden von Google oder Facebook als Identitätsanbieter

Wenn Sie Google oder Facebook als Identitätsanbieter verwenden, stellt die AEM Mobile-App das authToken in den Berechtigungen der Entitlement API, Version 2, bereit. Abhängig von der Konfiguration des Berechtigungsservers verwendet dieser Beispielberechtigungsserver die Google- oder Facebook-API, um die E-Mail-Adresse des Benutzers in das authToken zu übertragen und in der Berechtigungsdatenbank zu überprüfen.

Um den Server zu konfigurieren, aktualisieren Sie den Parameter „$identity_provider“ auf „google“ oder „facebook“. Dieser Parameter befindet sich unter „/php/settings.php“.

Verwenden eines allgemeinen Identitätsanbieters

Wenn Sie einen allgemeinen Identitätsanbieter verwenden, leitet die App die Benutzer zur bereitgestellten benutzerdefinierten Benutzeroberfläche für die Anmeldung weiter. Die Benutzeroberfläche muss die Anmeldedaten bearbeiten, überprüfen und die Ergebnisse zurück an die App übergeben.

Im Ordner „/idp“ wurde eine Beispielbenutzeroberfläche für die Anmeldung eingerichtet. Beim Einrichten des allgemeinen Identitätsanbieters in den On-Demand-Diensten sollte die Authentifizierungs-URL wie folgt lauten:
http:// <Domäne>/<Pfad zum Quellcode>/idp/index.html

Wenn Sie den Server zuvor für die Verwendung von Google oder Facebook eingerichtet haben, aktualisieren Sie den Parameter „$identity_provider“ wieder auf „default“. Dieser Parameter befindet sich unter „/php/settings.php“.

Konfigurieren des Diensts für die Unterstützung von Identitätsanbietern

Jede App unterstützt nur einen Identitätsanbieter: Google, Facebook oder „Allgemein“. Standardmäßig unterstützt dieser Beispielberechtigungsserver ebenfalls nur einen Anbieter. Wenn Sie jedoch aus bestimmten Gründen mehrere Identitätsanbieter unterstützen möchten, z. B. bei der Verwendung des gleichen Berechtigungsservers für mehrere Apps, müssen Sie das Verzeichnis „/services“ kopieren und umbenennen, z. B. in „services-google“. Erzwingen Sie im gerade kopierten Verzeichnis für den Parameter „$identity_provider“ das Festlegen auf den gewünschten Identitätsanbieter (Beispiel: $identity_provider = „google“), indem Sie ihn nach Zeile 13 einfügen.

// 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 diesem Beispiel lautet der neue Berechtigungsendpunkt wie folgt:
http://<Domäne>/<Pfad-zum-Quellcode>/services-google/index.php

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie