Delen via


Zelfstudie voor het configureren van Azure Active Directory B2C met Strata

In deze zelfstudie leert u hoe u Azure Active Directory B2C (Azure AD B2C) integreert met Strata Maverics Identity Orchestrator, waarmee u on-premises toepassingen kunt beveiligen. Het maakt verbinding met identiteitssystemen, migreert gebruikers en referenties, synchroniseert beleid en configuraties en abstracteert verificatie en sessiebeheer. Gebruik Strata om over te stappen van verouderd naar Azure AD B2C, zonder toepassingen te herschrijven.

Deze oplossing biedt de volgende voordelen:

  • Eenmalige aanmelding van de klant bij on-premises hybride apps : Azure AD B2C ondersteunt eenmalige aanmelding van klanten met Maverics Identity Orchestrator
    • Gebruikers melden zich aan met accounts die worden gehost in Azure AD B2C of id-provider (IdP)
    • Maverics bewijst eenmalige aanmelding voor apps die historisch zijn beveiligd door verouderde identiteitssystemen zoals Symantec SiteMinder
  • Standaarden voor eenmalige aanmelding uitbreiden naar apps: gebruik Azure AD B2C om gebruikerstoegang te beheren en eenmalige aanmelding in te schakelen met SAML- (Security Assertion Markup Language) of OIDC-connectors (OpenID Connect)
  • Eenvoudige configuratie- Maverics Identity Orchestrator SAML- of OIDC-connectors verbinden met Azure AD B2C

Vereisten

U hebt u het volgende nodig om aan de slag te gaan:

  • Een Azure AD B2C-tenant die is gekoppeld aan uw Azure-abonnement
  • Een exemplaar van Azure Key Vault voor het opslaan van geheimen die worden gebruikt door Maverics Identity Orchestrator. Maak verbinding met Azure AD B2C of andere kenmerkproviders, zoals een LDAP-directory (Lightweight Directory Access Protocol) of -database.
  • Een exemplaar van Maverics Identity Orchestrator dat wordt uitgevoerd op een virtuele Azure-machine (VM) of een on-premises server. Als u software en documentatie wilt downloaden, gaat u naar strata.io Contact opnemen met Strata Identity.
  • Een on-premises toepassing voor de overgang naar Azure AD B2C

Scenariobeschrijving

Maverics Identity Orchestrator-integratie omvat de volgende onderdelen:

  • Azure AD B2C: de autorisatieserver die gebruikersreferenties verifieert
    • Geverifieerde gebruikers hebben toegang tot on-premises apps met behulp van een lokaal account in de Azure AD B2C-directory
  • Externe id-provider voor sociale netwerken of enterprise-id's (IdP): een OIDC-provider, Facebook, Google of GitHub
  • Strata Maverics Identity Orchestrator: de gebruikersaanmeldingsservice die identiteit doorgeeft aan apps via HTTP-headers

In het volgende architectuurdiagram wordt de implementatie weergegeven.

Diagram van de Azure AD B2C-integratiearchitectuur, met Maverics Identity Orchestrator, voor toegang tot hybride apps.

  1. De gebruiker vraagt toegang aan tot de on-premises gehoste toepassing. Maverics Identity Orchestrator proxyt de aanvraag naar de toepassing.
  2. Orchestrator controleert de verificatiestatus van de gebruiker. Als er geen sessietoken is of als het token ongeldig is, gaat de gebruiker naar Azure AD B2C voor verificatie
  3. Azure AD B2C verzendt de verificatieaanvraag naar de geconfigureerde sociale idP.
  4. De IdP vraagt de gebruiker om referenties. Meervoudige verificatie (MFA) kan vereist zijn.
  5. De IdP verzendt het verificatieantwoord naar Azure AD B2C. De gebruiker kan een lokaal account maken in de Azure AD B2C-map.
  6. Azure AD B2C verzendt de gebruikersaanvraag naar het eindpunt dat is opgegeven tijdens de registratie van de Orchestrator-app in de Azure AD B2C-tenant.
  7. Orchestrator evalueert toegangsbeleid en kenmerkwaarden voor HTTP-headers die worden doorgestuurd naar de app. Orchestrator kan andere kenmerkproviders aanroepen om informatie op te halen om de headerwaarden in te stellen. De Orchestrator verzendt de aanvraag naar de app.
  8. De gebruiker wordt geverifieerd en heeft toegang tot de app.

Maverics Identity Orchestrator

Als u software en documentatie wilt downloaden, gaat u naar strata.io Contact opnemen met Strata Identity. Bepaal de Orchestrator-vereisten. Installeren en configureren.

Configureer uw Azure AD B2C-tenant

