Freigeben über


Lernprogramm zum Konfigurieren von Azure Active Directory B2C mit Strata

Von Bedeutung

Ab dem 1. Mai 2025 steht Azure AD B2C nicht mehr für neue Kunden zur Verfügung. Weitere Informationen finden Sie in unseren HÄUFIG gestellten Fragen.

In diesem Lernprogramm erfahren Sie, wie Sie Azure Active Directory B2C (Azure AD B2C) in Strata Maverics Identity Orchestrator integrieren, wodurch lokale Anwendungen geschützt werden. Es stellt eine Verbindung mit Identitätssystemen, migriert Benutzer und Anmeldeinformationen, synchronisiert Richtlinien und Konfigurationen und abstrahiert die Authentifizierung und Sitzungsverwaltung. Verwenden Sie Strata, um von Legacy zu Azure AD B2C zu wechseln, ohne Anwendungen neu zu schreiben.

Diese Lösung hat die folgenden Vorteile:

  • Single Sign-On (SSO) für Kunden bei lokalen Hybrid-Apps – Azure AD B2C unterstützt Kunden-SSO mit Maverics Identity Orchestrator
    • Benutzer melden sich mit Konten an, die in Azure AD B2C oder Identitätsanbieter (IdP) gehostet werden.
    • Maverics beweist SSO für Apps, die historisch durch ältere Identitätssysteme wie Symantec SiteMinder gesichert sind
  • Erweitern von Standards SSO auf Apps – Verwenden von Azure AD B2C zum Verwalten des Benutzerzugriffs und Aktivieren von SSO mit Maverics Identity Orchestrator Security Assertion Markup Language (SAML) oder OpenID Connect (OIDC)-Connectors
  • Einfache Konfiguration – Verbinden von Maverics Identity Orchestrator SAML- oder OIDC-Connectors mit Azure AD B2C

Voraussetzungen

Zunächst benötigen Sie Folgendes:

  • Einen Azure AD B2C-Mandanten, der mit Ihrem Azure-Abonnement verknüpft ist
  • Eine Instanz von Azure Key Vault zum Speichern von geheimen Schlüsseln, die von Maverics Identity Orchestrator verwendet werden. Stellen Sie eine Verbindung mit Azure AD B2C oder anderen Attributanbietern her, z. B. einem LDAP-Verzeichnis (Lightweight Directory Access Protocol) oder einer Datenbank.
  • Eine Instanz von Maverics Identity Orchestrator , die auf einem virtuellen Azure-Computer (VM) oder einem lokalen Server ausgeführt wird. Um Software und Dokumentation zu erhalten, wechseln Sie zu strata.io Contact Strata Identity.
  • Eine lokale Anwendung für den Übergang zu Azure AD B2C

Szenariobeschreibung

Die Maverics Identity Orchestrator-Integration umfasst die folgenden Komponenten:

  • Azure AD B2C – Der Autorisierungsserver, der Benutzeranmeldeinformationen überprüft
    • Authentifizierte Benutzer greifen mithilfe eines lokalen Kontos im Azure AD B2C-Verzeichnis auf lokale Apps zu
  • Externer Anbieter für soziale Netzwerke oder Unternehmensidentitäten (IdP): Ein OIDC-Anbieter, Facebook, Google oder GitHub
  • Strata Maverics Identity Orchestrator: Der Benutzeranmeldungsdienst, der die Identität über HTTP-Header an Apps übergibt

Das folgende Architekturdiagramm zeigt die Implementierung.

