Azure AD Connect und Gastbenutzer

In diesem Artikel möchte ich euch zeigen, was man mit Azure AD Connect und Gastbenutzern anstellen kann. 🙂

Normalerweise wird Azure AD Connect dazu genutzt, um die Mitarbeiter/Gruppen aus dem lokalen Active Directory in das Azure AD zu synchronisieren. Um mit Externen zusammenarbeiten zu können, werden Gastbenutzer genutzt, die entsprechend eingeladen werden. Diese Gastbenutzer „leben“ normalerweise nur im Azure Active Directory. Aber was ist, wenn wir aus Gründen diese Externen bereits im lokalen AD angelegt haben und diese von den Externen bereits genutzt werden? Können wir dann nicht diese Benutzer auch als Gastbenutzer in Microsoft 365 nutzen? Also zum Beispiel um eine Datei in SharePoint für einen Externen zum Bearbeiten freizugeben.

Natürlich kann man so ein Szenario mit Azure AD Connect und Gastbenutzern realisieren (sonst wäre der Artikel auch schon jetzt zu Ende 🙂 ).

Gehen wir von folgender Struktur in unserem Active Directory aus.

Azure AD Connect und Gastbenutzer
Struktur vom lokalen Active Directory

In der OU Guest Users haben wir unsere Benutzer, die wir als Gastbenutzer in unserem Microsoft 365 Tenant nutzen möchten.

Lassen wir uns also den Azure AD Connect anpassen, damit die Benutzer in dieser OU als Gastbenutzer ins Azure Active Directory synchronisiert werden. Zuerst müssen wir das entscheidende Attribut userType in unserem Cloud-Connector hinzufügen. Dieses Attribut steuert, ob der Benutzer ein „Normaler“ oder ein Gastbenutzer wird. Dazu aber später mehr. Die Anpassung wird im Synchronization Service Manager durchgeführt. Dann die Eigenschaften (Properties) des Connectors mit dem Namen eures Microsoft 365 Tenants öffnen und das Häkchen beim Attribut setzten.

Azure AD Connect und Gastbenutzer
Synchronization Service Manager

Sobald wir das Attribut hinzugefügt haben, können wir dieses nun nutzen. Für die Unterscheidung ob wir einen Gastbenutzer oder einen „Normalen“ synchronisieren wollen, benötigen wir eine entsprechende Regel. Diese legen wir neu im Synchronization Rules Editor an. Wichtig ist dabei, dass wir vorher die Direction auf Outbound festlegen, bevor wir eine neue Regel erstellen.

Synchronization Rules Editor

Danach legen wir ein paar grundlegende Eigenschaften fest. Der Name kann selbstverständlich frei gewählt werden. Wichtig ist, dass wir als Connected System den Cloud-Connector ausgewählt haben und die Typen auf user bzw. person gesetzt haben. Die Precedence ist in unserem Beispiel auf 41 gesetzt. Diese muss laut Microsoft zwischen 1 und 99 liegen.

Outbound synchronization rule

Weiterhin setzten wir noch zwei Filter, damit die Regel auch nur auf unsere gewollten AD Objekte angewendet wird und wir keine Probleme mit anderen Szenarien (z.B. Azure AD User writeback feature) bekommen.

Scoping filters in outbound synchronization rule

Als letzter und wichtigster Punkt kommt nun unsere Regel, die die Unterscheidung der Benutzertypen vornimmt.

Transformation expression for userType attribute

Die Unterscheidung erfolgt durch folgende Werte:

  • Normaler Benutzer: Member
  • Gastbenutzer: Guest

Wenn als userType also Guest gesetzt wird, wird dieser Benutzer als Gastbenutzer in das Azure Active Directory synchronisiert. In unserem Beispiel nutzen wir die Unterscheidung anhand der OU, indem sich das Benutzerobjekt befindet:

IIF(IsPresent([distinguishedName]),IIF(CBool(InStr(LCase([distinguishedName]),"ou=guest users,ou=aad connect,dc=frankeisel,dc=de")=0),"Member","Guest"),Error("distinguishedName is not present to determine UserType"))

Eine Anmerkung zur LCase Funktion, dadurch muss der Distinguished Name ausschließlich in Kleinbuchstaben notiert werden. Dadurch kann die Groß- und Kleinschreibung der lokalen OU geändert werden, ohne eine Änderung an der Regel im AAD Connect vornehmen zu müssen.

Danach muss eine vollständige Synchronisation erfolgen und man erhält folgendes Ergebnis.

Azure AD Connect und Gastbenutzer
Alle Benutzer im Azure AD
Azure AD Connect und Gastbenutzer
Synchronisierter Gastbenutzer

Dieser synchronisierte Gastbenutzer kann dann ganz normal in der Microsoft 365 Welt genutzt werden, z.B. als Mitglied in einem Team hinzugefügt werden.

Azure AD Connect und Gastbenutzer
Mitglieder eines Teams

Somit wisst ihr nun, wie Azure AD Connect und Gastbenutzer technisch umgesetzt werden können und was dabei zu beachten ist.

9 Kommentare

  1. Sehr gut – realy good guide. I have now implemented it and can asure you that it works. Having difficulties to find anything more substantial to do it on OU’s, I stumpled across this in german. My german is not good but having searched for long, this is really usefull and describes in details how to make it work. Very important as the article expressly says: only one rule is needed and this needs to be outbound!

  2. Hallo Frank,

    sehr guter Artikel. Kannst du mir sagen, ob bei der oben genutzten Expression auch Benutzerkonten enthalten sind, die in Sub-OUs von „Guest Users“ liegen? Also wenn bspw. Unterhalb der OU „Guest Users“ weitere OUs (bspw. Firma A, Firma B) angelegt werden, in denen sich dann jeweils die Benutzerkonten befinden.

    Vielen Dank und Gruß
    Stefan

    • Hallo Stefan,

      es wird zur Prüfung die InStr Funktion genutzt, deshalb sollten weitere Sub OUs ebenfalls mit einbezogen werden. Durch die Sub OUs wird der Distinguishedname nur „länger“, die InStr Funktion findet aber weiterhin den angebebenen Teil vom Distinguishedname.

      Viele Grüße
      Frank

      • Hallo Frank,

        vielen Dank für deine Rückmeldung. Ich habe gestern die bestehenden Regeln angepasst (ich hatte den usertype vorher auf Basis des Domain-Namens setzen lassen) und dein Setup funktioniert wie gewünscht (inkl. Benutzerkonten in Sub-OUs).

        Vielen Dank nochmal und Gruß
        Stefan

  3. Hi Frank,

    schonmal vorab: Danke für die Anleitung! Bei mir werden die User aus der OU auch synchronisiert, aber immer als normale Mitglieder. Nicht als Gäste.
    Hast du da ggf. einen Denkanstoß? :/

    • Hallo,
      dann kann es eigentlich nur an den Regeln liegen. Hast du noch weitere angepasste Regeln im Einsatz? Oder es hat sich der Fehlerteufel in den Ausdruck eingeschlichen.
      Viele Grüße
      Frank

  4. Klappt bei uns sehr gut. Allerdings musst der Benutzer trotzdem als B2B-Benutzer im Entra ID Portal eingeladen werden und den versendeten Link klicken, um als Benutzer dann aktiv zu werden.
    Ist dies by design?

      • Danke für die Bestätigung hätte uns fast in den Wahnsinn getrieben, ist seitens MS auch nicht sauber dokumentiert. Zum Glück gibt es für die Mail-Einladung eine Graph API. Sprich, man kann die Mail nicht versenden lassen, die consent-URL auslesen und via eigenem Prozess zukommen lassen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert