Tuesday, June 26, 2007

How SPML works


What is SPML?

The Service Provisioning Markup language (SPML) is the open standard protocol for the integration and interoperation of service provisioning requests. SPML version 1.0 is a draft OASIS standard due for ratification in Summer 2003.

What does 'service provisioning' mean?

Service provisioning refers to the "preparation beforehand" of IT systems' materials or supplies required to carry out a specific activity. It goes beyond the initial "contingency" of providing resources, to encompass the entire lifecycle management of these resources. This includes the provisioning of digital services such as user accounts and access privileges on systems, networks and applications, as well as the provisioning of non-digital or "physical" resources such as cell phones and credit cards.


How it is used?

Products like Sun Identity Manager provides SPML interface so end applications/systems can provision/de-provision user accounts on the system. Designers should expose the web service calls which internally use the SPML calls to interact with the system. This way different systems can integrate with centralized system for necessray action. Extra care should be taken before exposing the web-service calls to the whole world as web service is exposing critical functions.

Here is a little program which I have written for creating user account using SPML on Sun Identity Manager

import org.openspml.client.LighthouseClient;
import org.openspml.message.ExtendedRequest;
import org.openspml.message.ExtendedResponse;
import org.openspml.message.SpmlResponse;

public class CallingCustomWorkflow {

/**
* @param args
*/
public static void main(String[] args) {
try
{
LighthouseClient client = new LighthouseClient();
client.setTrace(true);
client.setUrl("http://localhost/idm6/servlet/rpcrouter2");
client.setUser("configurator");
client.setPassword("password");
ExtendedRequest req = new ExtendedRequest();

req.setOperationIdentifier("launchProcess");
req.setAttribute("accountId","abcdefg");
req.setAttribute("firstname","abcd");
req.setAttribute("lastname","abcd");
req.setAttribute("password","gdswer");
req.setAttribute("resources","LDAP");


req.setAttribute("process","SPMLWorkflow");
SpmlResponse res = client.request(req);



}
catch (Exception e)
{

}
}

}

2 comments:

Anonymous said...

hi, this is shamim (shamim.ashik@gmail.com).
i want to create new account in sun idm and want to store account info in Ldap directory. i want some code to do it synchronously. i installed sun idm, iplanet in my pc. now is there any pre-condition to run your code. i cant make ur code working ( i mean should anything required to run the spml code). i added required jar files in the project. it runs but i didnt find any user created in idm.
i will be glad if you help me.

Identity Solutions said...

code id good.

I want to know,How to configure launchProcess,is it any xml file or any class file..and where we need to configure launchprocess
req.setOperationIdentifier("launchProcess");