Condividi tramite


Esercitazione per configurare Azure Active Directory B2C con Strata

Importante

A partire dal 1° maggio 2025, Azure AD B2C non sarà più disponibile per l'acquisto per i nuovi clienti. Altre informazioni sono disponibili nelle domande frequenti.

Questa esercitazione descrive come integrare Azure Active Directory B2C (Azure AD B2C) con Strata Maverics Identity Orchestrator, che consente di proteggere le applicazioni locali. Si connette ai sistemi di gestione delle identità, esegue la migrazione di utenti e credenziali, sincronizza criteri e configurazioni e astrae l'autenticazione e la gestione delle sessioni. Usare Strata per eseguire la transizione da legacy a Azure AD B2C, senza riscrivere le applicazioni.

La soluzione offre i vantaggi seguenti:

  • Accesso Single Sign-On (SSO) del cliente alle app ibride locali - Azure AD B2C supporta l'accesso SSO del cliente con Maverics Identity Orchestrator
    • Gli utenti accedono con account ospitati in Azure AD B2C oppure in un provider di identità (IdP)
    • Maverics dimostra l'accesso SSO alle app storicamente protette da sistemi di identità legacy come Symantec SiteMinder
  • Estendere gli standard SSO alle app - Utilizzare Azure AD B2C per gestire l'accesso degli utenti e abilitare SSO con i connettori Maverics Identity Orchestrator Security Assertion Markup Language (SAML) o OpenID Connect (OIDC)
  • Configurazione semplice : connettere i connettori SAML o OIDC di Maverics Identity Orchestrator ad Azure AD B2C

Prerequisiti

Per iniziare, è necessario:

  • Un tenant di Azure AD B2C collegato all'abbonamento di Azure
  • Istanza di Azure Key Vault per archiviare i segreti usati da Maverics Identity Orchestrator. Connettersi ad Azure AD B2C o ad altri provider di attributi, ad esempio una directory LDAP (Lightweight Directory Access Protocol) o un database.
  • Istanza di Maverics Identity Orchestrator in esecuzione in una macchina virtuale di Azure o in un server locale. Per ottenere software e documentazione, passare a strata.io Contattare Strata Identity.
  • Un'applicazione locale per la transizione ad Azure AD B2C

Descrizione dello scenario

L'integrazione di Maverics Identity Orchestrator include i componenti seguenti:

  • Azure AD B2C : server di autorizzazione che verifica le credenziali utente
    • Gli utenti autenticati accedono alle app locali usando un account locale nella directory di Azure AD B2C
  • Fornitore esterno di identità sociale o aziendale (IdP): provider OIDC (OpenID Connect), Facebook, Google o GitHub
  • Strata Maverics Identity Orchestrator: servizio di accesso utente che passa l'identità alle app tramite intestazioni HTTP

Il diagramma dell'architettura seguente illustra l'implementazione.

Diagramma dell'architettura di integrazione di Azure AD B2C, con Maverics Identity Orchestrator, per l'accesso alle app ibride.

  1. L'utente richiede l'accesso all'applicazione ospitata in locale. Maverics Identity Orchestrator invia in proxy la richiesta all'applicazione.
  2. Orchestrator controlla lo stato di autenticazione utente. Se non è presente alcun token di sessione o il token non è valido, l'utente passa ad Azure AD B2C per l'autenticazione
  3. Azure AD B2C invia la richiesta di autenticazione al provider di identità sociale configurato.
  4. Il provider di identità richiede all'utente di fornire le credenziali. Potrebbe essere necessaria l'autenticazione a più fattori (MFA).
  5. Il provider di identità invia la risposta di autenticazione ad Azure AD B2C. L'utente può creare un account locale nella directory di Azure AD B2C.
  6. Azure AD B2C invia la richiesta utente all'endpoint specificato durante la registrazione dell'app Orchestrator nel tenant di Azure AD B2C.
  7. Orchestrator valuta i criteri di accesso e i valori degli attributi per le intestazioni HTTP inoltrate all'app. Orchestrator potrebbe chiamare altri provider di attributi per recuperare informazioni per impostare i valori dell'intestazione. Orchestrator invia la richiesta all'app.
  8. L'utente è autenticato e ha accesso all'app.

Maverics Identity Orchestrator

Per ottenere software e documentazione, passare a strata.io Contattare Strata Identity. Determinare i prerequisiti di Orchestrator. Installare e configurare.

Configurare il tenant di Azure AD B2C

