Azure Active Directory

Einleitung

In diesem Workshop zeigen wir, wie anynode im Microsoft Azure Active Directory als Anwendung registriert werden kann und wie das Azure Active Directory beim Routing im anynode verwendet wird.

In unserem Lernvideo werden wir die wesentlichen Konfigurationsschritte dafĂŒr beschreiben. Dies ermöglicht anynode, auf die Azure AD-bezogenen Benutzerinformationen zuzugreifen, indem ein Azure Dial String Directory erstellt wird. Dieses Verzeichnis wird bei verschiedenen Einstellungen und flexiblen Filterbedingungen mit allen abgerufenen Daten gefĂŒllt. Um die Dial Strings und dazugehörenden Informationen abzurufen, werden die Daten zwischengespeichert und nach einem definierten Intervall abgerufen. Durch die zentrale Verwaltung im Azure Active Directory benötigt anynode keine Änderungen im Falle, wenn Benutzer gelöscht oder hinzugefĂŒgt werden.

Die neu erstellten Azure Dial String Directories können an die Routenfilter der Routing-DomĂ€nen von anynode gebunden werden. Ein Beispiel fĂŒr eine Routing-DomĂ€ne wird spĂ€ter in diesem Lernvideo behandelt.

Anforderungen

FĂŒr eine erfolgreiche Registrierung von anynode und den Zugang zum Azure AD benötigen Sie die folgenden Voraussetzungen: 

  • ein Azure AD-Mandanten, der der entsprechenden Office 365-Umgebung entspricht.
  • eine Azure AD fĂŒr Office 365-Lizenz.
  • ein zusĂ€tzliches Zertifikat im Falle von Zertifikat-Pinning, wie spĂ€ter in diesem Lernvideo beschrieben
  • eine anynode-Installation mit der zertifizierten Version 4.2 (oder höher).
  • entsprechende Netzwerkzugriffs-, Netzwerk-Routing- und Administrationsrechte.
  • Zugriff auf die installierte und konfigurierte VoIP-Umgebung.
  • VoIP-Anmeldeinformationen fĂŒr die beteiligten Nodes, um entsprechende Konfigurationen zu ermöglichen.

Azure AD Mandantenkonfigurationen fĂŒr anynode

FĂŒr die Microsoft Azure Active Directory-Konfigurationen loggen Sie sich bitte entweder in das Azure Portal https://portal.azure.com/ oder das Azure Active Directory Verwaltungszentrum https://aad.portal.azure.com/.

Azure AD_02_App-Registrierung

App-Registrierung

[02:04 – Video Time-Code]

Um anynode als Anwendung im Azure AD-Mandanten zu registrieren, Àndern Sie die Portalansicht in das Dialogfeld App-Registrierungen und klicken Sie auf Neue Registrierung. Als nÀchstes wird anynode_workshop_video_ad als Name eingegeben.

Bei den unterstĂŒtzten Kontotypen wĂ€hlen wir aus, dass nur TE-SYSTEMS GmbH als einzelner Mandant die Anwendung verwenden darf. Verwenden Sie diese Option, wenn Ihre Zielgruppe sich innerhalb Ihrer Organisation befindet. Alle Benutzer- und Gastkonten in Ihrem Verzeichnis können Ihre Anwendung oder API verwenden.  Anschließend starten Sie die Registrierung.

Die registrierte Anwendung fĂŒr anynode wird nun mit einer Anwendungs-(Client-)ID erstellt und ist  mit der Directory (Mandaten)-ID verknĂŒpft.

Bitte beachten Sie, dass beide IDs fĂŒr die Einrichtung des anynode Azure Dial String Directory erforderlich sind. Das werden wir spĂ€ter in diesem Workshop noch zeigen.

Zertifikate und Geheimnisse

[03:23 – Video Time-Code]

