Im Zeitalter der rasanten Weiterentwicklung der Cloud-Technologie, in der Infrastructure as a Service (IaaS) und Platform as a Service (PaaS) integraler Bestandteil zahlreicher Projekte sind, ist die Nachfrage nach einer nahtlosen Integration verschiedener Cloud-Dienste unbestreitbar. Microsoft, ein wichtiger Akteur in dieser Branche, hat viel Zeit in die Entwicklung des benutzerfreundlichen Microsoft Entra ID-Dienstes investiert. Doch trotz sorgfältig formulierter Anweisungen der Anbieter stoßen Spezialisten häufig auf Probleme bei der Konfiguration von Integrationen mit Plattformen wie Slack, Salesforce oder Datadog. Die Dokumentation liefert keine Antworten auf spezifische Fragen.
Auch das Team der Social Discovery Group stand vor diesen Herausforderungen, und in diesem Artikel bieten wir Einblicke, wie man diese Herausforderungen bewältigen und lösen kann.
In ihrem Portfolio von über 50 Dating-Plattformen nutzt die Social Discovery Group verschiedene Technologien und Cloud-Dienste, um deren Sicherheit und Zuverlässigkeit zu gewährleisten. Wir verfügen über umfangreiche Erfahrung in der Integration und Konfiguration verschiedener Systeme, einschließlich Peer-to-Peer-Verbindungen zwischen verschiedenen Clouds.
Microsoft Entra ID ist eine Cloud-Lösung für die Identitäts- und Zugriffsverwaltung, die als Verzeichnis- und Authentifizierungsdienst in der Cloud fungiert. Microsoft Entra ID bietet Authentifizierungs- und Autorisierungsdienste für verschiedene Microsoft- und Nicht-Microsoft-Dienste. In diesem Artikel untersuchen wir die Integration der folgenden Cloud-Systeme: Slack, MongoAtlas, ElasticCloud, Salesforce und Datadog.
Da es keinen genauen Leitfaden gab, beschlossen wir, einen eigenen zu erstellen, in dem wir alle Probleme, die auf dem Weg auftraten, detailliert beschrieben. Navigieren wir also zum Abschnitt „Unternehmensanwendung“ in Azure.
Es ist notwendig, eine neue Unternehmensanwendung zu erstellen (dies kann mit wenigen Klicks erledigt werden). Als nächstes greifen Sie auf die Anwendung zu, die wir gerade erstellt haben, und konfigurieren Sie Single Sign-On – SAML. Nehmen Sie Änderungen von oben nach unten vor:
Erstellen Sie eine „Mitglied“-Rolle (oder wählen Sie einen anderen Namen). Erstellen Sie als Nächstes einen Testbenutzer in Microsoft Entra ID und fügen Sie ihn unserer Anwendung hinzu. Gehen Sie dann zum Admin Center in Slack. Befolgen Sie die Schritte: Slack Admin – Authentifizierung – SAML-Konfiguration – Konfigurieren
Der nächste Schritt besteht darin, SAML zu konfigurieren. Wir empfehlen, auf die Einstellung „Anzeigename“ zu achten. Deaktivieren Sie außerdem in den Einstellungen die Option „Profil bei Anmeldung aktualisieren“ und verbieten Sie die Änderung der E-Mail-Adresse und des Anzeigenamens.
Es besteht auch die Möglichkeit, den Text auf der Anmeldeschaltfläche anzupassen und Benutzern die Anmeldung mit einer anderen Methode als SSO zu verbieten. Danach sollten Sie sich mit Ihrem Microsoft-Konto bei Slack anmelden können. Wenn zusätzliche Felder oder Einstellungen erforderlich sind, kann dies über Azure AD Provision erfolgen.
Um ein neues Attribut hinzuzufügen, gehen Sie zu Benutzerattribute und wählen Sie Neue Zuordnung hinzufügen. Wählen Sie das gewünschte Quellattribut aus, das in Slack angezeigt werden soll, und verknüpfen Sie es mit dem entsprechenden Slack-Attribut.
Nachdem Sie die erforderlichen Attribute hinzugefügt und die Einstellungen gespeichert haben, fahren Sie mit der Bereitstellung bei Bedarf fort, um die Funktionalität zu testen. Bei positivem Ergebnis erhalten Sie Folgendes:
Als nächstes müssen Sie zu Slack gehen und angeben, welche Attribute im vollständigen Benutzerprofil angezeigt werden sollen und wo diese abgerufen werden sollen. Gehen Sie zu „Profile“ und wählen Sie die anzuzeigenden Informationen und den Ort aus, an dem sie abgerufen werden sollen. In diesem Fall entspricht SCIM Azure AD.
Als Nächstes empfehlen wir, die erforderlichen Benutzer aus Active Directory zu Slack hinzuzufügen, um die nahtlose Integration zu erleben. Wir möchten auch auf ein Problem aufmerksam machen, das beim Entfernen von Benutzern auftritt: Wenn ein Benutzer manuell aus Slack gelöscht wird (über das Slack-Admin-Center), bleibt ein Fehler bestehen, der darauf hinweist, dass der Benutzer aufgrund unzureichender Berechtigungen nicht zu Slack übertragen werden kann. Dies liegt daran, dass Entra ID Informationen über Benutzer innerhalb des Bereichs speichert und ihnen eine eindeutige ID zuweist. Das Löschen und erneute Hinzufügen eines Benutzers in Slack wird von Entra ID als neuer Benutzer erkannt, was bei Aktualisierungen zu Berechtigungsproblemen führt.
Sehen Sie sich die Dokumentation hier an.
Für MongoAtlas verläuft der Prozess ähnlich. Sie müssen außerdem eine neue Unternehmensanwendung erstellen. Geben Sie der Einfachheit halber „MongoDB Atlas – SSO“ in das Suchfeld ein. Eine ausführlichere Anleitung finden Sie hier.
Fahren Sie als Nächstes mit den Single-Sign-On-Einstellungen fort, wo Sie Folgendes eingeben müssen:
Geben Sie im Textfeld „Identifier“ die URL mit der folgenden Vorlage ein: https://www.okta.com/saml2/service-provider/<Customer_Unique>
Geben Sie im Textfeld „Antwort-URL“ die URL mithilfe der Vorlage ein:
https://auth.mongodb.com/sso/saml2/<Customer_Unique>
Geben Sie im Textfeld „Anmelde-URL“ die URL mithilfe der Vorlage ein: https://cloud.mongodb.com/sso/<Customer_Unique>
Wir empfehlen, auf den Abschnitt „Attribute“ zu achten und ihn wie im Screenshot unten gezeigt zu konfigurieren (es war unbedingt erforderlich, „memberOf“ hinzuzufügen).
Gehen Sie als Nächstes auf der Seite „Einrichten von Single Sign-On mit SAML“ zum Abschnitt „SAML-Signaturzertifikat“ und suchen Sie nach den XML-Metadaten für die Föderation. Wählen Sie „Herunterladen“, um das Zertifikat herunterzuladen und lokal zu speichern (Federation Metadata XML). Wir werden es später im MongoDB Atlas benötigen.
Kopieren Sie im Abschnitt „Einrichten von MongoDB Atlas – SSO“ die entsprechenden URLs. Navigieren Sie als Nächstes zu MongoDB Atlas -> Organization -> Settings -> Federated Authentication Settings .
Beginnen Sie mit dem Hinzufügen des Microsoft Entra ID-Anmeldeinformationsanbieters in Atlas. Geben Sie die jeweiligen im vorherigen Schritt genannten URLs aus dem Microsoft-Portal ein (Aussteller-URI, Anmelde-URL, Single-Sign-On-URL) , laden Sie das Signaturzertifikat des Identitätsanbieters hoch und konfigurieren Sie die restlichen Einstellungen wie im Screenshot unten gezeigt .
Klicken Sie auf „Weiter“ und speichern Sie die Metadatendatei lokal, da Sie sie später in Azure auf der Single Sign-On-Konfigurationsseite hochladen müssen.
Als nächstes fügen Sie die Domäne hinzu, ordnen sie zu und validieren sie, beispielsweise mithilfe der entsprechenden TXT-Datensätze, die in MongoDB Atlas generiert wurden. Anschließend verknüpfen Sie Ihre Domain mit dem Anmeldeinformationsanbieter und fahren mit dem interessantesten Teil fort: der Rollenkonfiguration.
Wir haben die folgenden Rollen als Beispiel erstellt, jede mit spezifischen Berechtigungen für Projekte. Anschließend müssen Sie diese Rollen Azure-Rollen zuordnen. Gehen Sie zu „App-Rollen“ für Ihre Anwendung, erstellen und fügen Sie Rollen hinzu, deren Werte genau mit den Namen übereinstimmen, die Sie diesen Rollen gerade in MongoAtlas zugewiesen haben.
Fügen Sie anschließend Benutzer zur Anwendung in der Microsoft Entra ID Enterprise-Anwendung hinzu und weisen Sie ihnen die entsprechenden Rollen zu. Aktivieren Sie „Mit Azure SSO anmelden“ im Abschnitt „Verbundverwaltung“ in MongoDB Atlas und überprüfen Sie die korrekte Funktion der konfigurierten Einstellungen.
Ausführlichere Anweisungen finden Sie in der Dokumentation hier .
Kommen wir zur Integration mit Elastic Cloud. Die grundlegenden Schritte zum Erstellen einer Anwendung in der Enterprise Application Entra ID ähneln den vorherigen. Dort finden Sie Informationen darüber, wo Sie den Identifier bzw. die Abmelde-URL erhalten. Allerdings ist ein Problem mit den Attributen aufgetreten, daher stellen wir einen Screenshot unserer Arbeitskonfiguration zur Verfügung.
Wir haben zwei Rollen erstellt – einen Leser und einen Superuser.
Hier können Sie beliebig viele Rollen erstellen. Rolleneinstellungen in Elasticsearch werden in Role Mappings konfiguriert und sehen wie folgt aus:
Jetzt kommt der interessante Teil. Es müssen zwei Dinge getan werden: Azure SSO-Konfiguration für Kibana und Elasticsearch hinzufügen. Um dies zu erreichen, gehen Sie folgendermaßen vor:
Navigieren Sie zum Bearbeitungsbereich Ihrer Elasticsearch Cloud-Bereitstellung, um die Konfiguration von elasticsearch.yml zu aktualisieren. Fügen Sie die folgenden Zeilen hinzu:
“ xpack:
security:
authc:
realms:
saml:
saml-azure-ad:
order: 2
attributes.principal: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"
attributes.groups: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/role"
attributes.name: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname"
attributes.mail: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
idp.metadata.path: "APP Federation metadata URL"
idp.entity_id: "Azure Entra ID Identifier"
sp.entity_id: "Kibana endpoint"
sp.acs: "Kibana endpoint/api/security/v1/saml"
sp.logout: "Kibana endpoint/logout" “
Nachdem Sie die rot hervorgehobenen Werte hinzugefügt und geändert haben, um sie an Ihre Konfiguration anzupassen, klicken Sie auf „Speichern“. Elastic Cloud validiert alle Änderungen und leitet das Cluster-Update ein. Dieser Vorgang kann einige Minuten dauern.
“ xpack.security.authc.providers:
saml.saml1:
order: 0
realm: saml-azure-ad
description: "Log in with Azure Entra ID"
basic.basic1:
order: 1 ”
Nachdem Sie die beiden vorherigen Schritte abgeschlossen haben, sollte auf Ihrer Kibana-Anmeldeseite eine weitere Anmeldeoption verfügbar sein. Fahren Sie als Nächstes mit dem Hinzufügen von Benutzern zur Anwendung in der Microsoft Entra ID Enterprise-Anwendung fort und weisen Sie ihnen die erforderlichen Rollen zu.
Weitere Informationen finden Sie in der Dokumentation hier.
Die Integration mit Salesforce war etwas komplexer als die vorherigen. Die ersten Schritte sind ähnlich, es sollte jedoch auf den Abschnitt „Bereitstellung“ geachtet werden. Es gibt Nuancen bei der Angabe der Administratoranmeldeinformationen, unter denen die Kontosynchronisierung erfolgt, und die Aktivierung der Attributzuordnung ist erforderlich.
Hier ist ein Beispiel unserer Konfigurationseinstellungen im Screenshot. Wir haben keine nennenswerten Probleme mit den Attributen festgestellt, stellen aber auch einen Screenshot der von uns verwendeten Attribute zur Verfügung.
In Salesforce selbst gab es keine besonderen Nuancen und wir fuhren mit den folgenden Schritten fort, wie in diesem Leitfaden beschrieben.
Bei der Integration mit Datadog sind auch einige Probleme aufgetreten. Die primäre Dokumentation, die uns als Leitfaden diente, finden Sie hier . Zur Behebung von Nuancen haben wir auf diesen Leitfaden verwiesen.
Alles begann reibungslos und zunächst schien es, als würde es keine Probleme geben. Wie üblich haben wir eine neue Unternehmensanwendung in Microsoft Entra ID erstellt.
Achten Sie im Abschnitt „Einzelanmeldung mit SAML einrichten“ auf den Standort, den Sie für Ihr Datadog-Konto ausgewählt haben. In unserem Fall war es die Region Europa.
Wie bereits erwähnt, fügen wir für MongoAtlasDB das zusätzliche Attribut „memberOf“ für die Rollenzuordnung hinzu.
Speichern Sie alle Einstellungen und laden Sie das Federation Metadata XML herunter. Laden Sie diese Datei in die SAML-Einstellungen in Datadog hoch. Hier ist ein praktischer Link als Referenz. Datadog SAML-Einstellungen (ersetzen Sie „EU“ durch die entsprechende Domänenzone, wenn Ihr Standort abweicht). Es sollte wie im Screenshot unten aussehen.
Behalten Sie in den Anmeldemethodeneinstellungen der Organisation nur das Notwendige bei (in meinem Fall habe ich die Passwortanmeldung und Google Authenticate deaktiviert). Fügen Sie Rollen in Azure in der Anwendungsregistrierung für Microsoft Entra ID hinzu.
Hier kommt der interessanteste Teil. Navigieren Sie in Datadog zu SAML-Gruppenzuordnungen -> Rollenzuordnungen und fügen Sie den Schlüssel, den Wert und die Rolle hinzu. Es scheint unkompliziert. Siehe den Screenshot unten.
Aber es funktioniert nicht und es wird ständig die Fehlermeldung „Für diesen Benutzer sind keine AuthNMappings vorhanden“ angezeigt.
Wir haben eine ganze Weile versucht herauszufinden, was wir falsch gemacht haben, indem wir die gesamte Dokumentation, Protokolle und Fehlerbehebungsseiten überprüft haben. Leider wurde dies nirgendwo erwähnt. Letztendlich ist die Lösung einfach: Folgen Sie der im Screenshot unten gezeigten Konfiguration.
Geben Sie im Feld SCHLÜSSEL die Zeichenfolge ein: http://schemas.microsoft.com/ws/2008/06/identity/claims/role
Danach begann alles erfolgreich zu funktionieren.
„Dies ist nur ein kleiner Teil der Systeme, die wir mit Microsoft Entra ID integriert haben. Wir hoffen, dass die hier geteilten Erkenntnisse als hilfreiche Ressource dienen, Ihre Integrationsprozesse rationalisieren und wertvolle Zeit sparen. Abschließend die folgenden Vorteile der Verwendung von Microsoft Entra ID kann hervorgehoben werden: Single Sign-On, bei dem das Passwort nicht mehrmals eingegeben werden muss; keine zusätzlichen Komponenten erforderlich; einfache Konfiguration und Verwaltung; Gruppenrichtlinien und Gruppen; Geräteregistrierung; und hohe Sicherheit.