Der Dienst Azure Active Directory (Azure AD) ist Teil der Cloud-Dienste, nämlich des Azure Cognitive Service von Microsoft. Azure AD B2C, über das ich später noch im Detail sprechen werde, ermöglicht es Benutzern, das Kundenidentitätsmanagement für Unternehmen, Web- und mobile Anwendungen auszulagern.
Die Entwicklung benutzerdefinierter Mechanismen für die verteilte Autorisierung scheint heute eine Verschwendung von Zeit und Geld zu sein. Azure AD B2C befasst sich mit diesem Problem.
Azure AD B2C bietet eine Single-Sign-On-Funktion und eine Multi-Faktor-Authentifizierung. Schauen wir uns diese Lösung aus der Perspektive des UX-Designs und des Benutzerflusses an.
Azure AD als Teil des Microsoft Cloud-Dienstes
Ich sollte gleich zu Beginn betonen, dass Azure AD B2C auf einer ausgereiften und bewährten Technologie — Microsoft Active Directory — basiert, die im Umfeld von Netzwerkadministratoren seit 1999 bekannt ist. Wie jede ausgereifte Technologie hat auch diese ihre Stärken und Schwächen.
Zu dieser Schwäche gehört meiner Meinung nach ein gewisser Mangel an Flexibilität (wie bei den meisten Technologien des Unternehmens aus Redmond). Im Gegensatz zum klassischen AD-Dienst (auch in der Cloud-Version) zeichnet sich B2C vor allem durch die Anpassung an die Realität von SaaS-Anwendungen in Form der vollständigen Unterstützung von OpenID aus.
Azure AD B2C unterstützt über 2800 vorintegrierte Anwendungen im Software-as-a-Service-Modell (SaaS). Ich beschloss zu prüfen, wie das Tool von Microsoft, das Identitätsmanagement bietet, wirklich funktioniert.
Azure AD Service: Erstmalige Anmeldung
Angenommen, wir übernehmen die Technologie in eine bestehende Anwendung, insbesondere wenn es sich um eine monolithische Anwendung ohne Unterstützung für OAuth2 handelt. In diesem Fall müssen wir uns auf die Änderung des Authentifizierungs- und Autorisierungsflusses in unserer Anwendung vorbereiten.
Bei neuen Produkten empfehle ich, sich von Anfang an die Annahmen des Azure AD B2C Flow anzupassen. Auf diese Weise vermeiden Sie unnötigen Arbeitsaufwand und Verzögerungen bei dem Versuch, das Verhalten der Cloud-Lösung zu ändern.
Das erste Problem, auf das ich bei der Analyse stieß, war die begrenzte Möglichkeit, einzelne Elemente des Dienstes zu personalisieren.
Azure AD und eine Domäne
Der Benutzer meldet sich bei einem System an, indem er zu einer speziellen Anmeldeseite von Azure AD navigiert.
Eine große Überraschung war für mich, dass es derzeit keine Möglichkeit gibt, die Domäne zu ändern, auf die der Benutzer während des Autorisierungsprozesses trifft. Mit anderen Worten: Statt zu "diedomainmeinesprodukt.de" zu gehen, gehen sie zu einer anderen URL-Adresse.
Meiner Meinung nach könnte dies von einem informierten Benutzer negativ aufgenommen werden. Ein kurzer Blick auf die Benutzergemeinschaft von Azure AD zeigte, dass ich mit meiner negativen Meinung nicht allein bin.
Azure AD Service: E-Mail-Adressen und Inhalt der automatischen Nachrichten
In verschiedenen Phasen des Genehmigungsverfahrens kann es erforderlich sein, dem Benutzer eine E-Mail oder eine Textnachricht zu senden. Azure AD bietet leider nicht die Möglichkeit, diese E-Mail-Adressen oder Nachrichtenvorlagen zu personalisieren.
In der heutigen Zeit ist das ein seltsamer Ansatz. Dies erschwert die Konsistenz der Markenbildung und die externe Kommunikation der Ziellösung.
Außerdem stieß ich auf einige kleinere Probleme im Zusammenhang mit Ungereimtheiten im angenommenen Ablauf, über die ich weiter unten geschrieben habe.
Benutzerdefinierte Multi-Faktor-Authentifizierungslogik
Die Registrierung des zweiten Elements der Authentifizierung erfolgt während der ersten Anmeldung bei einem System, nicht während der Registrierung. Dies wird von den Sicherheitsanforderungen diktiert und ergibt sich aus den üblichen Angriffsvektoren.
Ein Entwickler hat keinen Einfluss auf den Grad der Komplexität von Autorisierungscodes. Mir liegen auch keine vollständigen Informationen darüber vor, ob die SMS-Authentifizierung auch außerhalb der USA und Kanadas möglich ist.
Azure AD und benutzerdefinierte Logik zum Sperren von Konten (Smart Lockout)
Kommen wir nun zur Frage der Anmeldung und der Sicherheit. Als Cloud-Dienst verfügt Azure AD über eine fortschrittliche Logik zur Kontosperrung, die auf der Erkennung unerwünschten Verhaltens basiert. Der Administrator kann nur die grundlegenden Parameter dieses Mechanismus konfigurieren.
Es geht um die Anzahl der fehlgeschlagenen Anmeldeversuche und die Zeit, für die das Konto nach Überschreiten einer bestimmten Anzahl von fehlerhaften Anmeldungen gesperrt wird. Ich möchte noch hinzufügen, dass der Administrator die Sperrung des Kontos nicht aufheben kann — dieser Vorgang kann nur vom Benutzer während der Wiederherstellung des Passworts durchgeführt werden.
Er ergibt sich aus Sicherheitsanforderungen, und der Administrator hat keinen direkten Einfluss auf die Algorithmen dieses Mechanismus.
AZURE AD-Dienst: RBAC
Zu den unbestrittenen Vorteilen des Dienstes zähle ich auch die gesamte Maschinerie, die mit der Autorisierung der Aktionen der Benutzer verbunden ist. Ähnliche Lösungen konzentrieren sich in der Regel nur auf die Autorisierung des Benutzers und die Festlegung der Zugriffsebenen, und RBAC liegt im Ermessen der Anwendung und der Programmierer.
Azure AD B2C bietet in dieser Hinsicht enorme Möglichkeiten — mir ist kein Testszenario oder Anwendungsfall eingefallen, den ich nicht mit dem Rollensystem von Azure AD B2C realisieren könnte. Die Rollenverwaltung ist intuitiv, vollständig anpassbar und skalierbar und auf der API-Ebene der Lösung verfügbar.
Anmeldung in Azure: Sicherheit direkt aus der Cloud
Der Hauptvorteil von Azure AD B2C (und anderen Cloud-basierten Lösungen) ist ein sehr hohes Sicherheitsniveau, das unvergleichlich höher ist als bei jedem anderen standardmäßig in Software-Frameworks bereitgestellten Autorisierungssystem.
ISO/IEC 27001 — eine internationale Norm, die am 14. Oktober 2005 bekannt gegeben wurde und die Managementsysteme für die Informationssicherheit standardisiert.
Wenn uns die Sicherheit der Daten unserer Benutzer am Herzen liegt, wenn wir die besten Industriestandards in Bezug auf Sicherheit erfüllen wollen (ISO 27001), dann sollten wir unbedingt eine solche Lösung wählen.
Azure AD ist in verschiedenen Preisstufen erhältlich | Foto: commons.wikimedia.org
Azure AD und Microservices
Meiner Meinung nach ist es im Zeitalter von Anwendungen, die auf Microservices und allen Arten von PaaS basieren, einfach eine Verschwendung, benutzerdefinierte Mechanismen für verteilte Autorisierung zu schreiben, ohne eine starke geschäftliche Rechtfertigung zu haben.
Denken wir daran, dass im Zeitalter der GDPR, der hohen Bedrohung und des Wissens von Cyberkriminellen, der Industriespionage und des immer stärkeren Bewusstseins der Benutzer für den Schutz ihrer persönlichen Daten unsere Produkte von Anfang an auf der Grundlage des Konzepts "Secure by Design" entwickelt werden sollten.
Dienste wie Microsoft Azure AD B2C sind sehr leistungsfähige Werkzeuge, die es uns ermöglichen, diese Annahmen zu den geringstmöglichen Kosten zu realisieren, selbst bei kleinen Programmierprojekten.
Wie sicher ist die Anmeldung mit Azure AD?
Die große Auswahl an Überwachungswerkzeugen und Sicherheitsaudits ermöglicht es dem Azure AD B2C Service, eine vollständige Kontrolle über den entscheidenden Teil unserer Anwendung zu bieten, nämlich ein System von Benutzern und Berechtigungen. Denken wir daran, dass die Erstellung einer ersten Iteration einer Anwendung nur der Anfang des langen Lebens eines jeden Programmierprojekts ist.
Im weiteren Verlauf des Lebenszyklus ist es von entscheidender Bedeutung, die Kontinuität der Dienste für unsere Benutzer zu gewährleisten, die Integrität ihrer Daten sicherzustellen und alle Sicherheitsverletzungen zu melden.
In der Zwischenzeit sind sich die meisten Unternehmer nicht der Komplikationen bewusst, die sich aus der Informationspflicht über die DSGVO ergeben.
Wann immer eine kritische Situation eintritt, ohne gute und umfassende Berichterstattungsinstrumente und einen Mechanismus zur Sicherheitsüberprüfung, sind wir erheblichen finanziellen und brandingbezogenen Verlusten ausgesetzt, die zur Schließung des Unternehmens führen können (insbesondere in den frühen Phasen des Bestehens).
Azure-Plattformen in jedem Unternehmen
Microsoft Active Directory B2C ist eine ausgereifte und bewährte Lösung, die das Sicherheitsniveau vieler Web- und Mobilanwendungen positiv beeinflussen wird.
Es ist relativ einfach von jedem Entwicklungsteam unabhängig von seiner Größe zu implementieren.
Leider ist es, wie bei den meisten Lösungen aus Redmond, ein wenig "eckig" und manchmal klobig. Wenn wir nicht viel Wert auf eine umfangreiche Branding-Anpassung der Benutzerregistrierung und des Anmeldeprozesses legen und uns der Microsoft-Ansatz gefällt oder wir andere Lösungen innerhalb von Azure verwenden, können wir uns getrost auf diese Technologie einlassen.
Ich schlage vor, AWS Cognito als Alternative mit einer größeren Bandbreite an UX-Anpassungsoptionen (und aufgrund meiner persönlichen Vorlieben) in Betracht zu ziehen und zu analysieren.
Der Azure AD B2C-Dienst ist im ersten Monat kostenlos (bei 50 000 aktiven Benutzern). Später kann es maximal 0,00211 € pro Monat kosten. Beachten Sie jedoch, dass wir für die Multi-Faktor-Authentifizierung und SMS/Telefon-Ereignisse eine separate Gebühr zahlen, nämlich 0,026 € pro SMS/Telefon-Ereignis. Die genaue Preisliste wird auf der Website von Microsoft veröffentlicht.
Heldenaufnahme: Pxfuel.com