Qu'est-ce que cette Gaufre SSO exemple faire
Je suis en train de mettre en œuvre une authentification unique sur Windows (en Java). Récemment, j'ai découvert cet exemple à faire exactement ce que je veux faire avec Gaufre:
//client credentials handle
IWindowsCredentialsHandle credentials= WindowsCredentialsHandleImpl.getCurrent("Negotiate");
credentials.initialize();
//initial client security context
WindowsSecurityContextImpl clientContext = new WindowsSecurityContextImpl();
clientContext.setPrincipalName(Advapi32Util.getUserName());
clientContext.setCredentialsHandle(credentials.getHandle());
clientContext.setSecurityPackage(securityPackage);
clientContext.initialize();
//accept on the server
WindowsAuthProviderImpl provider = new WindowsAuthProviderImpl();
IWindowsSecurityContext serverContext = null;
do {
if (serverContext != null) {
//initialize on the client
SecBufferDesc continueToken = new SecBufferDesc(Sspi.SECBUFFER_TOKEN, serverContext.getToken());
clientContext.initialize(clientContext.getHandle(), continueToken);
}
//accept the token on the server
serverContext = provider.acceptSecurityToken(clientContext.getToken(), "Negotiate");
} while (clientContext.getContinue() || serverContext.getContinue());
System.out.println(serverContext.getIdentity().getFqn());
for (IWindowsAccount group : serverContext.getIdentity().getGroups()) {
System.out.println(" " + group.getFqn());
}
...
L'exemple est simple, il fonctionne et les coutures à faire exactement ce que je veux. Mais je ne comprends pas comment il fonctionne.
- Ce qui se passe en arrière-plan?
- Ne Gaufre obtenir le ticket Kerberos à partir de Windows?
- Comment le serveur valider le ticket du client?
- Puis-je absolument confiance les groupes d'utilisateurs qui je obtenir après la boucle
à partir du serveur de contexte?
Grâce. Thomas.
- Si j'ai mis ce code, j'ai ajouter une référence pour le pot, je suis en mesure de compiler mon pot, mais sur l'exécution, tomcat jette Advautil32 ne peut pas être résolu, où dois-je mettre de la gaufre de pots ? merci
Vous devez vous connecter pour publier un commentaire.
Gaufre utilise Windows SSPI, qui effectue toutes les opérations impliquant des tickets Kerberos sur le compte du client. Le client ne voit jamais le billet.
C'est une base Kerberos question. Le jeton envoyées au serveur sont cryptées par le serveur de la clé secrète, qui garantit que le jeton a été créé par l'Octroi de Ticket de Service, qui a authentifié le client.
Oui, le sont extraites de l'émission de jeton de sécurité. C'est une extension spécifique de MIT Kerberos.