Självstudie för att konfigurera Azure Active Directory B2C med Strata
I den här självstudien lär du dig att integrera Azure Active Directory B2C (Azure AD B2C) med Strata Maverics Identity Orchestrator, som hjälper dig att skydda lokala program. Den ansluter till identitetssystem, migrerar användare och autentiseringsuppgifter, synkroniserar principer och konfigurationer samt abstraherar autentiserings- och sessionshantering. Använd Strata för att gå från äldre till Azure AD B2C utan att skriva om program.
Lösningen har följande fördelar:
-
Enkel inloggning för kunder (SSO) till lokala hybridappar – Azure AD B2C stöder kund-SSO med Maverics Identity Orchestrator
- Användare loggar in med konton som finns i Azure AD B2C eller identitetsprovider (IdP)
- Maverics bevisar enkel inloggning för appar som tidigare skyddats av äldre identitetssystem som Symantec SiteMinder
- Utöka standard-SSO till appar – Använd Azure AD B2C för att hantera användaråtkomst och aktivera enkel inloggning med Maverics Identity Orchestrator Security Assertion Markup Language (SAML) eller OpenID Connect-anslutningsappar (OIDC)
- Enkel konfiguration – Ansluta Maverics Identity Orchestrator SAML- eller OIDC-anslutningsappar till Azure AD B2C
Förutsättningar
För att komma igång behöver du:
En Azure-prenumeration
- Om du inte har ett konto kan du skaffa ett kostnadsfritt Azure-konto
- En Azure AD B2C-klientorganisation som är länkad till din Azure-prenumeration
- En instans av Azure Key Vault för att lagra hemligheter som används av Maverics Identity Orchestrator. Anslut till Azure AD B2C eller andra attributprovidrar, till exempel en katalog eller databas för Lightweight Directory Access Protocol (LDAP).
- En instans av Maverics Identity Orchestrator som körs på en virtuell Azure-dator (VM) eller en lokal server. Om du vill hämta programvara och dokumentation går du till strata.io Kontakta Strata Identity.
- Ett lokalt program som ska övergå till Azure AD B2C
Scenariobeskrivning
Maverics Identity Orchestrator-integrering innehåller följande komponenter:
-
Azure AD B2C – auktoriseringsservern som verifierar användarautentiseringsuppgifter
- Autentiserade användare får åtkomst till lokala appar med ett lokalt konto i katalogen Azure AD B2C
- Extern leverantör av sociala identiteter eller företagsidentiteter (IdP): En OIDC-provider, Facebook, Google eller GitHub
- Strata Maverics Identity Orchestrator: Tjänsten för användarinloggning som skickar identitet till appar via HTTP-huvuden
Följande arkitekturdiagram visar implementeringen.
- Användaren begär åtkomst till det lokala värdbaserade programmet. Maverics Identity Orchestrator proxyger begäran till programmet.
- Orchestrator kontrollerar användarautentiseringstillståndet. Om det inte finns någon sessionstoken eller om token är ogiltig går användaren till Azure AD B2C för autentisering
- Azure AD B2C skickar autentiseringsbegäran till den konfigurerade sociala IdP:n.
- IdP:t utmanar användaren om autentiseringsuppgifter. Multifaktorautentisering (MFA) kan krävas.
- IdP skickar autentiseringssvaret till Azure AD B2C. Användaren kan skapa ett lokalt konto i katalogen Azure AD B2C.
- Azure AD B2C skickar användarbegäran till slutpunkten som angavs under Orchestrator-appregistreringen i Azure AD B2C-klientorganisationen.
- Orchestrator utvärderar åtkomstprinciper och attributvärden för HTTP-huvuden som vidarebefordras till appen. Orchestrator kan anropa andra attributprovidrar för att hämta information för att ange huvudvärdena. Orchestrator skickar begäran till appen.
- Användaren autentiseras och har åtkomst till appen.
Maverics Identity Orchestrator
Om du vill hämta programvara och dokumentation går du till strata.io Kontakta Strata Identity. Fastställa krav för Orchestrator. Installera och konfigurera.
Konfigurera din Azure AD B2C-klientorganisation
Under följande instruktioner dokumenterar du:
- Klientorganisationsnamn och identifierare
- Klient-ID
- Klienthemlighet
- Konfigurerade anspråk
- Omdirigerings-URI
- Registrera ett webbprogram i Azure Active Directory B2C i Azure AD B2C-klientorganisation.
- Ge Microsoft MS Graph API behörigheter till dina program. Använd behörigheter:
offline_access
,openid
. - Lägg till en omdirigerings-URI som matchar
oauthRedirectURL
parametern för Orchestrator Azure AD B2C-anslutningskonfiguration,https://example.com/oidc-endpoint
till exempel . - Skapa användarflöden och anpassade principer i Azure Active Directory B2C.
- Lägg till en identitetsprovider i din Azure Active Directory B2C-klientorganisation. Logga in din användare med ett lokalt konto, ett socialt konto eller ett företag.
- Definiera de attribut som ska samlas in under registreringen.
- Ange attribut som ska returneras till programmet med Orchestrator-instansen.
Anteckning
Orchestrator använder attribut från anspråk som returneras av Azure AD B2C och kan hämta attribut från anslutna identitetssystem som LDAP-kataloger och databaser. Dessa attribut finns i HTTP-huvuden och skickas till det överordnade lokala programmet.
Konfigurera Maverics Identity Orchestrator
Använd anvisningarna i följande avsnitt för att konfigurera en Orchestrator-instans.
Serverkrav för Maverics Identity Orchestrator
Du kan köra Orchestrator-instansen på valfri server, antingen lokalt eller i en offentlig molninfrastruktur efter leverantör som Azure, AWS eller GCP.
- Operativsystem: REHL 7,7 eller senare, CentOS 7+
- Disk: 10 GB (liten)
- Minne: 16 GB
- Portar: 22 (SSH/SCP), 443, 80
- Rotåtkomst: För installation/administrativa uppgifter
-
Maverics Identity Orchestrator: Körs som användare
maverics
undersystemd
- Utgående nätverk: Från servern som är värd för Maverics Identity Orchestrator som kan nå din Microsoft Entra klientorganisation
Installera Maverics Identity Orchestrator
Hämta det senaste Maverics RPM-paketet.
Placera paketet på det system som du vill installera Maverics. Om du kopierar till en fjärrvärd använder du SSH scp.
Kör följande kommando. Använd filnamnet för att ersätta
maverics.rpm
.sudo rpm -Uvf maverics.rpm
Som standard finns Maverics i
/usr/local/bin
katalogen.Maverics körs som en tjänst under
systemd
.Kontrollera att Maverics-tjänsten körs genom att köra följande kommando:
sudo service maverics status
Följande meddelande (eller liknande) visas.
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
Anteckning
Om Maverics inte kan starta kör du följande kommando:
journalctl --unit=maverics.service --reverse
Den senaste loggposten visas i utdata.
-
maverics.yaml
Standardfilen skapas i/etc/maverics
katalogen. - Konfigurera Orchestrator för att skydda programmet.
- Integrera med Azure AD B2C och lagra.
- Hämta hemligheter från Azure Key Vault.
- Definiera platsen där Orchestrator läser dess konfiguration.
Ange konfiguration med hjälp av miljövariabler
Konfigurera Orchestrator-instanserna med miljövariabler.
MAVERICS_CONFIG
Den här miljövariabeln informerar Orchestrator-instansen om vilka YAML-konfigurationsfiler som ska användas och var du hittar dem under start eller omstart. Ange miljövariabeln i /etc/maverics/maverics.env
.
Skapa Orchestrator TLS-konfigurationen
Fältet tls
i maverics.yaml
deklarerar de säkerhetskonfigurationer på transportnivå som orchestrator-instansen använder. Anslutningsappar använder TLS-objekt och Orchestrator-servern.
Nyckeln maverics
är reserverad för Orchestrator-servern. Använd andra nycklar för att mata in ett TLS-objekt i en anslutningsapp.
tls:
maverics:
certFile: /etc/maverics/maverics.cert
keyFile: /etc/maverics/maverics.key
Konfigurera Azure AD B2C Connector
Orchestrators använder anslutningsappar för att integrera med autentiserings- och attributprovidrar. Orchestrators App Gateway använder Azure AD B2C-anslutningsappen som autentiserings- och attributprovider. Azure AD B2C använder det sociala IdP:t för autentisering och tillhandahåller sedan attribut till Orchestrator och skickar dem i anspråk som anges i HTTP-huvuden.
Anslutningskonfigurationen motsvarar appen som är registrerad i Azure AD B2C-klientorganisation.
- Kopiera klient-ID, klienthemlighet och omdirigerings-URI till din klientorganisation från appkonfigurationen.
- Ange ett anslutningsnamn (exempel är
azureADB2C
). - Ange anslutningsappen
type
tillazure
. - Anteckna namnet på anslutningsappen. Du använder det här värdet i andra konfigurationsparametrar.
-
authType
Ange tilloidc
. - För parametern
oauthClientID
anger du det klient-ID som du kopierade. - För parametern
oauthClientSecret
anger du den klienthemlighet som du kopierade. - För parametern
oauthRedirectURL
anger du den omdirigerings-URI som du kopierade. - Azure AD B2C OIDC Connector använder OIDC-slutpunkten för att identifiera metadata, inklusive URL:er och signeringsnycklar. För klientslutpunkten använder du
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
Definiera Azure AD B2C som autentiseringsprovider
En autentiseringsprovider avgör autentisering för användare som inte presenterar en giltig session under en appresursbegäran. Azure AD B2C-klientkonfigurationen avgör hur användare uppmanas att ange autentiseringsuppgifter, medan andra autentiseringsprinciper tillämpas. Ett exempel är att kräva en andra faktor för att slutföra autentiseringen och bestämma vad som ska returneras till Orchestrator App Gateway efter autentisering.
Värdet för authProvider
måste matcha anslutningsappens name
värde.
authProvider: azureADB2C
Skydda lokala appar med en Orchestrator App Gateway
Orchestrator App Gateway-konfigurationen förklarar hur Azure AD B2C skyddar ditt program och hur användarna får åtkomst till appen.
- Ange ett appgatewaynamn.
-
location
Ange . I exemplet används approten/
. - Definiera det skyddade programmet i
upstream
. Använd host:port-konventionen:https://example.com:8080
. - Ange värden för fel och obehöriga sidor.
- Definiera HTTP-huvudnamn och attributvärden för programmet för att upprätta autentisering och kontroll. Rubriknamn motsvarar vanligtvis appkonfiguration. Attributvärden namnges av anslutningsappen. I exemplet är värden som returneras från Azure AD B2C prefixet med anslutningsappens namn
azureADB2C
. Suffixet är attributnamnet med det nödvändiga värdet, till exempelgiven_name
. - Ange principerna. Tre åtgärder definieras:
allowUnauthenticated
,allowAnyAuthenticated
ochallowIfAny
. Varje åtgärd är associerad med enresource
. Principen utvärderas för detresource
.
Anteckning
headers
och policies
använda JavaScript- eller GoLang-tjänsttillägg för att implementera godtycklig logik.
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 som leverantör av hemligheter
Skydda hemligheterna som Orchestrator använder för att ansluta till Azure AD B2C och andra identitetssystem. Maverics läser in hemligheter i oformaterad text från maverics.yaml
, men i den här självstudien använder du Azure Key Vault som leverantör av hemligheter.
Följ anvisningarna i Snabbstart: Ange och hämta en hemlighet från Azure Key Vault med hjälp av Azure Portal. Lägg till dina hemligheter i valvet och anteckna SECRET NAME
för varje hemlighet. Till exempel AzureADB2CClientSecret
.
Om du vill deklarera ett värde som en hemlighet i en maverics.yaml
konfigurationsfil omsluter du hemligheten med vinkelparenteser:
connectors:
- name: AzureADB2C
type: azure
oauthClientID: <AzureADB2CClientID>
oauthClientSecret: <AzureADB2CClientSecret>
Värdet inom vinkelparenteserna måste motsvara den SECRET NAME
som ges till en hemlighet i din Azure-Key Vault.
Om du vill läsa in hemligheter från Azure Key Vault anger du miljövariabeln MAVERICS_SECRET_PROVIDER
i filen /etc/maverics/maverics.env
med autentiseringsuppgifterna i filen azure-credentials.json. Använd följande mönster:
MAVERICS_SECRET_PROVIDER='azurekeyvault://<KEYVAULT NAME>.vault.azure.net?clientID=<APPID>&clientSecret=<PASSWORD>&tenantID=<TENANT>'
Slutför konfigurationen
Följande information illustrerar hur Orchestrator-konfiguration visas.
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
Testa flödet
- Gå till den lokala program-URL:en,
https://example.com/sonar/dashboard
. - Orchestrator omdirigeras till användarflödessidan.
- Välj IdP i listan.
- Ange autentiseringsuppgifter, inklusive en MFA-token, om det krävs av IdP.
- Du omdirigeras till Azure AD B2C, som vidarebefordrar appbegäran till Orchestrator-omdirigerings-URI:n.
- Orchestrator utvärderar principer och beräknar rubriker.
- Det begärda programmet visas.