Durante le istruzioni seguenti, documenta:

  • Nome e identificatore del tenant
  • ID cliente
  • Segreto del cliente
  • Dichiarazioni configurate
  • URI di reindirizzamento
  1. Registrare un'applicazione Web in Azure Active Directory B2C nel tenant di Azure AD B2C.
  2. Concedere le autorizzazioni dell'API Microsoft MS Graph alle applicazioni. Usare le autorizzazioni: offline_access, openid.
  3. Aggiungere un URI di reindirizzamento che corrisponda al parametro oauthRedirectURL della configurazione del connettore dell'Orchestrator Azure AD B2C, ad esempio https://example.com/oidc-endpoint.
  4. Creare flussi utente e criteri personalizzati in Azure Active Directory B2C.
  5. Aggiungere un provider di identità al tenant di Azure Active Directory B2C. Accedi al tuo account con un account locale, un account social o un account aziendale.
  6. Definire gli attributi da raccogliere durante l'iscrizione.
  7. Specificare gli attributi da restituire all'applicazione con l'istanza di Orchestrator.

Annotazioni

Orchestrator usa gli attributi delle attestazioni restituite da Azure AD B2C e può recuperare attributi da sistemi di identità connessi, ad esempio directory e database LDAP. Tali attributi si trovano in intestazioni HTTP e inviati all'applicazione locale upstream.

Configurazione di Maverics Identity Orchestrator

Usare le istruzioni nelle sezioni seguenti per configurare un'istanza di Orchestrator.

Requisiti del server Maverics Identity Orchestrator

È possibile eseguire l'istanza di Orchestrator in qualsiasi server, in locale o in un'infrastruttura cloud pubblica tramite provider, ad esempio Azure, AWS o GCP.

  • Sistema operativo: RHEL 7.7 o versione successiva
  • Disco: 10 GB (piccolo)
  • Memoria: 16 GB
  • Porte: 22 (SSH/SCP), 443, 80
  • Accesso root: per le attività di installazione/amministrazione
  • Maverics Identity Orchestrator: viene eseguito come utente maverics in systemd
  • Uscita di rete: dal server che ospita Maverics Identity Orchestrator, affinché possa raggiungere il tenant di Microsoft Entra

Installare Maverics Identity Orchestrator

  1. Scarica il pacchetto RPM Maverics più recente.

  2. Posizionare il pacchetto sul sistema su cui si desidera installare Maverics. Se si esegue la copia in un host remoto, usare SSH scp.

  3. Esegui il comando seguente: Usare il proprio nome file per sostituire maverics.rpm.

    sudo rpm -Uvf maverics.rpm

    Per impostazione predefinita, Maverics si trova nella /usr/local/bin directory .

  4. Maverics viene eseguito come servizio sotto systemd.

  5. Per verificare che il servizio Maverics sia in esecuzione, eseguire il comando seguente:

    sudo service maverics status

  6. Viene visualizzato il messaggio seguente (o simile).

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

Annotazioni

Se l'avvio di Maverics non riesce, eseguire il comando seguente:

journalctl --unit=maverics.service --reverse

Nell'output viene visualizzata la voce di log più recente.

  1. Il file predefinito maverics.yaml viene creato nella /etc/maverics directory .
  2. Configurare il tuo Orchestrator per proteggere la applicazione.
  3. Eseguire l'integrazione con Azure AD B2C e archiviare.
  4. Recuperare segreti da Azure Key Vault.
  5. Definire la posizione da cui l'Orchestrator legge la configurazione.

Fornire la configurazione usando le variabili di ambiente

Configurare le istanze di Orchestrator con le variabili di ambiente.

MAVERICS_CONFIG

Questa variabile di ambiente indica all'istanza di Orchestrator quali file di configurazione YAML usare e dove trovarli durante l'avvio o il riavvio. Impostare la variabile di ambiente in /etc/maverics/maverics.env.

Creare la configurazione TLS di Orchestrator

Il tls campo in maverics.yaml dichiara le configurazioni di sicurezza del livello di trasporto usate dall'istanza di Orchestrator. I connettori usano oggetti TLS e il server Orchestrator.

La maverics chiave è riservata al server Orchestrator. Usare altre chiavi per inserire un oggetto TLS in un connettore.

tls:
  maverics:
    certFile: /etc/maverics/maverics.cert
    keyFile: /etc/maverics/maverics.key

Configurare il connettore Azure AD B2C

Gli orchestratori usano i connettori per integrare con provider di autenticazione e attributi. Il gateway dell'app Orchestrators utilizza il connettore Azure AD B2C come fornitore di autenticazione e attributi. Azure AD B2C usa il provider di identità sociale per l'autenticazione e quindi fornisce attributi all'orchestratore, passandoli nelle attestazioni impostate nelle intestazioni HTTP.