Eine geheime Zeichenfolge, die von anynode fĂŒr das „anynode_azure_ad“ verwendet wird, muss generiert werden. Diese Zeichenfolge kann als Passwort bezeichnet werden, das von der Anwendung zum Nachweis ihrer IdentitĂ€t verwendet wird.

FĂŒr diese Aufgabe wechseln Sie bitte in den „Zertifikaten und Geheimnisse“-Dialog. Wenn Sie dort angekommen sind, benutzen Sie die SchaltflĂ€che „Neuer geheimer ClientschlĂŒssel“. Im nĂ€chsten Dialogfeld Client-Geheimnisse fĂŒgen wir den frei wĂ€hlbaren Namen hinzu.

Die GĂŒltigkeit legen wir auf 1 Jahr fest. Wenn alles korrekt ist, erzeugen Sie den geheimen ClientschlĂŒssel mit einem Klick auf „HinzufĂŒgen“. Der neu erstellte geheime ClientschlĂŒssel wird nun mit einem Zufallswert generiert.

Verwenden Sie die Funktion „In die Zwischenablage kopieren“, da dieser Wert verfĂŒgbar sein und als Client-Secret eingegeben werden muss.

Bitte beachten Sie, dass Sie den Wert des geheimen ClientschlĂŒssels unmittelbar nach der Erstellung kopieren und sichern mĂŒssen. Es ist nicht möglich, dies zu einem spĂ€teren Zeitpunkt zu tun.

API-Berechtigungen

[04:30 – Video Time-Code]

Die neu erstellte und registrierte anynode-Anwendung (anynode_workshop_video_ad) wird zunĂ€chst nur mit den Rechten User.Read aktiviert. Es ist notwendig, zusĂ€tzliche delegierte und anwendungsbezogene Berechtigungen hinzuzufĂŒgen. In unserem Beispiel verwenden wir die referenzierte Microsoft Graph API Berechtigungen wie folgt:

Delegierte Berechtigungen

  • Directory.AccessAsUser.All (Zugriff auf das Verzeichnis als angemeldeter Benutzer)
  • Presence.Read.All (Lesen Sie die PrĂ€senzinformationen aller Benutzer in Ihrer Organisation)

Anwendungsberechtigungen

  • User.Read.All (Lesen Sie die vollstĂ€ndigen Profile aller Benutzer)
  • Group.Read.All (Alle Gruppen lesen)
  • Directoy.Read.All (Lesen von Verzeichnisdaten)

Bitte ĂŒberprĂŒfen Sie die Microsoft Graph-Berechtigungen-Referenz fĂŒr Details, Hinweise und bekannte Fragen. Um Berechtigungen hinzuzufĂŒgen, wĂ€hlen Sie die registrierte Anwendung von anynode aus und Ă€ndern Sie die Ansicht der API-Berechtigungen. WĂ€hlen Sie dort „Berechtigung hinzufĂŒgen“, dann Microsoft Graph aus der Liste Microsoft-APIs.

Wenn die API-Berechtigungen festgelegt sind, fahren Sie mit der Administrator-Zustimmung des Administrators fĂŒr den Mandaten fort. Sollte die SchaltflĂ€che „Administrator Zustimmung fĂŒr den Mandanten erteilen“ ausgegraut sein, prĂŒfen Sie die zugewiesenen Rollen des letzten Benutzers, der im Azure Portal angemeldet ist. Einige Rollen sind fĂŒr dieses Benutzerkonto möglicherweise nicht festgelegt, z. B. die Privilegierte Rolle Administrator.

Sobald die Administrator Zustimmgung fĂŒr den Mandanten erteilt worden ist, wird der Zustand in der Spalte „Status“ jetzt mit „GewĂ€hrt“ angezeigt.

API-Berechtigungen: Übersicht der Funktionen

