Azure App Service Container

Déployez FoxIDs dans votre tenant Azure comme votre propre cloud privé.

Une installation FoxIDs est comme un bucket, il n’y a pas de dépendances externes et il est facile d’atteindre un très haut niveau de disponibilité avec peu d’efforts. FoxIDs est mis à jour en mettant à jour les deux App Services vers la nouvelle version de FoxIDs. Les nouvelles versions de FoxIDs sont rétrocompatibles ; veuillez consulter les notes de version avant de mettre à jour.

FoxIDs est déployé dans le groupe de ressources FoxIDs (nom optionnel) où vous devez être Owner ou Contributor et User Access Administrator soit au niveau de l’abonnement soit au niveau du groupe de ressources.

Déployer sur Azure

Vous pouvez faire un petit déploiement sur Azure avec une faible consommation de ressources pour un coût Azure d’environ €80 à €100 par mois.

Le déploiement Azure container inclut :

  • Deux App Services, un pour le site FoxIDs et un pour le site FoxIDs Control (Client et API). Les deux App Services sont hébergés dans le même plan App Service Linux.
  • FoxIDs est déployé avec des conteneurs Docker depuis Docker Hub et les deux App Services sont configurés en déploiement continu.
  • Key Vault. Les certificats et secrets sont stockés et gérés dans Key Vault.
  • Cosmos DB. Contient toutes les données, y compris tenants, environnements et utilisateurs. Cosmos DB est une base de données NoSQL et les données sont enregistrées dans des documents JSON.
  • Cache Redis. Contient les séquences (ex. login et logout), un cache de données pour améliorer les performances et gère les compteurs pour sécuriser l’authentification contre diverses attaques.
  • Application Insights et Log Analytics workspace. Les logs sont envoyés à Application Insights et interrogés dans Log Analytics workspace.
  • VLAN avec sous-réseaux.
    • Sous-réseau pour App Services, Cosmos DB et Key Vault.
    • Sous-réseau avec Private Link vers Redis.

Une autre option est de déployer FoxIDs avec Kubernetes (K8s) dans Azure Kubernetes Service (AKS).

Envoyer des e-mails avec Sendgrid ou SMTP

FoxIDs prend en charge l’envoi d’e-mails avec SendGrid et SMTP en tant que fournisseur d’e-mail.

Première connexion et administrateurs

Après le déploiement réussi, ouvrez FoxIDs Control Client sur https://foxidscontrolxxxxxxxxxx.azurewebsites.net (le service d’application commençant par foxidscontrol...) ce qui vous amène au tenant master.

L’utilisateur admin par défaut est admin@foxids.com avec le mot de passe FirstAccess! (vous devez changer le mot de passe à la première connexion)

FoxIDs Control Client - Master tenant

Optionnellement, allez dans l’onglet Users et créez d’autres administrateurs puis attribuez le role admin avec la valeur foxids:tenant.admin.

FoxIDs Control Client - Master tenant admin user

Vous ne devez généralement pas changer la configuration des inscriptions d’applications et des méthodes d’authentification dans le tenant master, sauf si vous êtes sûr de ce que vous faites. À la place, continuez avec l’étape suivante pour créer un tenant main.

Créer le tenant principal

Créez un tenant main pour vos environnements.

Considérez les domaines personnalisés avant de créer le tenant main.

Cliquez sur New Tenant et créez le tenant main.

FoxIDs Control Client - main tenant

Connectez-vous au tenant main où vous pouvez commencer à configurer vos applications et méthodes d’authentification.

Domaines personnalisés

Les domaines personnalisés sont configurés avec des domaines principaux personnalisés et un domaine personnalisé sur le tenant principal.

Domaines principaux personnalisés

Les domaines principaux des sites FoxIDs et FoxIDs Control peuvent être personnalisés. Les nouveaux domaines principaux personnalisés peuvent être configurés sur les App Services ou via un reverse proxy.

Important : changez le domaine principal avant d’ajouter des tenants.

Domaines :

  • Le domaine par défaut du site FoxIDs est https://foxidsxxxx.azurewebsites.net et peut être remplacé par un domaine principal personnalisé comme par ex. https://somedomain.com ou https://id.somedomain.com
  • Le domaine par défaut du site FoxIDs Control est https://foxidscontrolxxxx.azurewebsites.net et peut être remplacé par un domaine principal personnalisé comme par ex. https://control.somedomain.com

Le site FoxIDs prend en charge un domaine principal et plusieurs domaines personnalisés qui sont connectés aux tenants autres que le tenant master. Le site FoxIDs Control ne prend en charge qu’un domaine principal.

