Adobe User Sync Server installieren mit OAuth auf Ubuntu 22.04

Adobe User Sync Server installieren mit OAuth auf Ubuntu 22.04

Das Adobe User Sync Projekt vor allem Betrieben oder Schulen den Vorteil flexibel und einfach Benutzer aus dem Active Directory in die Adminconsole von Adobe zu laden. Hier findet Ihr das Github Projekt:

GitHub - adobe-apiplatform/user-sync.py: Application for synchronizing Adobe customer directories via the User Management API
Application for synchronizing Adobe customer directories via the User Management API - GitHub - adobe-apiplatform/user-sync.py: Application for synchronizing Adobe customer directories via the User…

Vorbereitung in der Developerconsole von Adobe

Adobe Developer Website
The most memorable digital experiences are unleashed by developer creativity. Adobe products and services empower developers.

Zu erst meldet man sich mit einen Adobe Admin Account an und navigiert zu Projects und erstellt hier ein neues Projekt.

Danach klickt man auf + Add to Project und wählt hier API aus.

Nun sieht man eine Liste der API´s die einen zur Verfügung stehen. Man wählt aber nur die User Management API (UMAPI) aus.

Im weiteren wählt man als Authentication OAuth Server-to-Server aus.

Installation des Adobe User Sync Tools

⚠️
Bitte ersetze den Link im wget Befehl mit der neusten Version. Die Releases findest du hier: https://github.com/adobe-apiplatform/user-sync.py/releases

Als erstes bezieht man den passenden Release:

mkdir /opt/adobe/
cd /opt/adobe/

wget https://github.com/adobe-apiplatform/user-sync.py/releases/download/v2.9.1/user-sync-v2.9.1-ubuntu_jammy.tar.gz

Danach wird das Paket entpackt:

tar -xf user-sync-v2.9.1-ubuntu_jammy.tar.gz

#tar Datei entfernen
rm user-sync-v2.9.1-ubuntu_jammy.tar.gz

Mit dem folgendem Befehl erstellen wir die Beispielkonfiguration:

./user-sync example-config

LDAP einbinden

Öffne die connector-ldap.yml Datei für die Konfiguration des LDAP Moduls:

Hier werden die Daten des LDAP Users angegeben. Der Benutzer wird bei username angegeben. Das Passwort dazu bei password. Als Host wird die LDAP URI angegeben. Sollte man kein LDAPS benutzen muss auch LDAP:// angegeben werden, da sonst der falsche Port genutzt wird. Bei Base-DN wird der Domänen Pfad angegeben.

Die Variable search_page_size muss an die Größe Organisation angepasst werden. Sollten 3500 Benutzer in AD synchronisiert werden, so sollten 4000 angegeben werden.

User Management API verbinden

In dem zuvor angelegten Projekt kann man nun Credentails seine OAuth Daten abrufen. Diese müssen in die connector-umapi.yml eingetragen werden.

Nun wird die connector-umapi.yml geöffnet und die Daten eingetragen.

Die authentication_method muss auf oauth gestellt werden. Dann wird die client_id sowie das client_secret eingetragen. Danach muss noch die org_id eingetragen werden. Diese findet man alle im Projekt unter OAuth Server-to-Server.

Konfiguration des User Sync Tool´s

Hierfür öffnet man die user-sync-config.yml . Hier konfigurieren wir als erstes die directory_users . Hierfür wird user_identity_type auf enterpriseID gesetzt und default_contry_code auf DE für Deutsch. Danach erstellen wir die Gruppen die synchronisiert werden sollen. Ein Benutzer muss Mitglieder dieser Gruppe sein, damit er in Adobe angelegt wird.

group:
  - directory_group: "Gruppe im AD"
    adobe_groups:
      - "Gruppe in der Adminconsole"
  - directory_group: "Gruppe im AD NR 2"
    adobe_groups:
      - "Gruppe in der Adminconsole NR 2"

Weitere Änderungen müssen für die Grundkonfiguration nicht vorgenommen werden.

Ausführen des Sync Befehls

Der Sync Befehl ist sehr simpel aufgesetzt:

./user-sync --users all --process-groups --adobe-only-user-action remove

Wir sagen dem User Sync Tool es sollen alle User synchronisiert werden sollen mit den Gruppen und nicht hinterlegte Adobe User gelöscht werden sollen.

Wenn man nur die User Synchronisieren möchte, die in einer der vordifinierten Gruppe im Active Directory steht, so muss man den Befehl abändern von --user all zu --user mapped .

Cron-Job für eine stündliche Ausführung anlegen

In dem Verzeichnis /etc/cron.hourly/ lege ich die Datei run_adobe an.

#!/bin/bash/
LastAdobeSync=$(date)
cd /opt/adobe/
./user-sync --users all --process-groups --adobe-only-user-action remove

In der zweiten Zeile wird die Variable LastAdobeSync mit der date Funktion beschrieben, dass erlaubt es diese Variable sich auszugeben und die Zeit der letzten Synchronisation zu sehen.

In der dritten Zeile geht das Script in das Adobe Verzeichnis, damit es dort den Befehl ausführen kann. Ist das nicht mit drin, kann das Skript nicht die Konfigurationsdateien finden.

Danach folgt nur der Befehl von oben.