Diagramm der Azure AD B2C-Integrationsarchitektur mit Maverics Identity Orchestrator für den Zugriff auf Hybrid-Apps.

  1. Der Benutzer fordert den Zugriff auf die lokal gehostete Anwendung an. Maverics Identity Orchestrator leitet die Anforderung an die Anwendung weiter.
  2. Orchestrator überprüft den Benutzerauthentifizierungsstatus. Wenn kein Sitzungstoken vorhanden ist oder das Token ungültig ist, wechselt der Benutzer zur Authentifizierung an Azure AD B2C.
  3. Azure AD B2C sendet die Authentifizierungsanforderung an den konfigurierten idP für soziale Netzwerke.
  4. Der IdP fordert den Nutzer zur Eingabe von Anmeldeinformationen auf. Die mehrstufige Authentifizierung (Multifactor Authentication, MFA) ist möglicherweise erforderlich.
  5. Der IdP sendet die Authentifizierungsantwort an Azure AD B2C. Der Benutzer kann ein lokales Konto im Azure AD B2C-Verzeichnis erstellen.
  6. Azure AD B2C sendet die Benutzeranforderung an den Endpunkt, der während der Orchestrator-App-Registrierung im Azure AD B2C-Mandanten angegeben wurde.
  7. Der Orchestrator wertet Zugriffsrichtlinien und Attributwerte für HTTP-Header aus, die an die App weitergeleitet werden. Orchestrator ruft möglicherweise andere Attributanbieter auf, um Informationen abzurufen, um die Headerwerte festzulegen. Der Orchestrator sendet die Anforderung an die App.
  8. Der Benutzer ist authentifiziert und hat Zugriff auf die App.

Maverics Identity Orchestrator

Um Software und Dokumentation zu erhalten, wechseln Sie zu strata.io Contact Strata Identity. Ermitteln Sie die Voraussetzungen für den Orchestrator. Installieren und Konfigurieren.

Konfigurieren Sie Ihren Azure AD B2C-Mandanten

Dokumentieren Sie Folgendes, während Sie die folgenden Anweisungen ausführen:

  • Mietername und Kennung
  • Kunden-ID
  • Geheimer Clientschlüssel
  • Konfigurierte Ansprüche
  • Umleitungs-URI
  1. Registrieren Sie eine Webanwendung in Azure Active Directory B2C im Mandanten von Azure AD B2C.
  2. Erteilen Sie Ihren Anwendungen Microsoft MS Graph-API-Berechtigungen. Verwendung von Berechtigungen: offline_access, openid.
  3. Fügen Sie einen Umleitungs-URI hinzu, der dem oauthRedirectURL Parameter der Orchestrator Azure AD B2C-Connectorkonfiguration entspricht, https://example.com/oidc-endpointz. B. .
  4. Erstellen von Benutzerflüssen und benutzerdefinierten Richtlinien in Azure Active Directory B2C.
  5. Fügen Sie Ihrem Azure Active Directory B2C-Mandanten einen Identitätsanbieter hinzu. Melden Sie sich mit einem lokalen Konto, einem Social-Media-Konto oder einem Unternehmenskonto bei Ihrem Benutzerkonto an.
  6. Definieren Sie die Attribute, die während der Registrierung erfasst werden sollen.
  7. Geben Sie Attribute an, die mit Ihrer Orchestrator-Instanz an die Anwendung zurückgegeben werden sollen.

Hinweis

Der Orchestrator verwendet Attribute aus von Azure AD B2C zurückgegebenen Ansprüchen und kann Attribute aus verbundenen Identitätssystemen wie LDAP-Verzeichnissen und Datenbanken abrufen. Diese Attribute befinden sich in HTTP-Headern und werden an die vorgelagerte lokale Anwendung gesendet.

Konfigurieren von Maverics Identity Orchestrator

Verwenden Sie die Anweisungen in den folgenden Abschnitten, um eine Orchestrator-Instanz zu konfigurieren.

Maverics Identity Orchestrator-Serveranforderungen

Sie können Ihre Orchestrator-Instanz auf einem beliebigen Server ausführen, unabhängig davon, ob sie lokal oder in einer öffentlichen Cloudinfrastruktur vom Anbieter wie Azure, AWS oder GCP ausgeführt werden.

  • Betriebssystem: RHEL 7.7 oder höher
  • 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 ausgeführt unter systemd
  • Ausgehender Netzwerkdatenverkehr: Von dem Server, auf dem Maverics Identity Orchestrator gehostet wird, der Ihren Microsoft Entra-Mandanten erreichen kann.

Installieren von Maverics Identity Orchestrator

  1. Holen Sie sich das neueste Maverics RPM-Paket.

  2. Platzieren Sie das Paket auf dem System, das Sie maverics installieren möchten. Wenn Sie auf einen Remotehost kopieren, verwenden Sie SSH-Scp.

  3. Führen Sie den folgenden Befehl aus. Verwenden Sie Ihren Dateinamen, um maverics.rpm zu ersetzen.

    sudo rpm -Uvf maverics.rpm

    Standardmäßig befindet sich Maverics im /usr/local/bin Verzeichnis.

  4. Maverics wird als Service unter systemd ausgeführt.

  5. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob der Maverics-Dienst ausgeführt wird:

    sudo service maverics status

  6. Die folgende Meldung (oder ähnlich) 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 gestartet werden kann, führen Sie den folgenden Befehl aus:

journalctl --unit=maverics.service --reverse

Der letzte Protokolleintrag wird in der Ausgabe angezeigt.

  1. Die Standarddatei maverics.yaml wird im /etc/maverics Verzeichnis erstellt.
  2. Konfigurieren Sie Ihren Orchestrator, um die Anwendung zu schützen.
  3. Integrieren mit Azure AD B2C und speichern.
  4. Rufen Sie geheime Schlüssel aus Azure Key Vault ab.
  5. Definieren Sie den Speicherort, an dem der Orchestrator seine Konfiguration liest.

Bereitstellungskonfiguration mit Umgebungsvariablen

Konfigurieren Sie Ihre Orchestrator-Instanzen mit Umgebungsvariablen.

MAVERICS_CONFIG

Diese Umgebungsvariable informiert die Orchestrator-Instanz darüber, welche YAML-Konfigurationsdateien verwendet werden sollen und wo sie beim Start oder Neustart gefunden werden sollen. Legen Sie die Umgebungsvariable in /etc/maverics/maverics.env.

Erstellen der Orchestrator-TLS-Konfiguration

Das tls Feld in maverics.yaml deklariert die Sicherheitskonfigurationen der Transportschicht, die Ihre Orchestrator-Instanz verwendet. Connectors verwenden TLS-Objekte und den Orchestrator-Server.

Der maverics Schlüssel 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 zur Integration mit Authentifizierungs- und Attributanbietern. Das Orchestrators-App-Gateway verwendet den Azure AD B2C-Connector als Authentifizierungs- und Attributanbieter. Azure AD B2C verwendet den sozialen IdP für die Authentifizierung und stellt dann Attribute für den Orchestrator bereit, indem sie in einem Anspruchssatz in HTTP-Headern übergeben werden.

Die Connectorkonfiguration entspricht der App, die im Azure AD B2C-Mandanten registriert ist.

  1. Kopieren Sie aus Ihrer App-Konfiguration die Client-ID, den geheimen Clientschlüssel und den Umleitungs-URI in Ihren Mandanten.
  2. Geben Sie einen Connectornamen ein (Beispiel: azureADB2C).
  3. Legen Sie den Verbinder type auf azure fest.
  4. Notieren Sie sich den Connectornamen. Sie verwenden diesen Wert in anderen Konfigurationsparametern.
  5. Legen Sie authType auf oidc fest.
  6. Legen Sie für den oauthClientID Parameter die client-ID fest, die Sie kopiert haben.
  7. Legen Sie für den oauthClientSecret Parameter den geheimen Clientschlüssel fest, den Sie kopiert haben.
  8. Legen Sie für den oauthRedirectURL Parameter den umleitungs-URI fest, den Sie kopiert haben.
  9. Der Azure AD B2C-OIDC-Connector verwendet den OIDC-Endpunkt, um Metadaten zu ermitteln, 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 Konfiguration des Azure AD B2C-Mandanten bestimmt, wie Benutzer zur Eingabe ihrer Anmeldeinformationen aufgefordert werden, während andere Authentifizierungsrichtlinien angewendet werden. Ein Beispiel besteht darin, dass ein zweiter Faktor erforderlich ist, um die Authentifizierung abzuschließen und zu entscheiden, was nach der Authentifizierung an das Orchestrator-App-Gateway zurückgegeben wird.

Der Wert für authProvider muss Ihrem Connector-Wert name entsprechen.

authProvider: azureADB2C

Schützen Sie lokal gehostete Apps mit einem Orchestrator-App-Gateway

Die Orchestrator App Gateway-Konfiguration deklariert, wie Azure AD B2C Ihre Anwendung schützt und wie Benutzer auf die App zugreifen.

  1. Geben Sie einen App-Gatewaynamen ein.
  2. Legen Sie die location fest. Im Beispiel wird der App-Stamm verwendet /.
  3. Definieren Sie die geschützte Anwendung in upstream. Verwenden Sie die Host:Port-Konvention: https://example.com:8080.
  4. Legen Sie die Werte für Fehler und nicht autorisierte Seiten fest.
  5. Definieren Sie die HTTP-Headernamen und Attributwerte für die Anwendung, um die Authentifizierung und Kontrolle einzurichten. Kopfzeilennamen entsprechen in der Regel der App-Konfiguration. Attributwerte werden vom Connector namespaced. Im Beispiel werden von Azure AD B2C zurückgegebene Werte dem Connectornamen azureADB2Cvorangestellt. Das Suffix ist der Attributname mit dem erforderlichen Wert, z. B given_name. .
  6. Legen Sie die Richtlinien fest. Drei Aktionen sind definiert: allowUnauthenticated, allowAnyAuthenticated, und allowIfAny. Jede Aktion ist einem resource-Element zugeordnet. Die Richtlinie wird für dieses resource-Element 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 geheimer Anbieter

Schützen Sie die Geheimnisse, die Ihr Orchestrator zum Herstellen einer 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.

Folgen Sie den Anweisungen in der Schnellstartanleitung: Festlegen und Abrufen eines geheimen Schlüssels aus Azure Key Vault mithilfe des Azure-Portals. Fügen Sie Ihre Geheimnisse dem Tresor hinzu, und notieren Sie sich SECRET NAME für jedes Geheimnis. Beispiel: AzureADB2CClientSecret.

Um einen Wert als Geheimnis in einer maverics.yaml Konfigurationsdatei zu deklarieren, umschließen Sie das Geheimnis mit spitzen Klammern.

connectors:
  - name: AzureADB2C
    type: azure
    oauthClientID: <AzureADB2CClientID>
    oauthClientSecret: <AzureADB2CClientSecret>

Der in spitzen Klammern angegebene Wert muss dem SECRET NAME-Wert entsprechen, der einem Geheimnis in Azure Key Vault zugewiesen ist.

Um Geheimnisse aus Azure Key Vault zu laden, legen Sie die Umgebungsvariable MAVERICS_SECRET_PROVIDER in der Datei /etc/maverics/maverics.envmit den Anmeldeinformationen fest, die Sie in der azure-credentials.json Datei finden. Verwenden Sie 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 Orchestratorkonfiguration angezeigt wird.

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

  1. Navigieren Sie zur lokalen Anwendungs-URL, https://example.com/sonar/dashboard.
  2. Der Orchestrator leitet zur Seite mit dem Benutzerflow um.
  3. Wählen Sie in der Liste den Identitätsanbieter aus.
  4. Geben Sie Anmeldeinformationen einschließlich eines MFA-Tokens ein, wenn dies vom Identitätsanbieter angefordert wird.
  5. Sie werden zu Azure AD B2C umgeleitet, das die App-Anforderung an die Umleitungs-URI des Orchestrators weiterleitet.
  6. Der Orchestrator wertet Richtlinien aus und berechnet Header.
  7. Die angeforderte Anwendung wird angezeigt.

Nächste Schritte