Extension d’Azure AD B2C pour la protection des applications sur site
Dans ce guide, vous apprendrez à intégrer Azure Active Directory B2C (Azure AD B2C) avec l’Orchestrateur d’Identité Maverics de Strata™.
Introduction
Strata complète Azure AD B2C pour protéger les applications sur site en appliquant des stratégies d’accès cohérentes, en maintenant les identités synchronisées et en simplifiant la transition des applications des systèmes d’accès existants vers l’authentification et le contrôle d’accès basés sur les normes fournis par Azure AD B2C. L’orchestrateur d’identité Maverics se connecte à n’importe quel système d’accès, assure la migration des utilisateurs et des informations d’identification en toute transparence, synchronise les politiques et les configurations et fait abstraction de l’authentification et de la gestion des sessions. L’approche unique de Strata en matière de gestion des identités distribuées permet aux entreprises de passer rapidement de leur système existant à Azure AD B2C sans avoir à récrire les applications.
Connexion unique des clients aux applications hybrides sur site - Azure AD B2C prend en charge l’authentification unique et complète des clients avec l’orchestrateur d’identité Maverics dès sa mise en service. Les utilisateurs se connectent en utilisant leurs comptes hébergés dans Azure AD B2C ou leur fournisseur d’identité, et Maverics étend le processus d’authentification unique (SSO) aux applications qui ont toujours été sécurisées par des systèmes d’identité traditionnels tels que CA SiteMinder.
Extension de l’authentification unique normalisée aux applications sans réécriture - Utilisez Azure AD B2C pour gérer l’accès des utilisateurs et activer l’authentification unique avec les connecteurs SAML ou OIDC de l’orchestrateur d’identités Maverics.
Configuration simplifiée - Azure AD B2C propose une interface utilisateur claire, expliquant étape par étape comment connecter les connecteurs SAML ou OIDC de l’orchestrateur d’identité Maverics à Azure AD B2C.
Prérequis
Pour commencer, vous aurez besoin des éléments suivants :
Un abonnement Azure AD. Si vous n’avez pas d’abonnement, vous pouvez créer un compte gratuitement.
Un locataire Azure AD B2C lié à votre abonnement Azure.
Une instance Azure Key Vault permettant de stocker les secrets utilisés par l’orchestrateur d’identité Maverics pour se connecter à Azure AD B2C ou à d’autres fournisseurs d’attributs tels qu’un répertoire ou une base de données LDAP.
Une instance de l’orchestrateur d’identité Maverics installée et exécutée sur une machine virtuelle sur Azure ou sur le serveur sur site de votre choix. Pour obtenir des informations sur la manière d’obtenir le logiciel et l’accès aux guides d’installation et de configuration, veuillez écrire à l’adresse suivante : [email protected]
Une application sur site que vous allez faire passer d’un système d’accès existant à Azure AD B2C.
Description du cas de figure
L’intégration de Maverics de Strata englobe les éléments suivants :
Azure AD B2C : le serveur d’autorisation chargé de vérifier les informations d’identification de l’utilisateur. Les utilisateurs authentifiés peuvent accéder aux applications sur site à l’aide d’un compte local stocké dans le répertoire Azure AD B2C.
Un fournisseur d’identité externe ou d’entreprise : il peut s’agir de n’importe quel fournisseur OpenID Connect, de Facebook, de Google ou de Github. Consultez la documentation pour plus d’informations sur l’utilisation de fournisseurs d’identité externes avec Azure AD B2C.
L’orchestrateur d’identité Maverics de Strata : le service qui orchestre l’ouverture de session des utilisateurs et transmet de manière transparente l’identité aux applications par le biais d’en-têtes HTTP.
Étapes
L’utilisateur émet une requête d’accès à l’application hébergée sur site. L’orchestrateur d’identité Maverics transmet la requête de l’utilisateur à l’application par proxy.
L’orchestrateur vérifie le statut d’authentification de l’utilisateur. S’il ne reçoit pas de jeton de session, ou si le jeton de session fourni est invalide, l’orchestrateur envoie l’utilisateur vers Azure AD B2C pour l’authentification.
Azure AD B2C envoie la demande d’authentification au fournisseur d’identité configuré.
Le fournisseur d’identité demande des informations d’identification à l’utilisateur. En fonction du fournisseur d’identité, l’utilisateur peut être tenu de procéder à une authentification multifacteur.
Le fournisseur d’identité renvoie la réponse d’authentification à Azure AD B2C. En option, l’utilisateur peut créer un compte local dans le répertoire Azure AD B2C au cours de cette étape.
Azure AD B2C envoie la demande de l’utilisateur au terminal spécifié lors de l’enregistrement de l’application de l’orchestrateur dans le locataire Azure AD B2C.
L’orchestrateur évalue les politiques d’accès et calcule les valeurs d’attributs à inclure dans les en-têtes HTTP transmis à l’application. Au cours de cette étape, l’orchestrateur peut faire appel à des fournisseurs d’attributs supplémentaires pour récupérer les informations nécessaires à la définition correcte des valeurs d’en-tête.
L’orchestrateur définit les valeurs des en-têtes et envoie la demande à l’application.
L’utilisateur est maintenant authentifié et peut accéder à l’application.
Obtenir l’orchestrateur d’identités Maverics
Pour obtenir le logiciel qui vous permettra d’intégrer votre application existante sur site à Azure AD B2C, contactez Strata à l’adresse [email protected].
Après avoir obtenu le logiciel, suivez les étapes ci-dessous pour déterminer les conditions préalables spécifiques à l’orchestrateur et effectuer les étapes d’installation et de configuration requises.
Configurez votre locataire Azure AD B2C
Enregistrez votre demande
Tout d’abord, vous devez enregistrer l’orchestrateur en tant qu’application dans votre locataire Azure AD B2C. Prenez note du nom et de l’identifiant du locataire, de l’identifiant du client, du secret du client, des réclamations configurées et de l’URI de redirection, car vous en aurez besoin ultérieurement lorsque vous configurerez votre instance d’orchestrateur.
Accordez les autorisations Graph API à votre application. Au minimum, votre application aura besoin des autorisations suivantes offline_access
, openid
.
Ajoutez un URI de redirection pour votre application. Cet URI doit correspondre au paramètre oauthRedirectURL
de la configuration du connecteur Azure AD B2C de votre orchestrateur. Il devrait ressembler à https://example.com/oidc-endpoint
.
Créez un flux utilisateur
Vous devrez créer un flux d’inscription et de connexion.
Ajoutez un fournisseur d’identité
Choisissez de connecter votre utilisateur à l’aide d’un compte local ou d’un fournisseur d’identité externe ou d’entreprise.
Définissez les attributs de l’utilisateur
Définissez les attributs à collecter lors de l’inscription.
Spécifiez les réclamations de l’application
Spécifiez les attributs à renvoyer à l’application via votre instance d’orchestrateur. L’orchestrateur utilise les attributs des demandes renvoyées par Azure AD B2C et peut récupérer des attributs supplémentaires auprès d’autres systèmes d’accès connectés, tels que des annuaires LDAP et des bases de données. Ces attributs sont définis dans les en-têtes HTTP et envoyés à l’application sur site en amont.
Configurez l’orchestrateur d’identités Maverics
Dans les sections suivantes, vous suivrez les étapes nécessaires à la configuration de votre instance d’orchestrateur. Pour obtenir de l’aide et de la documentation supplémentaires, veuillez contacter [email protected].
Exigences relatives au serveur de l’orchestrateur d’identités Maverics
Vous pouvez exécuter votre instance d’orchestrateur sur n’importe quel serveur, qu’il soit sur site ou hébergé par un fournisseur d’infrastructure en nuage public tel qu’Azure, AWS ou GCP.
- SG : RHEL 7.7 ou supérieur, CentOS 7+
- Disque dur : 10 Go (petit)
- Mémoire : 16 Go
- Ports : 22 (SSH/SCP), 443, 80
- Accès racine pour les tâches d’installation et d’administration.
- L’orchestrateur d’identité Maverics s’exécute en tant qu’utilisateur
maverics
soussystemd
- Sortie du réseau à partir du serveur hébergeant l’orchestrateur d’identité Maverics, avec la possibilité d’atteindre votre locataire Azure AD.
Installez l’orchestrateur d’identités Maverics
Obtenez le dernier paquet Maverics RPM. Installez le paquet sur le système dans lequel vous souhaitez installer Maverics. Si vous copiez le fichier sur un hôte distant, l’outil SCP se révèle très utile.
Pour installer le paquet Maverics, exécutez la commande suivante en remplaçant le nom de fichier par
maverics.rpm
.sudo rpm -Uvf maverics.rpm
Par défaut, Maverics est installé dans le répertoire
/usr/local/bin
.Après l’installation de Maverics, il sera exécuter 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
Si l’installation de l’orchestrateur a réussi, vous devriez voir apparaître un message similaire à celui-ci :
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
Si le service Maverics ne démarre pas, exécutez la commande suivante pour identifier le problème :
journalctl --unit=maverics.service --reverse
L’entrée de journal la plus récente apparaîtra au début de la sortie.
Après l’installation de Maverics, le fichier maverics.yaml
par défaut est créé dans le répertoire /etc/maverics
.
Configuration de l’orchestrateur d’identités Maverics
Vous devez ensuite configurer votre orchestrateur pour qu’il protège l’application, qu’il s’intègre à Azure AD B2C, qu’il stocke et récupère les secrets d’Azure Key Vault et définir un emplacement dans lequel l’orchestrateur doit lire sa configuration.
Configuration à l’aide de variables d’environnement
Nous vous recommandons de configurer vos instances d’orchestrateur à l’aide de variables d’environnement.
MAVERICS_CONFIG
Cette variable d’environnement indique à l’instance de l’orchestrateur quels fichiers de configuration YAML utiliser et où les trouver lors du démarrage ou des redémarrages. Définissez la variable d’environnement dans /etc/maverics/maverics.env
.
Création de la configuration TLS de l’orchestrateur
Le champ tls
de votre fichier maverics.yaml
détermine les configurations de sécurité de la couche de transport que votre instance d’orchestrateur utilisera. Les connecteurs peuvent utiliser des objets TLS ainsi que le serveur de l’orchestrateur.
La clé maverics
est réservée au serveur de l’orchestrateur. Toutes les autres clés sont disponibles et peuvent être utilisées pour injecter un objet TLS dans un connecteur donné.
tls:
maverics:
certFile: /etc/maverics/maverics.cert
keyFile: /etc/maverics/maverics.key
Configuration du connecteur Azure AD B2C
Les orchestrateurs utilisent des connecteurs pour s’intégrer aux fournisseurs d’authentification et d’attributs. Dans ce cas de figure, la passerelle d’applications utilise le connecteur Azure AD B2C en tant que fournisseur d’authentification et d’attributs. Azure AD B2C utilise un fournisseur d’identité externe pour l’authentification. Il agit ensuite comme un fournisseur d’attributs auprès de l’orchestrateur, en lui transmettant des attributs dans des réclamations définies dans des en-têtes HTTP.
La configuration de ce connecteur correspond à l’application enregistrée dans le locataire B2C.
Copiez l’ID client, le secret et l’URI de redirection de la configuration de votre application dans votre locataire.
Donnez un nom à votre connecteur, ici
azureB2C
, et définissez letype
de connecteur comme étantazure
. Notez le nom du connecteur car cette valeur est utilisée dans d’autres paramètres de configuration ci-dessous.Pour cette intégration,
authType
doit être défini suroidc
.Définissez l’identifiant du client que vous avez copié à l’étape 1 comme valeur du paramètre
oauthClientID
.Définissez le secret client que vous avez copié à l’étape 1 comme valeur du paramètre
oauthClientSecret
.Définissez l’URI de redirection que vous avez copié à l’étape 1 comme valeur du paramètre
oauthRedirectURL
.Le connecteur Azure AD B2C OIDC utilise le terminal OIDC connu pour rechercher des métadonnées, notamment des URL et des clés de signature. Définissez la valeur
oidcWellKnownURL
sur le terminal de votre locataire.
connectors:
- name: azureB2C
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: <azureB2CClientID>
oauthClientSecret: <azureB2CClientSecret>
authType: oidc
Protection de votre application sur site grâce à une passerelle d’applications (App Gateway)
La configuration de la passerelle d’applications de l’orchestrateur détermine la manière dont Azure AD B2C doit protéger votre application et la manière dont les utilisateurs peuvent y accéder.
Création d’un nom pour votre passerelle d’applications. Vous pouvez utiliser un nom convivial ou un nom d’hôte complet comme identifiant de votre application.
Définissez le chemin
basePath
. L’exemple présenté ici utilise la racine de l’application/
mais il peut s’agir de n’importe quel chemin d’accès à l’URL de votre application.Définissez l’application protégée en
amont
en utilisant l’accord host:port :https://example.com:8080
.Définissez les valeurs d’erreur et de pages non autorisées.
Le fournisseur d’identité détermine la manière dont l’authentification d’un utilisateur sera effectuée. Un fournisseur d’identité détermine comment procéder à l’authentification d’un utilisateur qui n’a pas présenté de session valide dans le cadre de la requête de ressource d’application. La configuration de votre locataire Azure AD B2C détermine comment demander des informations d’identification à un utilisateur, appliquer des stratégies d’authentification supplémentaires (par exemple, exiger un facteur supplémentaire pour compléter le processus d’authentification) et décider quelles réclamations doivent être renvoyées à la passerelle d’applications une fois l’authentification réussie. La valeur du
fournisseur d’identité
doit correspondre à la valeur dunom
de votre connecteur.Définissez les noms des en-têtes HTTP et les valeurs des attributs qui doivent être fournis à l’application pour établir l’authentification et contrôler l’accès à celle-ci. Les noms des en-têtes peuvent être librement choisis et correspondent généralement à la configuration de l’application. Les valeurs d’attributs sont rattachées à l’espace de noms du connecteur qui les fournit. Dans l’exemple ci-dessous, les valeurs renvoyées par Azure AD B2C sont préfixées par le nom du connecteur
azureB2C
, le suffixe étant le nom de l’attribut qui contient la valeur requise, par exemplegiven_name
.Définissez les politiques à évaluer et à appliquer dans
policies
. Les politiques déterminent si une requête donnée sera admise ou non. Les politiques sont associées à unemplacement
dans lequel elles sont appliquées.
Remarque : les
en-têtes
et lespolitiques
utilisent l’extension de servicescreateHeader
pour mettre en œuvre des logiques diverses qui améliorent considérablement les capacités par défaut.
appgateways:
- name: Sonar
basePath: /
upstream: https://example.com:8080
errorPage: https://example.com:8080/sonar/error
unauthorizedPage: https://<orchestrator-host>/sonar/accessdenied
idps:
- name: azureB2C
headers:
SM_USER: azureB2C.sub
firstname: azureB2C.given_name
lastname: azureB2C.family_name
policies:
- location: /
authentication:
idps:
- azureB2C
Utilisez Azure Key Vault en tant que fournisseur de secrets
Il est extrêmement important de sécuriser les secrets que votre orchestrateur utilise pour se connecter à Azure AD B2C et à tout autre système d’accès.
Maverics chargera par défaut les secrets en texte clair dans maverics.yaml
, mais dans le cadre de ce tutoriel, nous utiliserons Azure Key Vault en tant que fournisseur de secrets.
Suivez les instructions pour créer un nouveau coffre-fort que votre instance d’orchestrateur utilisera comme fournisseur de secrets. Ajoutez vos secrets à votre coffre-fort et notez le nom SECRET NAME
attribué à chaque secret. Par exemple, AzureB2CClientSecret
.
Pour déclarer une valeur comme étant un secret dans un fichier de configuration maverics.yaml
, il suffit de la placer entre des crochets :
connectors:
- name: AzureB2C
type: azure
oauthClientID: <AzureB2CClientID>
oauthClientSecret: <AzureB2CClientSecret>
La valeur spécifiée entre les crochets doit correspondre au nom SECRET NAME
attribué au secret dans votre coffre-fort Azure Key Vault.
Pour charger les 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 trouvées dans le fichier azure-credentials.json, en utilisant le modèle suivant :
MAVERICS_SECRET_PROVIDER='azurekeyvault://<KEYVAULT NAME>.vault.azure.net?clientID=<APPID>&clientSecret=<PASSWORD>&tenantID=<TENANT>'
Mise en place de l’ensemble
Voici comment la configuration de l’orchestrateur apparaîtra lorsque vous aurez terminé les configurations décrites ci-dessus.
version: 0.1
tls:
maverics:
certFile: certs/maverics.crt
keyFile: certs/maverics.key
http:
address: :443
tls: maverics
connectors:
- name: azureB2C
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: <azureB2CClientID>
oauthClientSecret: <azureB2CClientSecret>
authType: oidc
appgateways:
- name: Sonar
basePath: /
upstream: http://example.com:8080
errorPage: http://example.com:8080/sonar/accessdenied
unauthorizedPage: http://<orchestrator-host>/sonar/accessdenied
idps:
- name: azureB2C
headers:
SM_USER: azureB2C.sub
firstname: azureB2C.given_name
lastname: azureB2C.family_name
policies:
- location: /
authentication:
idps:
- azureB2C
Test du flux
Ouvrez un navigateur et accédez à l’URL de l’application sur site,
https://example.com/sonar/dashboard
.L’orchestrateur doit rediriger vers la page que vous avez configurée dans votre flux utilisateur.
Sélectionnez le fournisseur d’identité dans la liste figurant sur la page.
Une fois que vous êtes redirigé vers le fournisseur d’identité, saisissez les informations d’identification demandées, y compris un jeton MFA si le fournisseur d’identité l’exige.
Une fois l’authentification réussie, vous devriez être redirigé vers B2C, qui transmet la demande d’application à l’URI de redirection de l’orchestrateur.
L’orchestrateur évalue les politiques, calcule les en-têtes et envoie l’utilisateur à l’application en amont.
Vous devriez voir apparaître l’application demandée.