Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Query by E-mail

Code Block
languagephp
linenumberstrue
<?php
// #1 Verify if user exists by sending a GET request to the system, searching by user 'mail' attribute
$curl = curl_init("http://your-domain.com/user.json?mail=external_user@dlc-solutions.com");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "restws_webservice:webservice_password"); //Your credentials goes here
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
 
$json = curl_exec($curl);
$response = json_decode($json);
 
// A list of users matching criteria will be returned. If this list is empty, a user does not exist in EthosCE with the given e-mail address.
$list = $response->list;

Successful Return

The response below describes information on a user with the e-mail address external_user@dlcdev.com, the most notable item being the uid 200.

Code Block
languagejs

...

...

{ 
  "self":"http://your-domain.com/user?mail=external_user%40dlcdev.com",
  "first":"http://your-domain.com/user?mail=external_user%40dlcdev.com\u0026page=0",
  "last":"http://your-domain.com/user?mail=external_user%40dlcdev.com\u0026page=0",
  "list":[ 
    { 

      "uid":"200",
      "name":"external_user",
      "mail":"external_user@dlcdev.com",
      "url":"http://your-domain.com/users/external_user",
      "edit_url":"http://your-domain.com/user/200/edit",
      "last_access":"1469471140",
      "last_login":"1469469525",
      "created":"1459800968",
      "roles":[ 
        2
      ],
      "status":"1",
      "profile_profile":{ 
        "uri":"http://your-domain.com/profile2/46",
        "id":"46",
        "resource":"profile2"
      },
      "uuid":"ba5bc8af-25d7-48de-bb54-87ae70ac33b5"
    }
  ]
}
title
Info

Note

uid is the unique Drupal identifier, which is different from the uuid. Uuid is the universal unique identifier, which is an internal identifier for the database system.

...

When a user is created via an SSO call, an authentication map entry is created, keying a uid to a client external ID. The external ID is a pre-determined key, being sent in the SSO call. It's format will vary per client install.

Code Block
linenumbers
languagephptrue
<?php
// #1 Verify if user exists by sending a GET request to the system, searching by user 'authname' attribute
$curl = curl_init("http://your-domain.com/authmap.json?authname=external_user_500");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "restws_webservice:webservice_password"); //Your credentials goes here
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
 
$json = curl_exec($curl);
$response = json_decode($json);
 
// A list of users matching criteria will be returned. If this list is empty, the user does not exist in EthosCE with the given e-mail address.
$list = $response->list;

...

A  successful return will provide an array in the list attribute, containing one item, with an array of user information.

title
Info

Return Attributes

aid: The authentication ID key tracked by the database.

uid: The user's Drupal ID.

authname: The user's unique identifier from the external system.

module: The module responsible for authenticating the user. This is usually the name of the custom SSO implementation. For SAML implementations the module name is "simplesamlphp_auth."

true
Code Block
linenumbers
{ 
 
   "self":"https://your-domain.com/authmap?authname=external_user_500",
   "first":"https://your-domain.com/authmap?authname=external_user_500\u0026page=0",
   "last":"https://your-domain.com/authmap?authname=external_user_500\u0026page=0",
   "list":[ 
      { 
         "aid":"2",
         "uid":"229",
         "authname":"external_user_500",
         "module":"client_sso"
      }
   ]
}

...