Schauen wir uns jetzt noch mal die API-Berechtigungen genau an, wozu wir welches Recht fĂŒr welche Funktion in anynode benötigen:

  • Die DirectoryAccessAsUser.All and Presence.Read.All Berechtigungen werden fĂŒr den Zugriff auf den „Presence“ Benutzerstatus benötigt. In diesem Fall muss die MS Graph Passwort-Methode fĂŒr die Authentifizierung verwendet werden. Wenn diese Option verwendet wird, sollte ein extra User im User AD fĂŒr diesen Zugriff angelegt werden. Dieser User benötigt, soweit bekannt, keine extra Rechte. Wir werden spĂ€ter bei der anynode-Konfiguration in diesem Lernvideo noch ein Beispiel fĂŒr die MS Graph Passwort Methode Authentifizierung zeigen.
  • Directory.Read.All benötigt man, wenn Lizenzinformationen mit in den Filter einfließen sollen.
  • Group.Read.All:  Diese Recht wird benötigt, wenn auch noch die Gruppen und die Zugehörigkeiten der User zu den Gruppen mit in den Filter einfließen sollen.
  • User.Read.All ist das Basis-Recht, welches man braucht, um auf Benutzerattribute (wie z.B Business Phone) der User zuzugreifen.

GrundsÀtzlich werden die delegierten Berechtigungen nur benötigt, wenn auch auf den User Status zugegriffen werden soll.

Konfiguration im anynode Frontend

[08:48 – Video Time-Code]

anynode Azure Dial String Directories

FĂŒr den Zugriff auf einen Microsoft Azure Active Directory-Mandanten ĂŒber das Anynode-Frontend muss ein neues Azure Dial String Directory erstellt werden. Die Konfigurationsaufgaben dafĂŒr werden mit Hilfe des Directoy-Assistenten von anynode durchgefĂŒhrt.

Add Directory

[09:15 – Video Time-Code]

Sie können ein neues Azure Dial String Directory mit Hilfe des anynode Scenario Wizards hinzufĂŒgen und erstellen.  Alternativ verwenden Sie die SchaltflĂ€che „Add Directory“ innerhalb des Konfigurationsdialogs von Directories.

Creation Type

[09:24 – Video Time-Code]

WĂ€hlen Sie im ersten Dialogfeld „Creation Type“ „Create new Azure Dial String Directory“ aus und fahren Sie mit „Next“ fort.

Tenant ID

[09:32 – Video Time-Code]

Als nÀchstes geben Sie die ID des Directories (Tenant) ein. Dies ist die Tenant-ID Ihrer Microsoft Azure Active Directory-Umgebung. Die Tenant-ID kann im Azure Active Directory Portal gefunden werden.

Authentication

[09:53 – Video Time-Code]

Setzen Sie fĂŒr die Authentifizierung den Azure AD-Mandantennamen mit einem verifizierten DomĂ€nen Namen ein. In diesem Beispiel verwenden wir „anynodelab.onmicrosoft.com“ und die Application-(Client-)ID mit dem dazugehörigem geheimen ClientschlĂŒssel, hier „Secret“ genannt.

Name

[10:17 – Video Time-Code]

Geben Sie im letzten Dialogfeld des Assistenten den Namen fĂŒr das neu erstellte Azure Dial String Directory ein und schließen Sie die Konfigurationen mit der SchaltflĂ€che „Finish“ ab. Das Azure Dial String Directory wird nun erstellt. Stellen Sie sicher, dass Sie auf Commit klicken, um die neu erstellte Konfiguration endgĂŒltig abzuspeichern.

Network Security Profile

[10:42 – Video Time-Code]

Aufgrund aktualisierter Microsoft Azure-Cloud-Dienste und TLS-bezogener Änderungen, sind zusĂ€tzliche Konfigurationen erforderlich, wenn Zertifikat-Pinning verwendet wird. Dies kann den Import zusĂ€tzlicher Microsoft Azure TLS-Zertifikate fĂŒr das Azure Dial String Directory von anynode und dessen Netzwerk-Sicherheitsprofil erfordern. Bitte lesen Sie den Artikel der Microsoft Techcommunity fĂŒr vollstĂ€ndige Details.

