Présentation de l'authentification Windows intégrée
L'authentification Windows intégrée (IWA) est un mécanisme qui fournit automatiquement des informations d'authentification utilisateur à IIS lorsque IIS et l'utilisateur sont connectés au même domaine. Lorsque vous créez un site avec ASP.NET C#, vous pouvez obtenir une détermination de l'authentification utilisateur et des informations sur l'utilisateur authentifié.
Cela permet aux utilisateurs d'accéder aux applications Web hébergées (ou liées) par IIS sans opérations de connexion supplémentaires et permet l'intégration SSO avec d'autres serveurs d'applications.
*Si vous ne participez pas au même domaine ou si un utilisateur non authentifié accède à la page IIS, un cadran de connexion s'affichera et si vous ne vous authentifiez pas correctement, une erreur HTTP 401.1 – Non autorisé se produira.

Flux SSO (Single Sign On)
Le plan Ultimate de Chat&Messenger On-Premise permet le SSO avec l'authentification Windows intégrée. Le flux SSO est le suivant.
- Le client accède d'abord à la page authentifiée Windows intégrée /cam-iissso
- La page /cam-iissso utilise ASP.NET pour déterminer si elle est authentifiée et si elle est liée à CAMServer.
- CAMServer effectue une recherche LDAP pour confirmer qu'il s'agit d'un utilisateur AD régulier, génère un ssoToken (une valeur aléatoire unique de 30 octets ou plus) et une URL pour accéder à CAMServer, et demande une redirection.
- Accédez à CAMServer et authentifiez-vous à l’aide de ssoToken. Si l'authentification réussit, un ID de session pour l'accès à l'API sera attribué.

Conditions requises pour obtenir le SSO
Joindre Windows Server au domaine
Veuillez joindre le serveur Windows exécutant CAMServer/IIS au domaine Active Directory.
Pour vérifier le domaine auquel un serveur Windows existant est joint, accédez à « Gestionnaire de serveur » → cliquez sur « Serveur local » dans le menu de gauche → cliquez sur « Nom de l'ordinateur » et reportez-vous à la colonne Domaine.
De plus, IIS doit résider sur le même serveur que CAMServer et s'exécuter sur le port 80. Si vous placez un LoadBalancer devant le CAMServer, le CAMServer s'exécutera sur le port 8080, donc IIS peut également utiliser le port 443.
Installation d'IIS
Installez IIS à partir du rôle serveur.
Lors de l’installation d’IIS, vérifiez les éléments suivants dans les options de sélection des services de rôle.
- Authentification Windows
- Filtres ISAPI
- Installation séparée des extensions ISAPI

Filtre ISAPI : prend en charge le chargement des modules d'extension dans IIS. Nécessaire pour charger AspNetCoreModuleV2.
Extensions ISAPI : ajoutez des extensions ISAPI à IIS. Requis pour le fonctionnement d’AspNetCoreModuleV2. Démarrer le gestionnaire IIS (iisreset)
Installer le pack d'hébergement ASP.NET Core
Offre groupée d'hébergement ASP.NET Core Veuillez installer.
Après l'installation, redémarrez IIS et assurez-vous qu'AspNetCoreModuleV2 est présent dans le mappage du gestionnaire.



Ajouter une application (cam-iissso)
Ajoutez l'application cam-iissso au site Web par défaut.
- Alias : cam-iissso
- Chemin physique : \sys\cam-iissso-net8.0
Accordez également les droits d'accès de visualisation (lecture et exécution, liste du contenu du dossier, lecture) au dossier cam-iissso-net8.0 au groupe IIS_IUSRS.


Activer l'authentification Windows
Faites un clic droit sur « Authentification Windows » et sélectionnez « Activer ».

Définition des options Internet
Ajouter le site fourni par IIS à la zone intranet
Sélectionnez Options Internet, cliquez sur l'onglet Sécurité, sélectionnez Intranet local. Cliquez sur le bouton Sites, sélectionnez Paramètres avancés et ajoutez l'URL du site.
Vérifier la connexion automatique
Cliquez sur "Niveau personnalisé" et sous "Authentification utilisateur" → "Connexion", assurez-vous que "Connexion automatique dans la zone intranet" est sélectionné.


Paramètres LDAP
Lors de l'authentification unique à l'aide d'IIS,Paramètres LDAP(LDAPUrl, LDAPBaseDN, utilisateur AD effectuant une authentification proxy) est requis.

Accès via FQDN (nom de domaine complet) et enregistrement SPN
Cela n'est pas nécessaire si vous accédez à la page d'authentification intégrée Windows IIS à l'aide d'un nom d'hôte (nom NetBIOS), mais vous devez enregistrer un SPN si vous y accédez à l'aide d'un FQDN (nom de domaine complet, par exemple, sso.example.com).
SPN (Service Principal Name) est un nom qui identifie de manière unique un service spécifique sur Active Directory dans l'authentification Kerberos. Si vous accédez au service à l'aide d'un FQDN, l'enregistrement d'un SPN permettra au client de demander avec succès un ticket Kerberos pour le service auquel vous accédez.
Par exemple https://sso.example.com
Lors de l'accès, le client (navigateur) demande un ticket à Active Directory, indiquant « Je souhaite me connecter au service appelé HTTP/sso.example.com ». Active Directory détermine à quel compte le SPN est associé et émet le ticket de service correspondant. Si le SPN n'est pas enregistré correctement, l'authentification Kerberos échouera, ce qui entraînera l'affichage de la boîte de dialogue d'authentification.
L'enregistrement SPN s'effectue sur le compte informatique hébergeant IIS. Par exemple,annonce
Pour IIS exécuté avec le nom d'hôte, enregistrez le SPN comme suit :
setspn -S HTTP/sso.example.com ad$
Une fois inscrit, vous pouvez vérifier avec la commande suivante :
setspn -L ad$
Ce résultat HTTP/sso.example.com
Si elle s'affiche, l'enregistrement SPN a réussi.
Non disponible dans l'environnement de connexion proxy HTTP
Veuillez noter que le SSO ne peut pas être utilisé dans un environnement de connexion proxy HTTP.
Configuration dans un environnement LoadBalancer + SSL
Si vous utilisez l’authentification Windows intégrée IIS dans un environnement LoadBalancer + SSL, veuillez vous référer à l’article de blog suivant.