Documenteer tijdens de volgende instructies:

  • Tenantnaam en -id
  • Client-id
  • Clientgeheim
  • Geconfigureerde claims
  • Omleidings-URI
  1. Registreer een webtoepassing in Azure Active Directory B2C in Azure AD B2C-tenant.
  2. Microsoft MS Graph API machtigingen verlenen aan uw toepassingen. Gebruiksmachtigingen: offline_access, openid.
  3. Voeg een omleidings-URI toe die overeenkomt met de oauthRedirectURL parameter van de Orchestrator Azure AD configuratie van de B2C-connector, https://example.com/oidc-endpointbijvoorbeeld .
  4. Maak gebruikersstromen en aangepast beleid in Azure Active Directory B2C.
  5. Voeg een id-provider toe aan uw Azure Active Directory B2C-tenant. Meld uw gebruiker aan met een lokaal account, een sociaal netwerk of een onderneming.
  6. Definieer de kenmerken die moeten worden verzameld tijdens de registratie.
  7. Geef kenmerken op die moeten worden geretourneerd naar de toepassing met uw Orchestrator-exemplaar.

Notitie

Orchestrator gebruikt kenmerken van claims die worden geretourneerd door Azure AD B2C en kan kenmerken ophalen uit verbonden identiteitssystemen, zoals LDAP-directory's en databases. Deze kenmerken bevinden zich in HTTP-headers en worden verzonden naar de upstream on-premises toepassing.

Installeer Maverics Identity Orchestrator

Gebruik de instructies in de volgende secties om een Orchestrator-exemplaar te configureren.

Vereisten voor Maverics Identity Orchestrator-server

U kunt uw Orchestrator-exemplaar uitvoeren op elke server, on-premises of in een openbare cloudinfrastructuur door de provider zoals Azure, AWS of GCP.

  • Besturingssysteem: REHL 7.7 of hoger, CentOS 7+
  • Schijf: 10 GB (klein)
  • Geheugen: 16 GB
  • Poorten: 22 (SSH/SCP), 443, 80
  • Hoofdtoegang: voor installatie-/beheertaken
  • Maverics Identity Orchestrator: wordt uitgevoerd als gebruiker maverics onder systemd
  • Netwerkuitgang: vanaf de server die als host fungeert voor Maverics Identity Orchestrator die uw Microsoft Entra-tenant kan bereiken

Maverics Identity Orchestrator installeren

  1. Haal het nieuwste Maverics RPM-pakket op.

  2. Plaats het pakket op het systeem waarop u Maverics wilt installeren. Als u naar een externe host kopieert, gebruikt u SSH scp.

  3. Voer de volgende opdracht uit. Gebruik uw bestandsnaam om te vervangen maverics.rpm.

    sudo rpm -Uvf maverics.rpm

    Maverics bevindt zich standaard in de /usr/local/bin map.

  4. Maverics wordt uitgevoerd als een service onder systemd.

  5. Voer de volgende opdracht uit om te controleren of de Maverics-service wordt uitgevoerd:

    sudo service maverics status

  6. Het volgende bericht (of vergelijkbaar) wordt weergegeven.

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

Notitie

Als Maverics niet kan worden gestart, voert u de volgende opdracht uit:

journalctl --unit=maverics.service --reverse

De meest recente logboekvermelding wordt weergegeven in de uitvoer.

  1. Het standaardbestand maverics.yaml wordt gemaakt in de /etc/maverics map.
  2. Configureer uw Orchestrator om de toepassing te beveiligen.
  3. Integreren met Azure AD B2C en store.
  4. Geheimen ophalen uit Azure Key Vault.
  5. Definieer de locatie van waaruit de Orchestrator de configuratie leest.

Configuratie leveren met behulp van omgevingsvariabelen

Configureer uw Orchestrator-exemplaren met omgevingsvariabelen.

MAVERICS_CONFIG

Deze omgevingsvariabele informeert het Orchestrator-exemplaar welke YAML-configuratiebestanden moeten worden gebruikt en waar ze kunnen worden gevonden tijdens het opstarten of opnieuw opstarten. Stel de omgevingsvariabele in /etc/maverics/maverics.env.

De Orchestrator TLS-configuratie maken

Het tls veld in maverics.yaml declareert de beveiligingsconfiguraties van de transportlaag die uw Orchestrator-exemplaar gebruikt. Connectors gebruiken TLS-objecten en de Orchestrator-server.

De sleutel maverics is gereserveerd voor de Orchestrator-server. Gebruik andere sleutels om een TLS-object in een connector te injecteren.

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

Het Azure AD B2C-beleid configureren

Orchestrators gebruiken connectors voor de integratie met verificatie- en kenmerkproviders. De Orchestrators App Gateway gebruikt de Azure AD B2C-connector als verificatie- en kenmerkprovider. Azure AD B2C gebruikt de sociale IdP voor verificatie en biedt vervolgens kenmerken aan de Orchestrator, waarbij deze worden doorgegeven in claims die zijn ingesteld in HTTP-headers.