https://techcommunity.microsoft.com/t5/internet-of-things/azure-iot-tls-changes-are-coming-and-why-you-should-care/ba-p/1658456

Auch wenn anynode und sein Assistent in der Regel die erforderlichen Zertifikate bereitstellt, sind sie möglicherweise nicht mehr gĂŒltig, da einige Sicherheitseinstellungen geĂ€ndert wurden.

Lesen Sie das Kapitel „To minimize future code changes“ und laden Sie die „Microsoft Azure TLS Issuing“-Zertifikate herunter.

Trusted Peer Certificate hinzufĂŒgen

[11:47 – Video Time-Code]

Um das gewĂŒnschte Zertifikat hinzuzufĂŒgen, Ă€ndern Sie bitte die Ansicht auf das Network Security Profile von dem Azure Dial String-Directory. Klicken Sie im Abschnitt Peer-Zertifikate auf die SchaltflĂ€che „Add“.

Im Video zeigen wir die Konfigurationsschritte des Imports des Microsoft Azure TLS Issuing CA 01 -Zertifikats. Sobald der Upload abgeschlossen ist, wird das Zertifikat und sein Status angezeigt. Schließen Sie den Import ab, indem Sie auf „Finish“ klicken.

Das importierte Zertifikat ist nun fĂŒr das Azure Dial String Directory eingestellt.

Vergessen Sie nicht, den Import mit „Commit“ endgĂŒltig zu speichern.

Richtige IP fĂŒr den Zugang zum Azure AD wĂ€hlen

[12:28 – Video Time-Code]

Schließlich mĂŒssen Sie sicherstellen, dass die automatisch ausgewĂ€hlte IP in Ihrer Netzwerk-Controller-Ansicht auf das öffentliche Internet zugreifen kann.

Öffnen Sie „Advanced Configuration“ und wĂ€hlen Sie, falls erforderlich, die richtige IP-Adresse aus.

Testen der KonnektivitÀt

[13:02 – Video Time-Code]

FĂŒr den KonnektivitĂ€tstest empfohlen wir, zuerst den OAuth Client Authorization Test durchzufĂŒhren und bei Erfolg anschließend den Microsoft Azure Active Directory-KonnektivitĂ€tstest.

Azure Dial String Directory Test

[13:19 – Video Time-Code]

Die folgende Liste zeigt das Suchergebnis. Maximal 100 EintrĂ€ge werden angezeigt. Falls die Suche fehlschlĂ€gt, ĂŒberprĂŒfen Sie bitte die Azure AD-Konfigurationen und ob anynode als registrierte und autorisierte Anwendung alle erforderlichen Berechtigungen hat. ÜberprĂŒfen Sie auch die VerfĂŒgbarkeit des Microsoft Azure TLS Issuing Zertifikats wie vorhin beschrieben.

Bei diesem Test, bei dem die Rufnummern abgerufen werden, wird eine weitere TLS-Verbindung zu einem anderen Server von Microsoft aufgebaut, und der prĂ€sentiert in der Regel ein anderes Zertifikat, welchem anynode eventuell nicht vertraut. Man kann sich dieses Zertifikat auch anzeigen lassen. FĂŒgen Sie den Remote Host und den Port manuell ein.

anynode versucht dann, eine Verbindung zu graph.microsoft.com aufzubauen. Es besteht die Möglichkeit, dieses Zertifikat zu den Trusted Zertifikaten hinzuzufĂŒgen und das bisher in der Liste vorhandene Zertifikat zu ersetzen. Dabei wird dann auch gleichzeitig das mitgelieferte Route Zertifikat mit eingefĂŒgt.

Dashboard

[15:02 – Video Time-Code]

Das anynode Dashboard gibt einen Überblick ĂŒber verschiedene KonfigurationszustĂ€nde. Ein Doppelklick auf einen Eintrag öffnet ein neues Fenster mit einigen weiteren Details.

MS Graph Password Methode

[15:15 – Video Time-Code]

