On me dit qu'il est possible de créer une application Web ne nécessitant pas de login. L'utilisateur se connecte à Windows, qui s'authentifie via une recherche LDAP (Active Directory). Ensuite, ils devraient pouvoir accéder à mon application Web et ne jamais voir une invite de connexion. Ces clients se réfèrent à cela en tant que Single Sign On (peut-être incorrectement et une partie de ma confusion).
Cependant, d'après ce que j'ai lu de Single Sign On à partir de la documentation Tomcat:
La valve de connexion unique est utilisée lorsque vous souhaitez donner aux utilisateurs la possibilité de se connecter à l'une des applications Web associées à votre hôte virtuel , puis de faire reconnaître leur identité par toutes les autres applications Web sur le même hôte virtuel.
C'est parfaitement clair pour moi. L'utilisateur doit se connecter une fois et peut accéder à toutes les applications Web d'une instance de tomcat. Mais, ce que je dois faire, c'est leur permettre de se connecter sans jamais fournir d'informations d'identification à mon serveur Tomcat.
Donc, pour que cela fonctionne, j'imagine:
- L'utilisateur fait une demande pour une page
- Le serveur ne voit aucun jeton de session, puis demande au client des informations d'identification.
- Le navigateur du client sans aucune intervention de l'utilisateur fournit des informations d'identification au serveur.
- Ensuite, à l'aide des informations d'identification fournies par le navigateur du client, il effectue une recherche dans un LDAP.
J'ai vu des exemples qui utilisent des certificats côté client ... en particulier le système PKI DoD, ce qui me semble logique car dans ce cas, vous configurez Tomcat pour qu'il demande des certificats côté client , mais vous vous connectez simplement à Windows. Je ne vois pas comment cela fonctionnerait et quelles informations le navigateur transmettrait au serveur, etc. Est-ce à quoi sert NTLM?
Dans un environnement Windows Active Directory, la signature unique signifie que la visite d’une page Web interne porte vos autorisations de connexion Windows et que le serveur Web peut agir en conséquence. NTLM est utilisé pour cela, mais les nouvelles implémentations utilisent Kerberos à la place.
Si vous ouvrez un site Web Sharepoint Server, celui-ci sait qui vous êtes sans avoir besoin d'un nom d'utilisateur et d'un mot de passe de connexion. Toutefois, cela ne fonctionne que pour les sites Web internes du même réseau. (Je ne peux pas dire si vous voulez dire "hôte virtuel" comme dans un hôte Apache ou comme dans un serveur hébergé externalisé).
Voici un document Microsoft décrivant le fonctionnement de l'authentification Kerberos sur un serveur Web exécutant IIS / ASP.Net: http://msdn.microsoft.com/en-us/library/ff647076.aspx
Cela semble possible avec Apache / Tomcat / Java. Voici un fichier PDF décrivant une implémentation de cette université britannique: http://gfivo.ncl.ac.uk/documents/UsingKerberosticketsfortrueSingleSignOn.pdf et un projet Codeplex pour elle: http://tomcatspnego.codeplex.com/ et Openfire en ont la documentation relative à l'utilisation de Java / Kerberos en général ici ( http://community.igniterealtime.org/docs/DOC-1060 ).
la source
Cela ressemble-t-il à ce que vous décrivez ce que Microsoft appelle l’authentification intégrée de Windows?
Il semble que Tomcat prenne en charge l'authentification Windows, basée sur cet article .
la source
Pour commencer, vous ne pouvez pas éviter la connexion. Si vous souhaitez identifier des utilisateurs, vous devez les connecter. Oubliez NTLM, Kerberos vient à la rescousse - il peut tout faire de manière totalement transparente.
La SingleSignOnValve n'est pas ce que vous recherchez. Si vous utilisez Tomcat 7, vous pouvez utiliser le SpnegoAuthenticator tout de suite , mais le 6 vous devez utiliser ce .
la source