Configurer de nouveaux domaines principaux personnalisés :

  1. Connectez-vous à FoxIDs Control Client en utilisant l’ancien domaine principal par défaut. Sélectionnez l’onglet Applications, puis cliquez sur OpenID Connect - foxids_control_client et cliquez sur Show advanced.

    • Ajoutez l’URL du nouveau domaine principal du site FoxIDs Control à la liste Allow CORS origins sans slash final.
    • Ajoutez les URI de redirection de connexion et de déconnexion du site FoxIDs Control Client pour le nouveau domaine principal personnalisé à la liste Redirect URIs, incluant les chemins /master/authentication/login_callback et /master/authentication/logout_callback.

    Si vous avez ajouté des tenants avant de changer le domaine principal, la configuration OpenID Connect - foxids_control_client doit être effectuée dans chaque tenant.

  2. Les domaines principaux personnalisés sont configurés sur chaque App Service ou via un reverse proxy. Selon le reverse proxy utilisé, vous devrez peut-être aussi configurer les domaines sur chaque App Service :

    • Si configuré sur les App Services : ajoutez les domaines principaux personnalisés dans le portail Azure sur l’App Service FoxIDs et l’App Service FoxIDs Control dans l’onglet Custom domains en cliquant sur le lien Add custom domain.
    • Si configuré sur un reverse proxy : les domaines principaux personnalisés sont exposés via le reverse proxy.
  3. Configurez ensuite les nouveaux domaines principaux personnalisés du site FoxIDs dans l’App Service FoxIDs sous l’onglet Environment variables :

    • Le paramètre Settings__FoxIDsEndpoint est modifié pour le nouveau domaine principal personnalisé du site FoxIDs.
  4. Et configurez les nouveaux domaines principaux personnalisés des sites FoxIDs et FoxIDs Control dans l’App Service FoxIDs Control sous l’onglet Environment variables :

    • Le paramètre Settings__FoxIDsEndpoint est modifié pour le nouveau domaine principal personnalisé du site FoxIDs.
    • Le paramètre Settings__FoxIDsControlEndpoint est modifié pour le nouveau domaine principal personnalisé du site FoxIDs Control.

Domaine personnalisé sur le tenant principal

Vous pouvez obtenir une URL plus courte et plus élégante où l’élément tenant est supprimé de l’URL. En configurant le domaine principal personnalisé du site FoxIDs sur le tenant principal comme un domaine personnalisé.

Les domaines personnalisés sont pris en charge si le site FoxIDs est derrière un reverse proxy qui peut faire un rewriting de domaine.
Ou alternativement, FoxIDs prend en charge les domaines personnalisés en lisant le domaine de la requête HTTP et en utilisant le domaine comme domaine personnalisé si le paramètre Setting__RequestDomainAsCustomDomain est défini à true dans les Environment variables de l’App Service FoxIDs. L’App Service FoxIDs doit être configuré avec le domaine personnalisé dans ce cas.

Le domaine est configuré sur le tenant main et marqué comme vérifié dans le tenant master.

Configure reverse proxy secret

Reverse proxy

Il est recommandé de placer l’App Service Azure FoxIDs et l’App Service Azure FoxIDs Control derrière un reverse proxy.

Azure Front Door

Azure Front Door peut être configuré comme reverse proxy. Azure Front Door réécrit les domaines par défaut.

N’activez PAS le cache. L’en-tête Accept-Language n’est pas transmis si le cache est activé. L’en-tête est requis par FoxIDs pour prendre en charge les cultures.

Configuration :

  • Ajoutez un endpoint Azure Front Door pour l’App Service FoxIDs et l’App Service FoxIDs Control
  • Dans la section Networking des App Services, activez la restriction d’accès pour n’autoriser le trafic qu’à partir d’Azure Front Door
  • Ajoutez le paramètre Settings__TrustProxyHeaders avec la valeur true dans les Environment variables de l’App Service FoxIDs
  • Désactivez Session affinity
  • Configurez éventuellement des politiques WAF

Alternative reverse proxy

Vous pouvez éventuellement choisir un reverse proxy alternatif.

Restreindre l’accès
Restreignez éventuellement l’accès si vous utilisez un reverse proxy autre qu’Azure Front Door.

Les sites FoxIDs et FoxIDs Control peuvent restreindre l’accès en fonction de l’en-tête HTTP X-FoxIDs-Secret.
La restriction d’accès est activée en ajoutant un secret nommé Settings--ProxySecret dans Key Vault.

  1. Accordez à votre adresse IP l’accès via le pare-feu Key Vault Configure reverse proxy secret - firewall

  2. Accordez à votre utilisateur les autorisations List et Set dans Access policies. Configure reverse proxy secret - permissions

  3. Ajoutez le secret Settings--ProxySecret Configure reverse proxy secret

  4. Après la configuration réussie, retirez votre adresse IP et les autorisations.

Les App Services doivent être redémarrés pour lire le secret.

Après la configuration du secret de reverse proxy dans Key Vault, le reverse proxy doit ajouter l’en-tête HTTP X-FoxIDs-Secret dans tous les appels back-end vers FoxIDs pour obtenir l’accès.

Spécifier la page par défaut

Une page par défaut alternative peut être configurée pour le site FoxIDs via le paramètre Settings__WebsiteUrl avec par ex. la valeur https://www.foxidsxxxx.com dans les Environment variables de l’App Service FoxIDs.

Dépannage des erreurs de déploiement

Key Vault supprimé de manière logicielle

Si vous avez supprimé un déploiement précédent, Key Vault n’est supprimé que de manière logicielle et existe encore avec le même nom pendant plusieurs mois. Dans ce cas, vous pouvez rencontrer une erreur 'ConflictError' avec le message 'Exist soft deleted vault with the same name.'.

La solution consiste à supprimer (purger) l’ancien Key Vault, ce qui libérera le nom.

Votre confidentialité

Nous utilisons des cookies pour améliorer votre expérience sur nos sites. Cliquez sur « Accepter tous les cookies » pour accepter l'utilisation des cookies. Pour refuser les cookies non essentiels, cliquez sur « Cookies nécessaires uniquement ».

Consultez notre politique de confidentialité pour en savoir plus