Tôi đang cố triển khai SSO trên Windows (bằng Java). Gần đây tôi phát hiện ra this example làm chính xác những gì tôi muốn làm gì với Waffle:Ví dụ về Waffle SSO này là gì
// 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());
}
...
Ví dụ rất dễ dàng, nó hoạt động và nó seams để thực hiện chính xác những gì tôi muốn. Nhưng tôi không hiểu nó hoạt động ra sao.
- Điều gì đang xảy ra trong nền?
- Waffle có nhận được vé Kerberos từ Windows không?
- Làm cách nào để máy chủ xác thực vé của khách hàng?
- Tôi có thể hoàn toàn tin tưởng các nhóm người dùng mà tôi nhận được sau vòng lặp từ ngữ cảnh của máy chủ không?
Cảm ơn. Thomas.
Nếu tôi đặt mã này, tôi thêm tham chiếu vào bình, tôi có thể biên dịch jar của tôi, nhưng trên thời gian chạy, tomcat ném Advautil32 không thể được giải quyết, nơi nào tôi cần phải đặt lọ waffle? cảm ơn – ilansch