De connectorconfiguratie komt overeen met de app die is geregistreerd in de Azure AD B2C-tenant.

  1. Kopieer vanuit uw app-configuratie de client-id, het clientgeheim en de omleidings-URI naar uw tenant.
  2. Voer een connectornaam in (bijvoorbeeld azureADB2C).
  3. Stel de connector in type op azure.
  4. Noteer de naam van de connector. U gebruikt deze waarde in andere configuratieparameters.
  5. Stel de authType in op oidc.
  6. Stel voor de oauthClientID parameter de client-id in die u hebt gekopieerd.
  7. Stel voor de oauthClientSecret parameter het clientgeheim in dat u hebt gekopieerd.
  8. Stel voor de oauthRedirectURL parameter de omleidings-URI in die u hebt gekopieerd.
  9. De Azure AD B2C OIDC-connector gebruikt het OIDC-eindpunt om metagegevens te detecteren, waaronder URL's en ondertekeningssleutels. Gebruik oidcWellKnownURLvoor het tenant-eindpunt .
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

Definieer Azure AD B2C als uw verificatieprovider

Een verificatieprovider bepaalt verificatie voor gebruikers die geen geldige sessie presenteren tijdens een app-resourceaanvraag. Azure AD B2C-tenantconfiguratie bepaalt hoe gebruikers worden gevraagd om referenties, terwijl andere verificatiebeleidsregels worden toegepast. Een voorbeeld is om een tweede factor te vereisen om de verificatie te voltooien en te bepalen wat na verificatie wordt geretourneerd naar de Orchestrator App Gateway.

De waarde voor de authProvider moet overeenkomen met de connectorwaarde name .

authProvider: azureADB2C

On-premises apps beveiligen met een Orchestrator App Gateway

De Orchestrator App Gateway-configuratie declareert hoe Azure AD B2C uw toepassing beveiligt en hoe gebruikers toegang krijgen tot de app.

  1. Voer een naam in voor de app-gateway.
  2. Stel de location in. In het voorbeeld wordt de hoofdmap van de app gebruikt /.
  3. Definieer de beveiligde toepassing in upstream. Gebruik de conventie host:port: https://example.com:8080.
  4. Stel de waarden in voor fout- en niet-geautoriseerde pagina's.
  5. Definieer de HTTP-headernamen en kenmerkwaarden voor de toepassing om verificatie en beheer tot stand te brengen. Headernamen komen doorgaans overeen met de app-configuratie. Kenmerkwaarden worden naamruimtes door de connector. In het voorbeeld worden waarden die worden geretourneerd door Azure AD B2C voorafgegaan door de connectornaam azureADB2C. Het achtervoegsel is de kenmerknaam met de vereiste waarde, bijvoorbeeld given_name.
  6. Stel het beleid in. Er worden drie acties gedefinieerd: allowUnauthenticated, allowAnyAuthenticated en allowIfAny. Elke actie is gekoppeld aan een resource. Beleid wordt geëvalueerd voor dat resource.

Notitie

headers en policies gebruik JavaScript- of GoLang-service-extensies om willekeurige logica te implementeren.

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 provider van geheimen

Beveilig de geheimen die uw Orchestrator gebruikt om verbinding te maken met Azure AD B2C en andere identiteitssystemen. Maverics laadt geheimen in tekst zonder opmaak uit maverics.yaml, maar in deze zelfstudie gebruikt u Azure Key Vault als de provider van geheimen.

Volg de instructies in Quickstart: Een geheim instellen en ophalen uit Azure Key Vault met behulp van de Azure Portal. Voeg uw geheimen toe aan de kluis en noteer de SECRET NAME voor elk geheim. Bijvoorbeeld AzureADB2CClientSecret.

Om een waarde als een geheim te declareren in een maverics.yaml-configuratiebestand, zet u haakjes rondom het geheim:

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

De waarde tussen de punthaken moet overeenkomen met de SECRET NAME waarde die is opgegeven voor een geheim in uw Azure Key Vault.

Als u geheimen uit Azure Key Vault wilt laden, stelt u de omgevingsvariabele MAVERICS_SECRET_PROVIDER in het bestand /etc/maverics/maverics.envin met de referenties in het bestand azure-credentials.json. Gebruik het volgende patroon:

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

De configuratie voltooien

De volgende informatie illustreert hoe Orchestrator-configuratie wordt weergegeven.

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

De stroom testen

  1. Navigeer naar de on-premises toepassings-URL: https://example.com/sonar/dashboard.
  2. De Orchestrator wordt omgeleid naar de pagina met de gebruikersstroom.
  3. Selecteer de IdP in de lijst.
  4. Voer referenties in, inclusief een MFA-token, indien vereist door de IdP.
  5. U wordt omgeleid naar Azure AD B2C, die de app-aanvraag doorstuurt naar de Orchestrator-omleidings-URI.
  6. Orchestrator evalueert beleidsregels en berekent headers.
  7. De aangevraagde toepassing wordt weergegeven.

Volgende stappen