Introduction
jLiveID, a free library that provides an essential API to allow access to the Windows Live ID service from within Java applications. Windows Live ID (originally known as Microsoft Passport, then as .NET Passport, and then as Microsoft Passport Network) is the identity and authentication service developed and provided by Microsoft’s Windows Live. jLiveID makes it possible for Java developers to create identity-aware applications and online services and offer personalized access to such applications' content to any of the millions potentially registered Windows Live ID users. jLiveID enables authentication (logon) into the Windows Live ID service and subsequent acquisition of Security Token.
Problem Overview
On one hand: Through its software development kits (SDKs) for the Windows Live ID service, Microsoft does provide all of the necessary tools for integration with Windows Live. However, these SDKs (Web Authentication SDK, Delegated Authentication SDK and Client Authentication SDK) are part of the .NET Framework only. Even though Web Authentication SDK is also available for other platforms such as Java, it, however, requires that a Windows Live ID login page must be shown in the end-user’s Web Browser. This Live ID login page needs explicit end-user’s input to enter the users’ credentials and is responsible in submitting these credentials to the Windows Live service. Web Authentication SDK, in-turn, is responsible for analysis of the received response and for obtaining Security Token. Even though such approach would be acceptable for most Web applications, it simply will not work for all kinds of other applications as it makes it impossible to perform authentication (logon) against Windows Live services programmatically.
Solution
jLiveID solves this problem by utilizing a Live ID Web Service and exposing it through the jLiveID API that requires no knowledge of SOAP programming from the software developer. Main features of jLiveID are:
-
Prepares SOAP request according to supplied arguments and calls the Live ID Web Service.
-
Analyzes SOAP response to obtain major properties of SecurityToken.
-
Analyzes SOAP fault to obtain error details and compose detailed error message.
-
100% Java implementation. No native libraries required.
jLiveID can be used by software vendors to:
-
Add single sign-on functionality into their applications and online services. In which case the binarySecurityToken property of the SecurityToken can be used as a session identifier.
-
Get Web Services access to various online applications like Microsoft Dynamics CRM. In which case the binarySecurityToken property of the SecurityToken can be used to perform further authentication e.g. to obtain CRMTicket for Microsoft Dynamics CRM.
For example, upcoming Protection! Connect application uses jLiveID to allow integration of Protection! Enterprise with the Microsoft Dynamics CRM.
jLiveID can be freely used for any kind of free or commercial applications. We do not require, but appreciate if you put references to jLiveID in the appropriate places of your applications or site.
Usage Example:
try
{
SecurityToken securityToken = new LogonManager().logon("live.com",
"user", "password");
System.out.println("Logon succeeded!");
System.out.println("Passport Token: " + securityToken.
getBinarySecurityToken());
System.out.println("Issue Date: " + securityToken.getIssueDate());
System.out.println("Expire Date: " + securityToken.getExpireDate());
}
catch (LogonManagerException lme)
{
System.out.println("Logon failed: "+lme.getDetailedMessage());
}
catch (Exception ex)
{
ex.printStackTrace();
}
We strongly urge you to check the Protection! Licensing Toolkit. It allows you to both minimize loss of revenue due to piracy and optimize your revenue stream by adding proper licensing to your applications.
|