Tutorial zum Konfigurieren von Azure Active Directory B2C mit Strata
In diesem Tutorial erfahren Sie, wie Sie Azure Active Directory B2C (Azure AD B2C) in Strata Maverics Identity Orchestrator integrieren, um lokale Anwendungen zu schützen. Maverics Identity Orchestrator stellt eine Verbindung mit Identitätssystemen her, migriert Benutzer und Anmeldeinformationen transparent, synchronisiert Richtlinien und Konfigurationen und abstrahiert die Authentifizierung und Sitzungsverwaltung. Mithilfe von Strata können Sie von Legacyanwendungen auf Azure AD B2C umsteigen, ohne Anwendungen neu schreiben zu müssen.
Diese Lösung hat die folgenden Vorteile:
-
Einmaliges Anmelden (Single Sign-On, SSO) von Kunden bei lokalen Hybrid-Apps: Azure AD B2C unterstützt das einmalige Anmelden von Kunden mit Maverics Identity Orchestrator.
- Benutzer melden sich mit Konten an, die in Azure AD B2C oder einem Identitätsanbieter (Identity Provider, IdP) gehostet werden.
- Maverics stellt Apps SSO bereit, die in der Vergangenheit durch Legacyidentitätssysteme wie Symantec SiteMinder geschützt wurden.
- Erweitern des standardmäßigen einmaligen Anmeldens auf Apps: Sie können Azure AD B2C verwenden, um den Benutzerzugriff zu verwalten und einmaliges Anmelden mit Maverics Identity Orchestrator Security Assertion Markup Language (SAML)- oder OIDC-Connectors (OpenID Connect) zu aktivieren.
- Einfache Konfiguration: Verbinden Sie Maverics Identity Orchestrator SAML- oder OIDC-Connectors mit Azure AD B2C.
Voraussetzungen
Zunächst benötigen Sie Folgendes:
Ein Azure-Abonnement
- Wenn Sie über kein Abonnement verfügen, können Sie ein kostenloses Azure-Konto anfordern.
- Einen Azure AD B2C-Mandanten, der mit Ihrem Azure-Abonnement verknüpft ist.
- Eine Instanz von Azure Key Vault zum Speichern von Geheimnissen, die von Maverics Identity Orchestrator verwendet werden. Stellen Sie eine Verbindung mit Azure AD B2C oder anderen Attributanbietern (z. B. mit einem LDAP-Verzeichnis (Lightweight Directory Access Protocol) oder einer Datenbank) her.
- Eine Instanz von Maverics Identity Orchestrator, die auf einem virtuellen Azure-Computer oder auf einem lokalen Server ausgeführt wird. Um Software und Dokumentation zu erhalten, wechseln Sie zu strata.io Strata Identity kontaktieren.
- Eine lokale Anwendung für die Umstellung auf Azure AD B2C
Beschreibung des Szenarios
Maverics Identity Orchestrator-Integration umfasst die folgenden Komponenten:
-
Azure AD B2C: Der Autorisierungsserver zum Überprüfen von Benutzeranmeldeinformationen.
- Authentifizierte Benutzer greifen auf lokale Apps mit einem lokalen Konto im Azure AD B2C-Verzeichnis zu.
- Externer sozialer Netzwerk- oder Unternehmensidentitätsanbieter (IdP): Ein OIDC-Anbieter, Facebook, Google oder GitHub.
- Maverics Identity Orchestrator von Strata: Der Dienst für die Benutzeranmeldung, der die Identität über HTTP-Header an Apps übergibt.
Im folgenden Architekturdiagramm ist die Implementierung dargestellt.
- Der Benutzer fordert Zugriff auf die lokale gehostete Anwendung an. Maverics Identity Orchestrator sendet die Anforderung als Proxy an die Anwendung.
- Der Orchestrator überprüft den Zustand der Benutzerauthentifizierung. Wenn kein Sitzungstoken vorhanden oder das Token ungültig ist, wechselt der Benutzer für die Authentifizierung zu Azure AD B2C.
- Azure AD B2C sendet die Authentifizierungsanforderung an den konfigurierten sozialen IdP.
- Der IdP fordert den Benutzer zur Eingabe von Anmeldeinformationen heraus. Möglicherweise ist Multi-Faktor-Authentifizierung (MFA) erforderlich.
- Der IdP sendet die Authentifizierungsantwort an Azure AD B2C. Der Benutzer kann ein lokales Konto im Azure AD B2C-Verzeichnis erstellen.
- Azure AD B2C sendet die Benutzeranforderung an den Endpunkt, der während der Registrierung der Orchestrator-App im Azure AD B2C-Mandanten angegeben wurde.
- Der Orchestrator wertet Zugriffsrichtlinien und Attributwerte für HTTP-Header aus, die an die App weitergeleitet werden. Orchestrator kann andere Attributanbieter aufrufen, um Informationen zum Festlegen der Headerwerte abzurufen. Der Orchestrator sendet die Anforderung an die App.
- Der Benutzer wird authentifiziert und erhält Zugriff auf die App.
Maverics Identity Orchestrator
Um Software und Dokumentation zu erhalten, wechseln Sie zu strata.io Strata Identity kontaktieren. Bestimmen der Voraussetzungen für den Orchestrator. Installieren und Konfigurieren.
Konfigurieren Ihres Azure AD B2C-Mandanten
Dokumentieren Sie Folgendes, während Sie die folgenden Anweisungen ausführen:
- Mandantenname und -bezeichner
- Client-ID
- Geheimer Clientschlüssel
- Konfigurierte Ansprüche
- Umleitungs-URI
- Registrieren einer Webanwendung in Azure Active Directory B2C im Azure AD B2C-Mandanten.
- Erteilen Sie Ihren Anwendungen Microsoft Graph-API-Berechtigungen. Verwenden Sie Berechtigungen:
offline_access
,openid
. - Fügen Sie einen Umleitungs-URI hinzu, der mit dem
oauthRedirectURL
Parameter der Konfiguration des Orchestrator Azure AD B2C-Connectors übereinstimmt, z. B.https://example.com/oidc-endpoint
. - Erstellen Sie Benutzerflows und benutzerdefinierte Richtlinien in Azure Active Directory B2C.
- Hinzufügen eines Identitätsanbieters zu Ihrem Azure Active Directory B2C-Mandanten. Melden Sie Ihren Benutzer mit einem lokalen Konto oder einem sozialen Netzwerk- oder Unternehmenskonto an.
- Definieren Sie die Attribute, die während der Registrierung gesammelt werden sollen.
- Geben Sie Attribute an, die über Ihre Orchestrator-Instanz an die Anwendung zurückgegeben werden sollen.
Hinweis
Der Orchestrator nutzt Attribute aus von Azure AD B2C zurückgegebenen Ansprüchen und kann Attribute aus verbundenen Identitätssystemen (z. B. aus LDAP-Verzeichnissen und Datenbanken) abrufen. Diese Attribute befinden sich in HTTP-Headern und werden an die lokale Upstreamanwendung gesendet.
Konfigurieren von Maverics Identity Orchestrator
Verwenden Sie die Anweisungen in den folgenden Abschnitten, um eine Orchestrator-Instanz zu konfigurieren.
Serveranforderungen von Maverics Identity Orchestrator
Sie können Ihre Orchestrator-Instanz auf jedem beliebigen Server – lokal oder in einer öffentlichen Cloudinfrastruktur eines Anbieters wie Azure, AWS oder GCP – ausführen.
- Betriebssystem: REHL 7.7 oder höher, CentOS 7+
- Datenträger: 10 GB (klein)
- Arbeitsspeicher: 16 GB
- Ports: 22 (SSH/SCP), 443, 80
- Stammzugriff: Für Installations-/Verwaltungsaufgaben
-
Maverics Identity Orchestrator: Wird als Benutzer
maverics
untersystemd
ausgeführt. - Ausgehender Netzwerkdatenverkehr: Von dem Server, auf dem Maverics Identity Orchestrator gehostet wird, der Ihren Microsoft Entra-Mandanten erreichen kann.
Installieren von Maverics Identity Orchestrator
Rufen Sie das aktuelle Maverics-RPM-Paket ab.
Legen Sie das Paket auf dem System ab, auf dem Sie Maverics installieren möchten. Wenn Sie auf einen Remotehost kopieren, verwenden Sie SSH scp.
Führen Sie den folgenden Befehl aus. Verwenden Sie Ihren Dateinamen, um
maverics.rpm
zu ersetzen.sudo rpm -Uvf maverics.rpm
Maverics befindet sich standardmäßig im Verzeichnis
/usr/local/bin
.Maverics wird als Dienst unter
systemd
ausgeführt.Führen Sie den folgenden Befehl aus, um sich zu vergewissern, dass der Maverics-Dienst ausgeführt wird:
sudo service maverics status
Die folgende Meldung (oder eine ähnliche) wird angezeigt.
Redirecting to /bin/systemctl status maverics.service
maverics.service - Maverics
Loaded: loaded (/etc/systemd/system/maverics.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2020-08-13 16:48:01 UTC; 24h ago
Main PID: 330772 (maverics)
Tasks: 5 (limit: 11389)
Memory: 14.0M
CGroup: /system.slice/maverics.service
└─330772 /usr/local/bin/maverics --config /etc/maverics/maverics.yaml
Hinweis
Wenn Maverics nicht starten kann, führen Sie den folgenden Befehl aus:
journalctl --unit=maverics.service --reverse
Der jüngste Protokolleintrag wird in der Ausgabe angezeigt.
- Die Standarddatei
maverics.yaml
wird im Verzeichnis/etc/maverics
erstellt. - Konfigurieren Sie Ihren Orchestrator, um die Anwendung zu schützen.
- Integrieren in Azure AD B2C und Speichern.
- Rufen Sie Geheimnisse aus Azure Key Vault ab.
- Definieren Sie den Speicherort, von dem der Orchestrator seine Konfiguration liest.
Angeben der Konfiguration mithilfe von Umgebungsvariablen
Konfigurieren Sie Ihre Orchestrator-Instanzen mit Umgebungsvariablen.
MAVERICS_CONFIG
Diese Umgebungsvariable teilt der Orchestrator-Instanz mit, welche YAML-Konfigurationsdateien verwendet werden sollen und wo diese während des Starts oder Neustarts zu finden sind. Legen Sie die Umgebungsvariable in /etc/maverics/maverics.env
fest.
Erstellen der TLS-Konfiguration des Orchestrators
Das Feld tls
in maverics.yaml
deklariert die Transport Layer Security-Konfigurationen (TLS), die von Ihrer Orchestrator-Instanz verwendet werden. Connectors verwenden TLS-Objekte und den Orchestrator-Server.
Der Schlüssel maverics
ist für den Orchestrator-Server reserviert. Verwenden Sie andere Schlüssel, um ein TLS-Objekt in einen Connector einzufügen.
tls:
maverics:
certFile: /etc/maverics/maverics.cert
keyFile: /etc/maverics/maverics.key
Konfigurieren des Azure AD B2C-Connectors
Orchestratoren verwenden Connectors zum Integrieren von Authentifizierungs- und Attributanbietern. Das App-Gateway des Orchestrators verwendet den Azure AD B2C-Connector als Authentifizierungs- und Attributanbieter. Azure AD B2C verwendet den sozialen IdP für die Authentifizierung und stellt dann dem Orchestrator Attribute bereit, die in Ansprüchen übergeben werden, die in HTTP-Headern festgelegt sind.
Die Konfiguration des Connectors entspricht der im Azure AD B2C-Mandanten registrierten App.
- Kopieren Sie aus Ihrer App-Konfiguration die Client-ID, den geheimen Clientschlüssel und den Umleitungs-URI in Ihren Mandanten.
- Geben Sie einen Connectornamen ein (Beispiel:
azureADB2C
). - Legen Sie den Connector
type
aufazure
fest. - Notieren Sie sich den Connectornamen. Sie verwenden diesen Wert noch in anderen Konfigurationsparametern.
- Legen Sie
authType
aufoidc
fest. - Legen Sie für den Parameter
oauthClientID
die Client-ID fest, die Sie kopiert haben. - Legen Sie für den Parameter
oauthClientSecret
den geheimen Clientschlüssel fest, den Sie kopiert haben. - Legen Sie für den Parameter
oauthRedirectURL
den Umleitungs-URI fest, den Sie kopiert haben. - Der Azure AD B2C OIDC-Connector verwendet den OIDC-Endpunkt zum Ermitteln von Metadaten, einschließlich URLs und Signaturschlüsseln. Verwenden Sie
oidcWellKnownURL
als Mandantenendpunkt.
connectors:
name: azureADB2C
type: azure
oidcWellKnownURL: https://<tenant name>.b2clogin.com/<tenant name>.onmicrosoft.com/B2C_1_login/v2.0/.well-known/openid-configuration
oauthRedirectURL: https://example.com/oidc-endpoint
oauthClientID: <azureADB2CClientID>
oauthClientSecret: <azureADB2CClientSecret>
authType: oidc
Definieren von Azure AD B2C als Authentifizierungsanbieter
Ein Authentifizierungsanbieter bestimmt die Authentifizierung für Benutzer, die während einer App-Ressourcenanforderung keine gültige Sitzung präsentieren. Die Azure AD B2C-Mandantenkonfiguration bestimmt, wie Benutzer für Anmeldeinformationen herausgefordert werden, während andere Authentifizierungsrichtlinien angewendet werden. Ein Beispiel wäre, einen zweiten Faktor zum Abschließen der Authentifizierung zu verlangen und zu entscheiden, was nach der Authentifizierung an das Orchestrator App Gateway zurückgegeben wird.
Der Wert für den authProvider
muss dem name
Ihres Connectors entsprechen.
authProvider: azureADB2C
Schützen lokaler Apps mit einem Orchestrator App Gateway
Die Konfiguration des Orchestrator App Gateways deklariert, wie Azure AD B2C Ihre Anwendung schützt und wie Benutzer auf die App zugreifen.
- Geben Sie einen App Gateway-Namen ein.
- Legen Sie die
location
fest. In diesem Beispiel wird der App-Stamm/
verwendet. - Definieren Sie die geschützte Anwendung in
upstream
. Verwenden Sie die „Host:Port“-Konvention:https://example.com:8080
. - Legen Sie die Werte für Fehler- und nicht autorisierte Seiten fest.
- Definieren Sie die HTTP-Headernamen und Attributwerte für die Anwendung, um Authentifizierung und Kontrolle einzurichten. Headernamen entsprechen in der Regel der App-Konfiguration. Attributwerte sind dem Namespace des Connectors zugeordnet. In dem Beispiel wird Werten, die von Azure AD B2C zurückgegeben werden, der Connectorname
azureADB2C
vorangestellt (Präfix). Das Suffix ist der Attributname mit dem erforderlichen Wert, z. Bgiven_name
. - Legen Sie die Richtlinien fest. Es sind drei Aktionen definiert:
allowUnauthenticated
,allowAnyAuthenticated
undallowIfAny
. Jede Aktion ist einerresource
zugeordnet. Die Richtlinie wird für dieseresource
ausgewertet.
Hinweis
headers
und policies
verwenden JavaScript- oder GoLang-Diensterweiterungen, um beliebige Logik zu implementieren.
appgateways:
- name: Sonar
location: /
upstream: https://example.com:8080
errorPage: https://example.com:8080/sonar/error
unauthorizedPage: https://example.com:8080/sonar/accessdenied
headers:
SM_USER: azureADB2C.sub
firstname: azureADB2C.given_name
lastname: azureADB2C.family_name
policies:
- resource: ~ \.(jpg|png|ico|svg)
allowUnauthenticated: true
- resource: /
allowAnyAuthenticated: true
- resource: /sonar/daily_deals
allowIfAny:
azureADB2C.customAttribute: Rewards Member
Azure Key Vault als Geheimnisanbieter
Schützen Sie die Geheimnisse, die Ihr Orchestrator zum Herstellen der Verbindung mit Azure AD B2C und anderen Identitätssystemen verwendet. Maverics lädt Geheimnisse im Nur-Text-Format aus maverics.yaml
. In diesem Tutorial verwenden Sie jedoch Azure Key Vault als Geheimnisanbieter.
Befolgen Sie die Anweisungen im Schnellstart: Festlegen eines Geheimnisses und Abrufen des Geheimnisses aus Azure Key Vault mithilfe des Azure-Portals. Fügen Sie Ihre Geheimnisse dem Tresor hinzu, und notieren Sie sich den SECRET NAME
für jedes Geheimnis. Beispiel: AzureADB2CClientSecret
.
Wenn Sie einen Wert in einer Konfigurationsdatei (maverics.yaml
) als Geheimnis deklarieren möchten, umschließen Sie ihn mit spitzen Klammern:
connectors:
- name: AzureADB2C
type: azure
oauthClientID: <AzureADB2CClientID>
oauthClientSecret: <AzureADB2CClientSecret>
Der in spitzen Klammern angegebene Wert muss dem SECRET NAME
entsprechen, der einem Geheimnis in Ihrem Azure Key Vault zugewiesen ist.
Wenn Sie Geheimnisse aus Azure Key Vault laden möchten, legen Sie in der Datei /etc/maverics/maverics.env
die Umgebungsvariable MAVERICS_SECRET_PROVIDER
mit den Anmeldeinformationen aus der Datei „azure-credentials.json“ fest. Verwenden Sie hierzu das folgende Muster:
MAVERICS_SECRET_PROVIDER='azurekeyvault://<KEYVAULT NAME>.vault.azure.net?clientID=<APPID>&clientSecret=<PASSWORD>&tenantID=<TENANT>'
Abschließen der Konfiguration
Die folgenden Informationen veranschaulichen, wie die Orchestrator-Konfiguration aussieht.
version: 0.4.2
listenAddress: ":443"
tls:
maverics:
certFile: certs/maverics.crt
keyFile: certs/maverics.key
authProvider: azureADB2C
connectors:
- name: azureADB2C
type: azure
oidcWellKnownURL: https://<tenant name>.b2clogin.com/<tenant name>.onmicrosoft.com/B2C_1_login/v2.0/.well-known/openid-configuration
oauthRedirectURL: https://example.com/oidc-endpoint
oauthClientID: <azureADB2CClientID>
oauthClientSecret: <azureADB2CClientSecret>
authType: oidc
appgateways:
- name: Sonar
location: /
upstream: http://example.com:8080
errorPage: http://example.com:8080/sonar/accessdenied
unauthorizedPage: http://example.com:8080/sonar/accessdenied
headers:
SM_USER: azureADB2C.sub
firstname: azureADB2C.given_name
lastname: azureADB2C.family_name
policies:
- resource: ~ \.(jpg|png|ico|svg)
allowUnauthenticated: true
- resource: /
allowAnyAuthenticated: true
- resource: /sonar/daily_deals
allowIfAny:
azureADB2C.customAttribute: Rewards Member
Testen des Flows
- Navigieren Sie zur URL der lokalen Anwendung,
https://example.com/sonar/dashboard
. - Der Orchestrator leitet zur Seite „Benutzerflow“ um.
- Wählen Sie in der Liste den Identitätsanbieter aus.
- Geben Sie Anmeldeinformationen einschließlich eines MFA-Tokens ein, wenn dies vom IdP angefordert wird.
- Sie werden zu Azure AD B2C umgeleitet, das die App-Anforderung an den Umleitungs-URI des Orchestrators weiterleitet.
- Der Orchestrator wertet Richtlinien aus und berechnet Header.
- Die angeforderte Anwendung wird angezeigt.