0 votes

Hi guys,

We are trying to build an interface between Adaxes and DataExchanger (DEX). Indeed, the idea is to manage users through web services.
DEX will get information related to users on our HRIS tool, handle them and then it will send them well formated to Adaxes using web services.

The problem is, when we use the wsdl url through DEX we are only able to see ProcessRequest operation.

https://drive.google.com/open?id=0B7-4l ... 3A3eUhUZzQ

Is that normal ? We ran couple of tests (samples) using Adaxes SPML Provider portal (eg : https://identity.eu.loccitane.com/Adaxe ... ddUser.xml) with success. Is there Something to configure ?

Thanks in advance for your help

Regards

by (730 points)
0

Hello,

We didn't have any experience with DEX, but we suspect that the issue can be in the WSDL version. Adaxes SPML Provider supplies a WSDL version 2.0 file. Do you know which version is supported by DEX? We didn't find any relevant information on their web site.

0

Hi, thanks for your quick reply.
I just sent an email to our DEX Admin to get more information.
Keep you posted asap

Regards

0

Hi again,

I just got a reply from our DEX admin. It seems that their no limitations regarding WSDL version with our DEX module.

Thanks

1 Answer

0 votes
by (215k points)
selected by
Best answer

Hello,

Actually, having only 1 method is OK. It is as designed.

Now, that you have imported the WSDL file in your project, you need to call the single ProcessRequest method of the SPML provider. To perform various operations in AD, you need to attach them to your HTTP requests in the SPML format.

For examples of requests that you can send via the ProcessRequest method and responses it provides, you can open the following URL: https://identity.eu.loccitane.com/Adaxe ... essRequest

For instance, a simple request looks as follows:

<i class="text-italic">POST /AdaxesSpmlWS/SpmlProvider.asmx HTTP/1.1
Host: <strong class="text-bold">adaxesserver.example.com</strong>
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "<a class="url" href="http://softerra.com/adaxes/spmlwebservice/ProcessRequest">http://softerra.com/adaxes/spmlwebservi ... essRequest</a>"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="<a class="url" href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>" xmlns:xsd="<a class="url" href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</a>" xmlns:soap="<a class="url" href="http://schemas.xmlsoap.org/soap/envelope/">http://schemas.xmlsoap.org/soap/envelope/</a>">
  <soap:Body>
    <ProcessRequest xmlns="<a class="url" href="http://softerra.com/adaxes/spmlwebservice">http://softerra.com/adaxes/spmlwebservice</a>">
      <requestElement><strong class="text-bold">XML</strong></requestElement>
    </ProcessRequest>
  </soap:Body>
</soap:Envelope></i>

In the example above, you need to replace the highlighted XML part with the SOAP request of the operation you want to perform. To get examples of SOAP Requests, you can call one of the URL you mentioned in your original post (https://identity.eu.loccitane.com/Adaxe ... ddUser.xml). In the request, you need the part contained in the soap:Envelope\soap:Body XML element.

For example, a sample request to create a user looks as follows:

<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header/>
  <soap:Body>
    <addRequest xmlns="urn:oasis:names:tc:SPML:2:0" returnData="everything" targetID="all domains">
      <containerID ID="OU=Unit,DC=company,DC=com" />
      <data>
        <attr name="cn" xmlns="urn:oasis:names:tc:DSML:2:0:core">
          <value>John Smith</value>
        </attr>
        <attr name="description" xmlns="urn:oasis:names:tc:DSML:2:0:core">
          <value>User created via Adaxes SPML provider.</value>
        </attr>
        <attr name="sAMAccountName" xmlns="urn:oasis:names:tc:DSML:2:0:core">
          <value>JohnS</value>
        </attr>
        <attr name="objectclass" xmlns="urn:oasis:names:tc:DSML:2:0:core">
          <value>user</value>
        </attr>
        <attr name="mail" xmlns="urn:oasis:names:tc:DSML:2:0:core">
          <value>jsmith@company.com</value>
        </attr>
        <attr name="otherHomePhone" xmlns="urn:oasis:names:tc:DSML:2:0:core">
          <value>12135555555</value>
          <value>12134444444</value>
        </attr>
      </data>
    </addRequest>
  </soap:Body>
</soap:Envelope>

For your Web Service, you need only the part that starts with the addRequest opening tag and ends with the corresponding closing tag. Thus, the request that you need to send via the ProcessRequest method looks as follows:

POST /AdaxesSpmlWS/SpmlProvider.asmx HTTP/1.1
Host: adaxesserver.example.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://softerra.com/adaxes/spmlwebservice/ProcessRequest"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ProcessRequest xmlns="http://softerra.com/adaxes/spmlwebservice">
      <requestElement>
        <addRequest xmlns="urn:oasis:names:tc:SPML:2:0" returnData="everything" targetID="all domains">
          <containerID ID="OU=Unit,DC=company,DC=com" />
            <data>
              <attr name="cn" xmlns="urn:oasis:names:tc:DSML:2:0:core">
                <value>John Smith</value>
                </attr>
              <attr name="description" xmlns="urn:oasis:names:tc:DSML:2:0:core">
                <value>User created via Adaxes SPML provider.</value>
                </attr>
              <attr name="sAMAccountName" xmlns="urn:oasis:names:tc:DSML:2:0:core">
                <value>JohnS</value>
                </attr>
              <attr name="objectclass" xmlns="urn:oasis:names:tc:DSML:2:0:core">
                <value>user</value>
                </attr>
              <attr name="mail" xmlns="urn:oasis:names:tc:DSML:2:0:core">
                <value>jsmith@company.com</value>
                </attr>
              <attr name="otherHomePhone" xmlns="urn:oasis:names:tc:DSML:2:0:core">
                <value>12135555555</value>
                <value>12134444444</value>
                </attr>
          </data>
        </addRequest>
      </requestElement>
    </ProcessRequest>
  </soap:Body>
</soap:Envelope>
0

Just a quick reply to thank you.
It works fine now as described

best regards

Related questions

0 votes
1 answer

Try to look into extending the timeout of the web interface on Adaxes

asked Jul 7 by Vish539 (140 points)
0 votes
1 answer

Hi there, I am just wondering if it is possible to change the URL slug of the web interface URL's. For example, when browsing to a user, the slug is: https://adaxes. ... object ID to not expose this kind of information. Is there a way to achieve this? Thanks.

asked Mar 29 by bjorn19 (20 points)
0 votes
1 answer

I'm trying to provide the capability for ID admin users to perform AD tasks using the web interface. I am not able to edit attributes for an existing user when ... any attribute it gives me an error "An unexpected response was received from the server".

asked Apr 8, 2021 by atnorman (120 points)
0 votes
0 answers

After updating from 2020.1 to 2021.1, my IIS keeps throwing a 404 not found error when attempting to access the Web interface configurator. I'm thinking that the path could be wrong or something could be missing?

asked Mar 9, 2021 by blauprgy (20 points)
0 votes
1 answer

I would like to show a couple of Adaxes Virtual Attributes in the Web Portal. I've added them in the Configuration, see the 1st screenshot below. I've ... . Any help? Virtual Attributes added Security Role has permissions Virtual Attributes not showing up

asked Jul 29, 2020 by nate2 (90 points)
2,800 questions
2,534 answers
6,605 comments
59,571 users