La configurazione del connettore corrisponde all'app registrata nel tenant di Azure AD B2C.

  1. Dalla configurazione dell'applicazione, copia l'ID client, il segreto client e l'URI di reindirizzamento nel tuo tenant.
  2. Immettere un nome connettore ,ad esempio .azureADB2C
  3. Impostare il connettore type su azure.
  4. Prendere nota del nome del connettore. Questo valore verrà usato in altri parametri di configurazione.
  5. Imposta authType su oidc.
  6. Per il oauthClientID parametro impostare l'ID client copiato.
  7. Per il parametro oauthClientSecret, imposta il segreto client che hai copiato.
  8. Per il oauthRedirectURL parametro impostare l'URI di reindirizzamento copiato.
  9. Il connettore OIDC di Azure AD B2C usa l'endpoint OIDC per individuare i metadati, inclusi gli URL e le chiavi di firma. Per l'endpoint del tenant, utilizzare oidcWellKnownURL.
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

Definire Azure AD B2C come provider di autenticazione

Un provider di autenticazione determina l'autenticazione per gli utenti che non presentano una sessione valida durante una richiesta di risorsa dell'app. La configurazione del tenant di Azure AD B2C determina il modo in cui gli utenti devono richiedere le credenziali, mentre applica altri criteri di autenticazione. Un esempio consiste nel richiedere un secondo fattore per completare l'autenticazione e decidere cosa viene restituito al gateway app di Orchestrator, dopo l'autenticazione.

Il valore per authProvider deve corrispondere al valore del connettore name.

authProvider: azureADB2C

Proteggere le app locali con un gateway delle app di Orchestrator

La configurazione di Orchestrator App Gateway dichiara in che modo Azure AD B2C protegge l'applicazione e il modo in cui gli utenti accedono all'app.

  1. Immettere il nome di un gateway dell'app.
  2. Impostare location. Nell'esempio viene usata la radice /dell'app.
  3. Definire l'applicazione protetta in upstream. Usare la convenzione host:port: https://example.com:8080.
  4. Impostare i valori per le pagine di errore e non autorizzate.
  5. Definire i nomi delle intestazioni HTTP e i valori degli attributi per l'applicazione per stabilire l'autenticazione e il controllo. I nomi delle intestazioni corrispondono in genere alle impostazioni dell'app. I valori degli attributi sono gestiti dal namespace dal connettore. Nell'esempio i valori restituiti da Azure AD B2C sono preceduti dal nome azureADB2Cdel connettore . Il suffisso è il nome dell'attributo con il valore richiesto, ad esempio given_name.
  6. Impostare le politiche. Vengono definite tre azioni: allowUnauthenticated, allowAnyAuthenticatede allowIfAny. Ogni azione è associata a un oggetto resource. La politica viene valutata per resource.

Annotazioni

headers e policies usare estensioni del servizio JavaScript o GoLang per implementare logica arbitraria.

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 come gestore di segreti

Proteggere i segreti usati da Orchestrator per connettersi ad Azure AD B2C e ad altri sistemi di identità. Maverics carica i segreti in testo in chiaro da maverics.yaml, tuttavia, in questa esercitazione usa Azure Key Vault come fornitore di segreti.

Seguire le istruzioni in Avvio rapido: Impostare e recuperare un segreto da Azure Key Vault usando il portale di Azure. Aggiungi i tuoi segreti all'archivio e prendi nota di SECRET NAME per ogni segreto. Ad esempio: AzureADB2CClientSecret.

Per dichiarare un valore come segreto in un maverics.yaml file di configurazione, racchiudere il segreto con parentesi angolari.

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

Il valore tra parentesi angolari deve corrispondere al SECRET NAME assegnato a un segreto nel tuo Azure Key Vault.

Per caricare segreti da Azure Key Vault, impostare la variabile MAVERICS_SECRET_PROVIDER di ambiente nel file /etc/maverics/maverics.env, con le credenziali presenti nel file azure-credentials.json. Usare il modello seguente:

MAVERICS_SECRET_PROVIDER='azurekeyvault://<KEYVAULT NAME>.vault.azure.net?clientID=<APPID>&clientSecret=<PASSWORD>&tenantID=<TENANT>'

Completare la configurazione

Le informazioni seguenti illustrano come viene visualizzata la configurazione di Orchestrator.

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

Testare il flusso

  1. Passare all'URL dell'applicazione locale, https://example.com/sonar/dashboard.
  2. L'Orchestrator reindirizza alla pagina del flusso utente.
  3. Nell'elenco, selezionare l'IdP.
  4. Immettere le credenziali, incluso un token MFA, se richiesto dall'Identity Provider.
  5. Si viene reindirizzati ad Azure AD B2C, che inoltra la richiesta dell'app all'URI di reindirizzamento di Orchestrator.
  6. L'orchestratore valuta le politiche e calcola le intestazioni.
  7. Viene visualizzata l'applicazione richiesta.

Passaggi successivi