Wie vorhin bei den API-Berechtigungen schon erwĂ€hnt, mĂŒssen wir die „MS Graph Password“ Methode mit einer User Authentifizierung beim OAuth-Client auswĂ€hlen, damit anynode Zugriff auf den „Presence User State“ erhĂ€lt. DafĂŒr empfehlen wir einen zusĂ€tzlichen Azure AD User. Nach dem derzeitigen Stand benötigt dieser User keine zusĂ€tzlichen Rechte. Ein Beispiel geben wir hier.

Routing Domain

[16:08 – Video Time-Code]

In unserem Beispiel verwenden wir eine Routing-DomĂ€ne mit einer Route-Filter-Relation, einem Azure Dial String Directory. Wenn ein Dial String nicht mit der Azure Dial String Directory-Anforderung mit ihren Bedingungen ĂŒbereinstimmt, zum Beispiel bei dieser Nummer +4953639469931, wird der Anruf nicht an die Microsoft Teams Direct Node geroutet. Stattdessen wird er der zweiten Filterregel entsprechen, und der Anruf wird an den PBX-Node geroutet. Sie können das Azure Dial String Directory im Routenfilter auswĂ€hlen.

Praxisbeispiel: Routing abhÀngig vom Benutzerstatus in Teams

[16:52 – Video Time-Code]

Jetzt möchten wir in unserem Praxisbeispiel ein Routing abhĂ€ngig vom Microsoft Teams Benutzerstatus einrichten. Wenn ein Teams-Benutzer seinen Anwesenheitsstatus auf „nicht stören“ gesetzt hat, offline ist oder gerade telefoniert, soll der Ruf nicht zu dem Teams-Benutzer geroutet werden.

Dazu haben wir vorhin bei den API-Berechtigungen den Zugriff auf DirectoryAccessAsUser.All and Presence.Read.All gewĂ€hrt und die MS Graph Password Methode verwendet. Diese Einstellungen werden fĂŒr den Zugriff auf den „Presence“ Benutzerstatus benötigt.

Öffnen Sie die „Settings“ in dem Azure Dial String Directory. Unter Azure Dial String Directory Filter kann festgelegt werden, welcher User Presence State berĂŒcksichtigt wird. In unserem Beispiel entfernen wir jetzt die zum Standard gehörenden Haken bei „Busy, Busy Idle, Do not disturb und Offline“. Damit wird jetzt der erste Eintrag in der Routentabelle nur genommen, wenn der Teams-Benutzer gerade nicht telefoniert und seinen Benutzerstatus auf „GrĂŒn“ oder „Gelb“ hat.

Jetzt mĂŒssen wir noch eine zweite Route mit dem Azure Active Directory anlegen, bei dem die Felder alle weiterhin angekreuzt sind, damit der Ruf abgelehnt werden kann. Dazu klonen wir das bisherige Active Directory, um nicht alle Einstellungen noch mal machen zu mĂŒssen. Den Namen können wir bei Bedarf frei bestimmen. Die zum Standard gehörenden Haken fĂŒgen wir nun wieder hinzu, damit die Route aktiv wird, wenn der Teams-Benutzer keinen grĂŒnen oder gelben Status hat.  Im Routenfilter wĂ€hlen wir dann das geklonte Active Directory aus. Bei Establishment wĂ€hlen wir „Reject Call“ und als Status „Busy“ aus. Diese Route sollte in der Routentabelle gleich als zweite Route kommen, da die Routentabelle von oben nach unten abgearbeitet wird.

Wir haben also die erste Route, die aktiv wird, wenn ein Teams-Benutzer angerufen wird, der im Azure Dial String Directory steht und einen grĂŒnen oder gelben Benutzerstatus hat. Die zweite Route wird aktiv, wenn ein Teams-Benutzer angerufen wird, der einen roten Benutzerstatus hat oder offline ist. Die dritte Route wird aktiv, wenn ein PBX-Benutzer angerufen wird.

SCROLL UP