Authentication.
Besoin
Garantir la source et l'intégrité de quelque chose (et donc indirectement la non-répudiation)
Analyse
L'authentification est réalisée par des signatures des messages à authentifier.
Client
Par authentification d'un client, on entend identification du client par le serveur avec qui il communique.
Une telle identification suppose :
- un realm : mécanisme permettant
d'associer des informations émises par le client (login/mot de passe, certificat) à une identité connue du serveur.
- une ACL : mécanisme permettant d'associer cette identité à un ensemble de permissions (ou privilèges,
autorisations).
Cela peut s'effectuer de différentes manières :
- le client s'identifie par login et mot de passe.
- Ce type d'opération était problématique avant Java 2, dans la mesure où elle imposait au client de fournir
son identification au travers d'une boîte de dialogue modale. L'exploitation de la syntaxe d'URL de type https://user:password@machine.domaine/ressource
était également problématique puisque affichant le mot de passe en clair.
- Java 2 fournit la classe abstraite java.net.Authenticator, dont doivent dériver
les applications pour définir l'authentification à fournir. Ces applications doivent alors invoquer java.net.Authenticator.setDefault(myAuthenticator) pour spécifier au système quelle
authentification fournir lorsque cela sera nécessaire. Le système pourra alors fournir un mot de passe via
un objet java.net.PasswordAuthentication.
- le client fournit un certificat au serveur.
- OAuth
Applet non plugin
Dans le cas d'un client de type applet non-plugin, celle-ci doit fournir un certificat installé dans la base de certificats du navigateur, ce qui est
impossible directement. L'applet peut alors confier cette tâche à une servlet qui se charge de récupérer le certificat pour elle depuis le navigateur.