Test an O365 API with a simple REST client

A while ago a colleague asked me how to test a REST API when you need a token to use the API. He just wanted to verify some data and didn't want to write any code.
You'll need to do some configuration, but once it's setup the REST calls become painless.

Link O365 with a WAAD

Make sure your O365 is linked via a WAAD (Windows Azure Active Directory).

To link a WAAD to your azure account you need to login via the old azure portal http://manage.windowsazure.com and create a new Active directory.

0365 Link WAAD

Use an existing directory

Once you click next, you'll be asked to logout from azure and you can login on your O365 account to link both.

Grant a client to obtain a token

Now we have linked our O365 with a WAAD, we need to allow an application to obtain a token from O365.

Waad add application

Add application you organisation is developing

In the next step you can define the name of your application. I also chose that I'll use a native client as I'm developing a mobile application.
WAAD application name

Finally you need to define the redirect url. This url is not a working url but needs to correspond with the configuration of your mobile app.
Waad app redirect url

Now you need to open the configure screen to get the configuration you need to get a token

Waad app configure

Be aware that below you can change the permissions you app can get to connect to O365.

Obtain a token

To obtain a token you'll need to install the azure powershell tools. You can install it via your Visual Studio Extensions, but... as we don't want to code you can also download it from: https://azure.microsoft.com/en-us/documentation/articles/powershell-install-configure/

After installing, make sure you restart your powershell. Check your powershell execution policy by typing in powershell (without the dollar sign):

$ Get-ExecutPolicy 

If it is restricted open a powershell as admin and type (without the dollar sign):

$ Set-ExecutionPolicy RemoteSigned

Next you can use the powershell script from https://gist.github.com/jtourlamain/f456e4f1d402bc713d85 to obtain a token. In the file you'll need to change the following parameters (which can be found in your Azure AD Application configuration:

  • adTenant
  • clientId
  • redirect URI
  • authority

When executing the file in powershell, you'll be asked to login. If all goes well, you'll get a new jwt.txt file containing your token. If you need to obtain a new token, first clear your IE cache/data (cleaning the cache from the Edge browser won't help)

Use the token

Now you got an token, open up an REST client. I use Paw2 on mac, but the free postman plugin for the chrome browser will do as well.
My tenant is devprotocol. I can use it to obtain a list of photos by doing a GET to my custom list:
https://devprotocol.sharepoint.com/_api/web/lists/getByTitle('demophoto')/items

Adding headers:
Accept : application/json;odata=verbose
Authorization : Bearer yourLongLongTokenFromAzure

O365 REST calls using Paw2

Hope this helps some of you the burden to write a program just to test out an O365 API.