Tutoriel pour configurer Azure Active Directory B2C avec Strata
Dans ce tutoriel, apprenez à intégrer Azure Active Directory B2C (Azure AD B2C) à Strata Maverics Identity Orchestrator, qui permet de protéger les applications locales. Elle se connecte aux systèmes d’identité, migre les utilisateurs et les informations d’identification, synchronise les stratégies et les configurations, et élimine la gestion des authentifications et des sessions. Utilisez Strata pour passer de la configuration existante à Azure AD B2C sans réécrire les applications.
La solution offre les avantages suivants :
-
Authentification unique (SSO) du client auprès d’applications hybrides locales : Azure AD B2C prend en charge l’authentification unique du client avec Maverics Identity Orchestrator
- Les utilisateurs se connectent avec les comptes hébergés dans Azure AD B2C ou le fournisseur d’identité (IdP)
- Maverics offre l’authentification unique aux applications qui étaient sécurisées par des systèmes d’identité hérités tels que Symantec SiteMinder
- Étendre l’authentification unique standard aux applications : Utiliser Azure AD B2C pour gérer les accès utilisateur et activer l’authentification unique avec les connecteurs SAML (Security Assertion Markup Language) ou OIDC (OpenID Connect) Maverics Identity Orchestrator
- Configuration facile : Connecter les connecteurs SAML ou OIDC Maverics Identity Orchestrator à Azure AD B2C
Prérequis
Avant de commencer, vérifiez que vous disposez des éléments suivants :
Un abonnement Azure
- Si vous n’en avez pas déjà un, vous pouvez obtenir un compte Azure gratuit.
- Un locataire Azure AD B2C lié à votre abonnement Azure
- Une instance d’Azure Key Vault pour stocker les secrets utilisés par Maverics Identity Orchestrator. Connectez-vous à Azure AD B2C ou à d’autres fournisseurs d’attributs tels qu’une base de données ou un annuaire LDAP (Lightweight Directory Access Protocol).
- Une instance de Maverics Identity Orchestrator exécutée sur une machine virtuelle Azure ou sur un serveur local. Pour obtenir le logiciel et la documentation, rendez-vous sur strata.io pour Contacter Strata Identity.
- Une application locale pour passer à Azure AD B2C
Description du scénario
L’intégration de Maverics Identity Orchestrator comprend les composants suivants :
-
Azure AD B2C : Serveur d’autorisation qui vérifie les informations d’identification utilisateur
- Les utilisateurs authentifiés accèdent aux applications locales avec un compte local dans l’annuaire Azure AD B2C
- Fournisseur d’identité (IdP) sociale ou d’entreprise externe : Fournisseur OIDC, Facebook, Google ou GitHub
- Maverics Identity Orchestrator de Strata : Service d’authentification des utilisateurs qui transmet les identités aux applications via des en-têtes HTTP
Le diagramme d’architecture suivant illustre l’implémentation.
- L’utilisateur demande l’accès à l’application hébergée en local. Maverics Identity Orchestrator proxyse la demande vers l’application.
- Orchestrator vérifie l’état d’authentification de l’utilisateur. À défaut de jeton de session ou en cas de jeton non valide, l’utilisateur accède à Azure AD B2C pour l’authentification.
- Azure AD B2C envoie la demande d’authentification au fournisseur d’identité sociale configuré.
- L’IdP demande à l’utilisateur ses informations d’identification. Une authentification multifacteur (MFA) peut être obligatoire.
- L’IdP envoie la réponse d’authentification à Azure AD B2C. L’utilisateur peut créer un compte local dans l’annuaire Azure AD B2C.
- Azure AD B2C envoie la demande de l’utilisateur au point de terminaison spécifié lors de l’inscription de l’application Orchestrator dans le locataire Azure AD B2C.
- Orchestrator évalue les stratégies d’accès et les valeurs d’attribut pour les en-têtes HTTP transférés à l’application. Orchestrator peut appeler d’autres fournisseurs d’attributs pour récupérer des informations afin de définir les valeurs d’en-tête. Orchestrator envoie la demande à l’application.
- L’utilisateur est authentifié et a accès à l’application.
Maverics Identity Orchestrator
Pour obtenir le logiciel et la documentation, rendez-vous sur strata.io pour Contacter Strata Identity. Déterminez les prérequis d’Orchestrator. Procédez à l’installation et à la configuration.
Configurer votre locataire Azure AD B2C
Au cours des instructions suivantes, documentez :
- Nom et identificateur du locataire
- ID client
- Clé secrète client
- Revendications configurées
- URI de redirection
- Inscrivez une application web dans Azure Active Directory B2C dans le locataire Azure AD B2C.
- Accordez des autorisations d’API MS Graph à vos applications. Utilisez les autorisations :
offline_access
,openid
. - Ajoutez un URI de redirection qui correspond au paramètre
oauthRedirectURL
de la configuration du connecteur Orchestrator Azure AD B2C, par exemplehttps://example.com/oidc-endpoint
. - Créez des flux utilisateur et des stratégies personnalisées dans Azure Active Directory B2C.
- Ajoutez un fournisseur d’identité à votre locataire Azure Active Directory B2C. Connectez votre utilisateur avec un compte local, de réseau social ou d’entreprise.
- définissez les attributs à collecter lors de l’inscription.
- Spécifiez les attributs à retourner à l’application avec votre instance Orchestrator.
Notes
Orchestrator consomme les attributs des revendications retournées par Azure AD B2C et peut récupérer les attributs des systèmes d’identité connectés comme les bases de données et les annuaires LDAP. Ces attributs sont dans des en-têtes HTTP et envoyés à l’application locale en amont.
Configurer Maverics Identity Orchestrator
Utilisez les instructions des sections suivantes pour configurer une instance Orchestrator.
Configuration requise pour le serveur Maverics Identity Orchestrator
Vous pouvez exécuter votre instance Orchestrator sur n’importe quel serveur, qu’il soit local ou dans une infrastructure de cloud public d’un fournisseur tel que Azure, AWS ou GCP.
- Système d’exploitation : REHL 7.7 ou ultérieur, CentOS 7+
- Disque : 10 Go (petit)
- Mémoire : 16 Go
- Ports : 22 (SSH/SCP), 443, 80
- Accès racine : pour les tâches d’installation/d’administration
-
Maverics Identity Orchestrator : s’exécute en tant qu’utilisateur
maverics
soussystemd
- Sortie réseau : à partir du serveur hébergeant Maverics Identity Orchestrator qui peut atteindre votre locataire Microsoft Entra
Installer Maverics Identity Orchestrator
Obtenez le package RPM Maverics le plus récent.
Placez le package sur le système où vous souhaitez installer Maverics. Si vous effectuez une copie sur un hôte distant, utilisez SSH scp.
Exécutez la commande ci-dessous. Utilisez votre nom de fichier pour remplacer
maverics.rpm
.sudo rpm -Uvf maverics.rpm
Par défaut, Maverics est dans le répertoire
/usr/local/bin
.Maverics s’exécute en tant que service sous
systemd
.Pour vérifier que le service Maverics est en cours d’exécution, exécutez la commande suivante :
sudo service maverics status
Le message suivant (ou similaire) s’affiche.
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
Notes
Si Maverics n’arrive pas à démarrer, exécutez la commande suivante :
journalctl --unit=maverics.service --reverse
L’entrée de journal la plus récente apparaît dans la sortie.
- Le fichier par défaut
maverics.yaml
est créé dans le répertoire/etc/maverics
. - Configurez votre Orchestrator pour protéger l’application.
- Procédez à l’intégration à Azure AD B2C, puis au stockage.
- Récupérez les secrets dans Azure Key Vault.
- Définissez l’emplacement à partir duquel Orchestrator lit sa configuration.
Configuration de l’approvisionnement à l’aide de variables d’environnement
Configurez vos instances Orchestrator avec des variables d’environnement.
MAVERICS_CONFIG
Cette variable d’environnement indique à l’instance Orchestrator les fichiers de configuration YAML à utiliser et où les trouver au démarrage ou au redémarrage. Définissez la variable d’environnement dans /etc/maverics/maverics.env
.
Créer la configuration TLS d’Orchestrator
Le champ tls
dans maverics.yaml
déclare les configurations de sécurité de la couche de transport que votre instance Orchestrator utilise. Les connecteurs utilisent des objets TLS et le serveur Orchestrator.
La clé maverics
est réservée au serveur Orchestrator. Utilisez d’autres clés pour injecter un objet TLS dans un connecteur.
tls:
maverics:
certFile: /etc/maverics/maverics.cert
keyFile: /etc/maverics/maverics.key
Configurer le connecteur Azure AD B2C
Les orchestrateurs utilisent des connecteurs pour s’intégrer avec les fournisseurs d’authentification et d’attributs. La passerelle applicative d’Orchestrator utilise le connecteur Azure AD B2C comme fournisseur d’authentification et d’attribut. Azure AD B2C utilise l’IdP social pour l’authentification, puis fournit des attributs à Orchestrator, en les passant dans des revendications définies dans des en-têtes HTTP.
La configuration du connecteur correspond à l’application inscrite dans le locataire Azure AD B2C.
- À partir de la configuration de votre application, copiez l’ID client, le secret client et l’URI de redirection dans votre locataire.
- Entrez un nom de connecteur (par exemple,
azureADB2C
). - Définissez le connecteur
type
surazure
. - Notez le nom du connecteur. Vous allez utiliser cette valeur dans d’autres paramètres de configuration.
- Définissez
authType
suroidc
. - Pour le paramètre
oauthClientID
, définissez l’ID client que vous avez copié. - Pour le paramètre
oauthClientSecret
, définissez le secret client que vous avez copié. - Pour le paramètre
oauthRedirectURL
, définissez l’URI de redirection que vous avez copié. - Le connecteur OIDC Azure AD B2C utilise le point de terminaison OIDC pour découvrir les métadonnées, y compris les URL et les clés de signature. Pour le point de terminaison du locataire, utilisez
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
Définir Azure AD B2C comme fournisseur d’authentification
Un fournisseur d’authentification détermine l’authentification pour les utilisateurs qui ne présentent pas de session valide lors d’une demande de ressource d’application. La configuration du locataire Azure AD B2C détermine la façon dont les utilisateurs sont appelés à fournir des informations d’identification, tandis qu’elle applique d’autres stratégies d’authentification. Par exemple, exiger un deuxième facteur pour terminer l’authentification et décider de ce qui doit être retourné à la passerelle applicative d’Orchestrator après l’authentification.
La valeur de authProvider
doit correspondre à la valeur name
de votre connecteur.
authProvider: azureADB2C
Protéger les applications locales avec une passerelle applicative d’Orchestrator
La configuration de la passerelle applicative d’Orchestrator déclare comment Azure AD B2C protège votre application et comment les utilisateurs accèdent à l’application.
- Entrez un nom de passerelle applicative.
- Définissez
location
. L’exemple utilise le/
racine de l’application. - Définissez l’application protégée dans
upstream
. Utilisez la convention hôte:port :https://example.com:8080
. - Définissez les valeurs des pages d’erreur et de non-autorisation.
- Définissez les noms d’en-tête HTTP et les valeurs d’attribut pour l’application afin d’établir authentification et contrôle. Les noms d’en-tête correspondent généralement à la configuration de l’application. Les valeurs d’attribut sont associées à des espaces de noms par le connecteur. Dans l’exemple, les valeurs retournées à partir d’Azure AD B2C sont précédées du nom du connecteur
azureADB2C
. Le suffixe est le nom d’attribut avec la valeur requise, par exemplegiven_name
. - Définissez les stratégies. Trois actions sont définies :
allowUnauthenticated
,allowAnyAuthenticated
etallowIfAny
. Chaque action est associée à unresource
. La stratégie est évaluée pour ceresource
.
Notes
headers
et policies
utilisent des extensions de service JavaScript ou GoLang pour implémenter une logique arbitraire.
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 en tant que fournisseur de secrets
Sécurisez les secrets que votre instance Orchestrator utilise pour se connecter à Azure AD B2C et aux autres systèmes d’identité. Maverics charge les secrets en texte brut en dehors de maverics.yaml
mais, dans ce tutoriel, utilisez Azure Key Vault comme fournisseur de secrets.
Suivez les instructions dans Démarrage rapide : Définir et récupérer un secret depuis Azure Key Vault à l’aide du portail Azure. Ajoutez vos secrets au coffre et notez le SECRET NAME
pour chaque secret. Par exemple, AzureADB2CClientSecret
.
Pour déclarer une valeur en tant que secret dans un fichier de configuration maverics.yaml
, placez le secret entre crochets angulaires :
connectors:
- name: AzureADB2C
type: azure
oauthClientID: <AzureADB2CClientID>
oauthClientSecret: <AzureADB2CClientSecret>
La valeur entre crochets doit correspondre au SECRET NAME
donné à un secret dans votre instance Azure Key Vault.
Pour charger des secrets à partir d’Azure Key Vault, définissez la variable d’environnement MAVERICS_SECRET_PROVIDER
dans le fichier /etc/maverics/maverics.env
, avec les informations d’identification du fichier azure-credentials.json. Utilisez le modèle suivant :
MAVERICS_SECRET_PROVIDER='azurekeyvault://<KEYVAULT NAME>.vault.azure.net?clientID=<APPID>&clientSecret=<PASSWORD>&tenantID=<TENANT>'
Effectuer la configuration
Les informations suivantes illustrent la façon dont la configuration d’Orchestrator apparaît.
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
Tester le flux
- Accédez à l’URL de l’application locale,
https://example.com/sonar/dashboard
. - Orchestrator redirige vers la page du flux utilisateur.
- Sélectionnez la base de données dans le fournisseur d’identité.
- Entrez les informations d’identification, y compris un jeton MFA, si l’IdP le demande.
- Vous êtes redirigé vers Azure AD B2C, qui transfère la demande d’application à l’URI de redirection d’Orchestrator.
- Orchestrator évalue les stratégies et calcule les en-têtes.
- L’application demandée s’affiche.