Applications API Authentication with oAuth

Any application that connects to the CMS API will require pre-registration and user authentication before it is allowed to connect.

Applications must have an "Application" record in the CMS, which describes the application name, home page location and authentication information (application keys). Applications can be viewed from the Administration > Applications menu.

API

It is recommended to keep this information confidential and only accessible to super administrator users.

Registered Applications

You must obtain a consumer_key and consumer_secret for your application. Keys for "Supported" applications will be shipped with Designate meaning no extra steps are required. If you have made your own application you will need to register it with your Designate CMS using the "Add Application" menu button.

API

Callback URL

The Callback URL will be automatically called by Designate on a completely Authorize request. It will be called regardless of whether the authorization was successful and will contain an OAuth message indicating the authorize success.

If you do not specify a Callback URL Designate will show a message requesting the user return to the application once authorized.

oAuth Log Debugging authentication requests

The CMS provides a log of all oAuth requests for tokens in the oAuth Log. Currently this log is a list of the last 50 oAuth requests, showing the date and header provided by the client.

API

Application Code within the 3rd party application

The 3rd party application must obtain an access token which is used when making requests. This is done using the standard oAuth pattern. The specific URL's for the CMS are shown below:

Service location: http:://**YourCMS**/services.php

OAuth methods:

  • XRDS: services.php?xrds
  • Request Token: services.php?service=oauth&method=request_token
  • Authorize Token: index.php?p=oauth&q=authorize
  • Access Token: services.php?service=oauth&method=access_token

XRDS

The service is also discoverable by XRDS. The schema is below:

<?xml version="1.0" encoding="UTF-8"?>
  <XRDS xmlns="xri://$xrds">
  <XRD xmlns:simple="[http://xrds-simple.net/core/1.0](http://xrds-simple.net/core/1.0 "http://xrds-simple.net/core/1.0")"
  xmlns="xri://$XRD*($v*2.0)"  xmlns:openid="[http://openid.net/xmlns/1.0](http://openid.net/xmlns/1.0 "http://openid.net/xmlns/1.0")" version="2.0" xml:id="main"> 
  <Type>xri://$xrds*simple</Type>
<Service>
    <Type>[http://oauth.net/discovery/1.0](http://oauth.net/discovery/1.0 "http://oauth.net/discovery/1.0")</Type>
    <URI>#main</URI>
</Service>
<Service>
    <Type>[http://oauth.net/core/1.0/endpoint/request](http://oauth.net/core/1.0/endpoint/request "http://oauth.net/core/1.0/endpoint/request")</Type>
        <Type>[http://oauth.net/core/1.0/parameters/auth-header](http://oauth.net/core/1.0/parameters/auth-header "http://oauth.net/core/1.0/parameters/auth-header")</Type>
    <Type>[http://oauth.net/core/1.0/parameters/uri-query](http://oauth.net/core/1.0/parameters/uri-query "http://oauth.net/core/1.0/parameters/uri-query")</Type>
    <Type>[http://oauth.net/core/1.0/signature/HMAC-SHA1](http://oauth.net/core/1.0/signature/HMAC-SHA1 "http://oauth.net/core/1.0/signature/HMAC-SHA1")</Type>
    <Type>[http://oauth.net/core/1.0/signature/PLAINTEXT](http://oauth.net/core/1.0/signature/PLAINTEXT "http://oauth.net/core/1.0/signature/PLAINTEXT")</Type>
    <URI>http://[Template:XRDS LOCATION](/index.php?title=Template:XRDS_LOCATION&action=edit&redlink=1 "Template:XRDS_LOCATION&action=edit&redlink=1")/services.php?service=oauth&method=request_token</URI>
</Service>
<Service>
    <Type>[http://oauth.net/core/1.0/endpoint/authorize](http://oauth.net/core/1.0/endpoint/authorize "http://oauth.net/core/1.0/endpoint/authorize")</Type>
    <Type>[http://oauth.net/core/1.0/parameters/uri-query](http://oauth.net/core/1.0/parameters/uri-query "http://oauth.net/core/1.0/parameters/uri-query")</Type>
    <URI>http://[Template:XRDS LOCATION](/index.php?title=Template:XRDS_LOCATION&action=edit&redlink=1 "Template:XRDS_LOCATION&action=edit&redlink=1")/index.php?p=oauth&q=authorize</URI>
</Service>
<Service>
    <Type>[http://oauth.net/core/1.0/endpoint/access](http://oauth.net/core/1.0/endpoint/access "http://oauth.net/core/1.0/endpoint/access")</Type>
    <Type>[http://oauth.net/core/1.0/parameters/auth-header](http://oauth.net/core/1.0/parameters/auth-header "http://oauth.net/core/1.0/parameters/auth-header")</Type>
    <Type>[http://oauth.net/core/1.0/parameters/uri-query](http://oauth.net/core/1.0/parameters/uri-query "http://oauth.net/core/1.0/parameters/uri-query")</Type>
    <Type>[http://oauth.net/core/1.0/signature/HMAC-SHA1](http://oauth.net/core/1.0/signature/HMAC-SHA1 "http://oauth.net/core/1.0/signature/HMAC-SHA1")</Type>
    <Type>[http://oauth.net/core/1.0/signature/PLAINTEXT](http://oauth.net/core/1.0/signature/PLAINTEXT "http://oauth.net/core/1.0/signature/PLAINTEXT")</Type>
    <URI>http://[Template:XRDS LOCATION](/index.php?title=Template:XRDS_LOCATION&action=edit&redlink=1 "Template:XRDS_LOCATION&action=edit&redlink=1")/services.php?service=oauth&method=access_token</URI>
</Service>
</XRD>
</XRDS>