Azure

Overview

The Azure connector is designed to manage provisioning to Microsoft Azure.

Installation

Follow these steps to run the stand-alone connector server:

  1. Download the connector server jar file and store it in the connector server directory (any directory).
  2. Download the REST connector jar file and store it in the bundles subdirectory.
  3. Start the connector server. For more information, check the page about this topic.

Supported operations

  • Create
  • Delete
  • Update
  • Search
  • Test
  • Schema

Configuration

Configuration Properties

The following table describes all of the properties that you can specify for the configuration:

Configuration PropertyTypeRequiredDescription
authorityStringXThe authority base URL. It should be https://login.microsoftonline.com/common/ for a multitenant application (this is the URL for the Azure AD common endpoint, which enables users from any Azure AD tenant to sign in. For more information about the common endpoint, see this blog post.), or https://login.microsoftonline.com/ + [YOUR_TENANT_ID]
clientIdStringXAzure Native Application ID; you can find it by selecting your Native App in Azure portal
redirectURIStringXSince usually the client app does not have an external service to redirect to, this URI is the standard placeholder for client apps; defaults to https://login.live.com/oauth20_desktop.srf
resourceURIStringXAzure AD Graph API service root; defaults to https://graph.windows.net
usernameStringXYour AD User username
passwordStringXYour AD User password
domainStringXYour Microsoft domain (e.g. mycompany.onmicrosoft.com)
tenantIdStringXAzure Tenant ID
clientSecretStringXClient Secret value; you can find it under Certificates & Secrets
scopesStringXOpenID connect scopes; defaults to https://graph.microsoft.com/.default
userAttributesToGetStringXList of user attributes to retrieve. Must contain at least id and userPrincipalName in order to make the search work.
groupAttributesToGetStringXList of group attributes to retrieve. Must contain at least id in order to make the search work.
restoreItemsBooleanXtrue if you want to restore items (users and groups) instead of creating new one

Prerequisites

Obtaining an Azure AD account

  1. Log in to https://portal.azure.com/;
  2. Go to Azure Active Directory (in left panel);
  3. Create a new user (with current Azure tenant domain, e.g. @mycompany.onmicrosoft.com);
  4. Log out and log back in to https://portal.azure.com/ with that user;
  5. Change password (it is required at first login);
  6. Use username and new password in Azure connector configuration.
  • Any new User must have the Admin Role to manage Users and Groups;
  • Any new User must be owner of the Azure Native App you will create (see next step).

Integrate a new app with Azure Active Directory

Follow these steps to add a new application and be able to use the Azure AD capabilities.

Note: for our purpose it is important to create a Native app and give it some required permissions to manage AD Users and Groups.
About the "Redirect URI" field, you can specify something like http://localhost; it is required but we will not use it.

The required authorization must be set for the following APIs:

  • Microsoft Graph;

so, after creating the application, you'll need to select it and add a new permission for that API in the Required permissions menu.

Then:

  1. In the Required permissions menu, click on Microsoft Graph;
  2. Choose Delegated Permissions and add these permissions: 
    1. APIConnectors.Read.All
    2. Directory.AccessAsUser.All
    3. PrivilegedAccess.ReadWrite.AzureAD
    4. profile
    5. User.Read
  3. Click Save;
  4. Finally, back to Required permissions menu, click on the Grant Permissions button.

Testing

You'll need to create the file ./src/test/resources/net/tirasa/connid/bundles/azure/oauth2.properties, with the following structure:

oauth2.authority=
oauth2.clientId=
oauth2.redirectURI=
oauth2.resourceURI=
oauth2.username=
oauth2.password=
oauth2.domain=
oauth2.tenantId=
oauth2.clientSecret=
oauth2.scopes=
oauth2.userAttributesToGet=
oauth2.groupAttributesToGet=
oauth2.restoreItems=

In case you want to test license assignment you must add the following properties:

# To find available licenses use: 
# https://graphexplorer.azurewebsites.net, login to your Azure account and execute:
# GET https://graph.windows.net/iwelcomeoffice365.onmicrosoft.com/subscribedSkus
# then find a "skuId" with "capabilityStatus": "Enabled" 
availableLicense=
usageLocation=

every property must be filled with your Azure account related information.

Use the following command to run connector tests:

mvn -Pit