Condividi tramite


Esercitazione per configurare Azure Active Directory B2C con Strata

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 passare dalla versione legacy ad 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 o provider di identità (IdP)
    • Maverics dimostra l'accesso Single Sign-On alle app storicamente protette da sistemi di identità legacy come Symantec SiteMinder
  • Estendere l'accesso Single Sign-On alle app: usare Azure AD B2C per gestire l'accesso utente e abilitare l'accesso SSO con i connettori SamL (Identity Orchestrator Security Assertion Markup Language) di Maverics 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 alla sottoscrizione 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
  • Provider di identità social o aziendale esterno (IdP): provider OIDC, 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 esegue il proxy della richiesta all'applicazione.
  2. Orchestrator controlla lo stato di autenticazione dell'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à di social networking configurato.
  4. Il provider di identità sfida l'utente per 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 dell'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 di intestazione. Orchestrator invia la richiesta all'app.
  8. L'utente viene 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, documentare:

  • Nome e identificatore del tenant
  • ID client
  • Segreto client
  • Attestazioni configurate
  • URI di reindirizzamento
  1. Registrare un'applicazione Web in Azure Active Directory B2C nel tenant di Azure AD B2C.
  2. Concedere a Microsoft MS API Graph autorizzazioni per le applicazioni. Usare le autorizzazioni: offline_access, openid.
  3. Aggiungere un URI di reindirizzamento corrispondente al oauthRedirectURL parametro della configurazione del connettore Azure AD B2C di Orchestrator, https://example.com/oidc-endpointad esempio .
  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. Accedere all'utente con un account locale, un social o un'azienda.
  6. Definire gli attributi da raccogliere durante l'iscrizione.
  7. Specificare gli attributi da restituire all'applicazione con l'istanza di Orchestrator.

Nota

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

Configurare 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: REHL 7.7 o versione successiva, CentOS 7+
  • Disco: 10 GB (piccolo)
  • Memoria: 16 GB
  • Porte: 22 (SSH/SCP), 443, 80
  • Accesso radice: 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 che può raggiungere il tenant Microsoft Entra

Installare Maverics Identity Orchestrator

  1. Ottenere la versione più recente del pacchetto RPM di Maverics.

  2. Inserire il pacchetto nel sistema che si vuole installare Maverics. Se si esegue la copia in un host remoto, usare SSH scp.

  3. Eseguire il comando seguente. Usare il 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 in 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

Nota

Se Maverics non viene avviato, 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 Orchestrator per proteggere l'applicazione.
  3. Eseguire l'integrazione con Azure AD B2C e archiviare.
  4. Recuperare i segreti da Azure Key Vault.
  5. Definire la posizione da cui Orchestrator legge la configurazione.

Specificare 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 chiave maverics è riservata al server di 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 agenti di orchestrazione usano connettori per l'integrazione con provider di autenticazione e attributi. Il gateway app Orchestrators usa il connettore Azure AD B2C come provider di autenticazione e attributo. Azure AD B2C usa il social IdP per l'autenticazione e quindi fornisce attributi all'agente di orchestrazione, 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'app copiare l'ID client, il segreto client e l'URI di reindirizzamento nel 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. Impostare authType su oidc.
  6. Per il parametro impostare l'ID oauthClientID client copiato.
  7. Per il oauthClientSecret parametro impostare il segreto client copiato.
  8. Per il parametro impostare l'URI oauthRedirectURL 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 tenant, usare 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 risorse dell'app. La configurazione del tenant di Azure AD B2C determina la modalità di richiesta degli utenti per 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 orchestratore, dopo l'autenticazione.

Il valore per l'oggetto deve corrispondere al authProvider valore del connettore name .

authProvider: azureADB2C

Proteggere le app locali con un gateway app di Orchestrator

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

  1. Immettere un nome del gateway 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 di intestazione HTTP e i valori di attributo per l'applicazione per stabilire l'autenticazione e il controllo. I nomi di intestazione corrispondono in genere alla configurazione dell'app. I valori degli attributi sono spazi dei nomi del connettore. Nell'esempio i valori restituiti da Azure AD B2C vengono preceduti dal nome azureADB2Cdel connettore . Il suffisso è il nome dell'attributo con il valore richiesto, ad esempio given_name.
  6. Impostare i criteri. Vengono definite tre azioni: allowUnauthenticated, allowAnyAuthenticatede allowIfAny. Ogni azione è associata a un resourceoggetto . I criteri vengono valutati per tale resourceoggetto .

Nota

headers e policies usare le estensioni del servizio JavaScript o GoLang per implementare la 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 provider 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 normale fuori maverics.yamlda , tuttavia, in questa esercitazione, usare Azure Key Vault come provider di segreti.

Seguire le istruzioni riportate in Avvio rapido: Impostare e recuperare un segreto da Azure Key Vault usando il portale di Azure. Aggiungere i segreti all'insieme SECRET NAME di credenziali e prendere nota di per ogni segreto. Ad esempio, AzureADB2CClientSecret.

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

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

Il valore nelle parentesi angolari deve corrispondere a quello specificato a un segreto nell'Key Vault SECRET NAME di Azure.

Per caricare i segreti da Azure Key Vault, impostare la variabile MAVERICS_SECRET_PROVIDER di ambiente nel file , con le credenziali presenti nel file /etc/maverics/maverics.envazure-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 dell'agente di orchestrazione.

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. Orchestrator reindirizza alla pagina del flusso utente.
  3. Nell'elenco selezionare IdP.
  4. Immettere le credenziali, incluso un token MFA, se richiesto dall'IDP.
  5. Si viene reindirizzati ad Azure AD B2C, che inoltra la richiesta dell'app all'URI di reindirizzamento di Orchestrator.
  6. Orchestrator valuta i criteri e calcola le intestazioni.
  7. Viene visualizzata l'applicazione richiesta.

Passaggi successivi