Home

Awesome

#Azure Active Directory Sample REST API Service for Node.js using MongoDB and Restify

This Node.js server will give you with a quick and easy way to set up a REST API Service using the OAuth2 protocol. Then this service is integrated with Azure Active Directory for API protection. The sample server included in the download are designed to run on any platform.

This REST API server is built using Restify and MongoDB with the following features:

We've released all of the source code for this example in GitHub under an Apache 2.0 license, so feel free to clone (or even better, fork!) and provide feedback on the forums.

Quick Start

Getting started with the sample is easy. It is configured to run out of the box with minimal setup.

Step 1: Register a Microsoft Azure AD Tenant

To use this sample you will need a Microsoft Azure Active Directory Tenant. If you're not sure what a tenant is or how you would get one, read What is an Azure AD tenant? or Sign up for Azure as an organization. These docs should get you started on your way to using Microsoft Azure AD.

Step 2: Register your Web API with your Microsoft Azure AD Tenant

After you get your Microsoft Azure AD tenant, add this sample app to your tenant so you can use it to protect your API endpoints.

In the 'APPLICATIONS' page of your tenant, click 'Add an application my organization is developing'. Give your app a name like 'my_webapi_sample', check the 'WEB APPLICATION AND/OR WEB API' option and click next. Fill in the 'SIGN-ON URL' and 'APP ID URL' with the value 'http://localhost:3000', then click next. Now you are in your application page. Under the 'CONFIGURE' tab, copy the clientID of your application and save it somewhere, you will use it in step 6.

Step 3: Download node.js for your platform

To successfully use this sample, you need a working installation of Node.js.

Install Node.js from http://nodejs.org.

Step 4: Install MongoDB on to your platform

To successfully use this sample, you must have a working installation of MongoDB. We will use MongoDB to make our REST API persistent across server instances.

Install MongoDB from http://mongodb.org.

NOTE: This walkthrough assumes that you use the default installation and server endpoints for MongoDB, which at the time of this writing is: mongodb://localhost. This should work locally without any configuration changes if you run this sample on the same machine as you've installed and ran mongodb.

Step 5: Download the Sample application and modules

Next, clone the sample repo and install the NPM.

From your shell or command line:

$ git clone git@github.com:AzureADQuickStarts/WebAPI-Bearer-NodeJS.git
$ cd node-server
$ npm install

Step 6: Configure your server using config.js

Please update the exports.creds and exports.mongoose_auth_local in config.js as instructed.

Step 7: Run the application

$ cd node-server
$ node app.js

Is the server output hard to understand?: We use bunyan for logging in this sample. The console won't make much sense to you unless you also install bunyan and run the server like above but pipe it through the bunyan binary:

$ node server.js | bunyan

You're done!

You will have a server successfully running on http://localhost:3000. Your REST / JSON API Endpoint will be http://localhost:3000/api/tasks

Acknowledgements

We would like to acknowledge the folks who own/contribute to the following projects for their support of Microsoft Azure Active Directory and their libraries that were used to build this sample. In places where we forked these libraries to add additional functionality, we ensured that the chain of forking remains intact so you can navigate back to the original package. Working with such great partners in the open source community clearly illustrates what open collaboration can accomplish. Thank you!

About The Code

Code hosted on GitHub under Apache 2.0 license