Authentification Windows et cas particuliers
L'authentification Windows s'active côté serveur et nécessite une configuration de l'environnement d'exécution, notamment en développement avec IIS Express ou en publication IIS.
Activer l'authentification Windows côté Lagoon
La classe AuthenticationOptions expose AllowWindowsAuthentication. Le pipeline serveur doit conserver UseAuthentication() puis UseAuthorization() avant MapLagoonFallback().
protected override void OnConfigureAuthentification(AuthenticationOptions options)
{
// Active l'authentification Windows.
options.AllowWindowsAuthentication = true;
}
Si l'identifiant Windows doit conserver le nom de domaine, utilisez WindowsAuthenticationFullUserName.
protected override void OnConfigureAuthentification(AuthenticationOptions options)
{
options.AllowWindowsAuthentication = true;
// Exemple : false -> UserName, true -> DOMAIN\UserName.
options.WindowsAuthenticationFullUserName = true;
}
Environnement de développement
Pour activer l'authentification Windows dans Visual Studio, ouvrez les propriétés du projet serveur et activez la configuration correspondante.
Vous pouvez aussi éditer le fichier launchSettings.json dans le dossier Properties du projet serveur.
anonymousAuthenticationdoit être activé.- Il faut utiliser IIS Express ; Kestrel ne suffit pas.
- Le debugger de Visual Studio Code ne gère pas l'authentification Windows.
Publication sur IIS local
Prérequis
Installez le Hosting Bundle ASP.NET Core adapté à la version .NET ciblée par l'application.
Pool d'application IIS
- Créez un pool par application Lagoon.
- Le pool ne doit pas contenir plus d'une application, sinon des problèmes peuvent apparaître.
- Lors de la création, positionnez la version du CLR .NET sur
Aucun code managé.
Modifier la racine de l'application
Si l'application est déployée sur https://localhost/mon_application/, modifiez le fichier wwwroot/index.html du dossier de publication pour refléter la racine IIS dans le base href.
<base href="/monapplication/" />
La casse a une incidence sur le fonctionnement de l'application. Le nom du site IIS, le nom du dossier de publication et le base href doivent être en minuscules. Le chemin doit commencer et se terminer par /.
Lorsque vous publiez sur un IIS local, l'URL doit se terminer par /.
https://localhost/monapplicationouvre l'application, mais des problèmes d'authentification peuvent survenir.https://localhost/monapplication/est l'URL attendue.
Support du HTTPS
Votre IIS local doit être configuré pour accepter les connexions HTTPS. Ce n'est pas le cas par défaut sur un poste Windows non serveur.
Vérifiez la présence d'une liaison HTTPS sur le nœud racine IIS. Si elle n'existe pas, ajoutez un binding HTTPS.
Publication sur IIS production
L'ancienne documentation indique que ce point reste à creuser.
Déploiement de l'application en cluster
Lorsque la même application est déployée sur plusieurs serveurs, configurez l'emplacement de stockage des clés dans appsettings.json avec Lagoon:Authentication:KeyStoreDirectoryPath.
L'emplacement peut être un chemin UNC.
{
"Lagoon": {
"Authentication": {
"KeyStoreDirectoryPath": "\\server\share\keys"
}
}
}