Vishal Mahajan

Using SAML Assertions to Access Zimbra

By | June 1, 2010
A common integration question we hear is how to handle "sign-on" between an external enterprise application and Zimbra? This scenario is when a user has signed-on to an enterprise application (for example, a Customer Relationship Management system) and that application needs to access data stored in the user mailbox hosted on a Zimbra server. To transition from the enterprise application to Zimbra, you could prompt the user to re-enter a username/password but that is not a very seamless experience. To automatically "sign-on" the user as they move between systems requires a trusted third party to "vouch for" or "assert" the user identity. Zimbra includes a proprietary protocol for achieving this assertion, which is referred to as "Preauth".  Preauth works by having a key that is shared between a third party application/system and Zimbra. The third party specifies the userid, a timestamp, optionally an expiration time, and an SHA-1 HMAC value computed over that data using the shared key. The Zimbra server, after successfully validating the HMAC value received in the request, redirects the user to the target Zimbra service.… Read more »

Extending Zimbra with Server Extensions

By | April 27, 2010
Zimlets and the ability to extend the Zimbra Web Client is a pretty widely known capability. But did you know that Zimbra also has a framework that allows developers to extend Zimbra server-side functionality? Zimbra Server Extensions provide a mechanism to add functionality to the server in lieu of modifying web.xml and other web server configuration files. By implementing a Server Extension, you can inject or in some cases, intercept, server-side functionality. Some examples include: Handling authentication requests against a user store different than the built-in Zimbra LDAP user store. Server Extensions provide a way to "plug-in" your custom authentication mechanism.… Read more »