Tuesday, June 22, 2010

Accessing Oracle Access Manager Identity System Applications using IdentityXML and Identity Web Services

Step 1: Create SOAP Request envelope i.e. soap.xml

<soap-env:envelope
                        xmlns:SOAP-ENV="http://schemas-xmlsoap.org/soap/envelope/"
                        xmlns:oblix="http://www.oblix.com">
                        <soap-env:body>
                                <oblix:authentication xmlns:oblix="http://www.oblix.com">
                                                type="basic">
                                                <oblix:login>[useradmin]</oblix:login>
                                                <oblix:password>[useradmin password]</oblix:password>
                                </oblix:authentication>
                                <oblix:request
                                                function="workflowSaveCreateProfile">
                                                <oblix:params>
                                                                <oblix:param name="ObWorkflowName">obworkflowid=[workflowid],obcontainerId=workflowDefinitions,o=Oblix,dc=mycorp,dc=com</oblix:param>
                                                                <oblix:param name="ObDomainName">ou=People,dc=mycorp,dc=com</oblix:param>
                                                                <oblix:param name="noOfFields">5</oblix:param>
                                                                <oblix:param name="attrName_1">uid</oblix:param>
                                                                <oblix:param name="attrValue_1">sunmoon3112@mycorp.com</oblix:param>
                                                                <oblix:param name="attrName_2">givenName</oblix:param>
                                                                <oblix:param name="attrValue_2">sunmoon3112</oblix:param>
                                                                <oblix:param name="attrName_3">sn</oblix:param>
                                                                <oblix:param name="attrValue_3">User</oblix:param>
                                                                <oblix:param name="attrName_4">cn</oblix:param>
                                                                <oblix:param name="attrValue_4">sunmoon3112 user</oblix:param>
                                                                <oblix:param name="attrName_5">userPassword</oblix:param>
                                                                <oblix:param name="attrValue_5">password</oblix:param>
                                                                <oblix:param name="attrValue_5_confirm">password</oblix:param>
                                                </oblix:params>
                                </oblix:request>
                        </soap-env:body>
</soap-env:envelope>

Step 2: Provide details of webpass host,port and input soap file

        String hostname = "[webpass host]";
        String filename = "soap.xml"; //Input SOAP Request
        int port = [port];
        String oburl = "/identity/oblix/apps/userservcenter/bin/userservcenter.cgi";

Step 3: Get the request from soap.xml input file

Step 4: Access Oracle Access Manager identity services

        //Create the connection
        URL url = new URL(hostname+port+oburl);
        URLConnection conn = url.openConnection();
        conn.setRequestProperty("Content-Type", "text/xml");
        conn.setDoOutput(true);
        conn.setDoInput(true);
        conn.setUseCaches(false);
          
        // Post the Request
        DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
        String bits = getRequestFromFile().toString();
        System.out.println("***************Request Start****************");
        System.out.println(getRequestFromFile().toString());  //print input request
        System.out.println("***************Request End****************");
        wr.writeBytes(bits);
        wr.flush();
   
        // Get the Response
        BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String line;
        System.out.println("***************Response Start****************");
        while ((line = rd.readLine()) != null) {
            System.out.println(line);  //print output response
        }
        System.out.println("***************Response End****************");
        wr.close();
        rd.close();

Step 5: Similarly try accessing all other identity system applications

Refer : IdentityXML and Identity Web Services

No comments: