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-abonnement
- Als u nog geen account hebt, kunt u een gratis Azure-account krijgen.
- 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.
- De gebruiker vraagt toegang aan tot de on-premises gehoste toepassing. Maverics Identity Orchestrator proxyt de aanvraag naar de toepassing.
- 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
- Azure AD B2C verzendt de verificatieaanvraag naar de geconfigureerde sociale idP.
- De IdP vraagt de gebruiker om referenties. Meervoudige verificatie (MFA) kan vereist zijn.
- De IdP verzendt het verificatieantwoord naar Azure AD B2C. De gebruiker kan een lokaal account maken in de Azure AD B2C-map.
- 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.
- 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.
- 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
- Registreer een webtoepassing in Azure Active Directory B2C in Azure AD B2C-tenant.
- Microsoft MS Graph API machtigingen verlenen aan uw toepassingen. Gebruiksmachtigingen:
offline_access
,openid
. - 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-endpoint
bijvoorbeeld . - Maak gebruikersstromen en aangepast beleid in Azure Active Directory B2C.
- 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.
- Definieer de kenmerken die moeten worden verzameld tijdens de registratie.
- 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
ondersystemd
- Netwerkuitgang: vanaf de server die als host fungeert voor Maverics Identity Orchestrator die uw Microsoft Entra-tenant kan bereiken
Maverics Identity Orchestrator installeren
Haal het nieuwste Maverics RPM-pakket op.
Plaats het pakket op het systeem waarop u Maverics wilt installeren. Als u naar een externe host kopieert, gebruikt u SSH scp.
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.Maverics wordt uitgevoerd als een service onder
systemd
.Voer de volgende opdracht uit om te controleren of de Maverics-service wordt uitgevoerd:
sudo service maverics status
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.
- Het standaardbestand
maverics.yaml
wordt gemaakt in de/etc/maverics
map. - Configureer uw Orchestrator om de toepassing te beveiligen.
- Integreren met Azure AD B2C en store.
- Geheimen ophalen uit Azure Key Vault.
- 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.
- Kopieer vanuit uw app-configuratie de client-id, het clientgeheim en de omleidings-URI naar uw tenant.
- Voer een connectornaam in (bijvoorbeeld
azureADB2C
). - Stel de connector in
type
opazure
. - Noteer de naam van de connector. U gebruikt deze waarde in andere configuratieparameters.
- Stel de
authType
in opoidc
. - Stel voor de
oauthClientID
parameter de client-id in die u hebt gekopieerd. - Stel voor de
oauthClientSecret
parameter het clientgeheim in dat u hebt gekopieerd. - Stel voor de
oauthRedirectURL
parameter de omleidings-URI in die u hebt gekopieerd. - De Azure AD B2C OIDC-connector gebruikt het OIDC-eindpunt om metagegevens te detecteren, waaronder URL's en ondertekeningssleutels. Gebruik
oidcWellKnownURL
voor 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.
- Voer een naam in voor de app-gateway.
- Stel de
location
in. In het voorbeeld wordt de hoofdmap van de app gebruikt/
. - Definieer de beveiligde toepassing in
upstream
. Gebruik de conventie host:port:https://example.com:8080
. - Stel de waarden in voor fout- en niet-geautoriseerde pagina's.
- 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, bijvoorbeeldgiven_name
. - Stel het beleid in. Er worden drie acties gedefinieerd:
allowUnauthenticated
,allowAnyAuthenticated
enallowIfAny
. Elke actie is gekoppeld aan eenresource
. Beleid wordt geëvalueerd voor datresource
.
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.env
in 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
- Navigeer naar de on-premises toepassings-URL:
https://example.com/sonar/dashboard
. - De Orchestrator wordt omgeleid naar de pagina met de gebruikersstroom.
- Selecteer de IdP in de lijst.
- Voer referenties in, inclusief een MFA-token, indien vereist door de IdP.
- U wordt omgeleid naar Azure AD B2C, die de app-aanvraag doorstuurt naar de Orchestrator-omleidings-URI.
- Orchestrator evalueert beleidsregels en berekent headers.
- De aangevraagde toepassing wordt weergegeven.