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
InformationsquelleAutor Thomas Uhrig | 2013-07-29