The Azure-Adapter allows SSO (single sign-on) in Azure over the OpenID Connect (OIDC) protocol. Use the information in this guide to configure the Azure AD server and set-up adapter-azure_aaa for the Itential platform.
Important Reminder: The information provided herein was developed in a lab environment. Input for various settings and fields should be populated with details specific to your production environment.
Azure AD Setup
This section outlines the process and permissions that are required for the Azure AAA adapter to communicate with the Azure AD system.
Note: Admin privileges in the Azure AD system are required to perform the initial set-up.
Create New Application
- Login to the Azure AD system and access the Azure AD Page. 
- Select the App Registration section. 
- Click New registration - Recommendation: Create a separate application for each environment so that passwords and configurations are unique to each environment.  
- Complete the application fields. For example: - Name: Itential Automation Platform - Production
- Supported Account Types: Default
- Redirect URI: Leave blank we will update later
 
- Click the Register button. 
- Review the application details. 
- Record the Application ID. It will be used by the adapter as the "client id". 
- Record the Tenant ID. It will be used by the adapter as the "tenant id".  
Authentication Settings
- Go to the Authentication section. 
- Verify the Redirect URIs. These are the acceptable return URIs after authentication. If a redirect is attempted to a URI that does not exist here, the redirect will fail to complete. Pay close attention to the ports as you must have URI for each port - Typically the URL is the same as the sign-on, or a sign-on with a specific SSO page. For example: - https://itential.customer.com/login
- https://localhost:3443/login
  
- Enable the ID tokens under Advanced settings.  
Set Application Permissions
- Go to the API Permissions section. 
- Click the +Add a permission button to add new API permissions. 
- Find and select Microsoft Graph API from the list. 
- From the list of Application Permissions (top section) check the following: - Directory - Directory.Read.All
- Group - Group.Read.All
- User - User.Read.All
 
- No delegated permissions are required. 
- Click Add Permission to save changes.  
- Click Grant admin consent and then click the Yes button to grant admin consent. 
Set the API Key
- Go to the Settings → Keys section. 
- Create a new password by completing the following fields. Be sure to use a secure password. - Description: IAP API Key
- Expires: Never
- Value: <super_secret_password>
  
- Description: 
Note: Expiration policies vary across different organizations. Please follow the guidelines for your respective organization.
- Click Add. A warning message displays reminding the user to keep a safe copy of the Value, which has been encrypted. 
- The value/password will be used in the secret field by the Azure AAA adapter.  
Choose a Method of Group Tracking
As part of the integration between Azure AD and IAP groups are used to allow users to be assigned roles within IAP. Therefore it's important that the Azure AD adapter be configured to read those groups from Azure AD.
To that end several methods are supported and listed below with some recommendations for usage.
| Method | Recommended | Notes | 
|---|---|---|
| all | See notes | Using the all method tells the Azure AD adapter to read and track all Azure AD groups, while this may seem the simplest options, If your Azure AD server more than a couple hundred groups this may impact login performance. This option is recommended for smaller scale Azure AD servers. | 
| master | Yes | This method uses a created group in Azure AD to identify which AD Groups to track. The Azure admin will create a unique group in Azure AD, and then add as many other groups as are required for tracking. The adapter will query Azure AD for the list of members in this group. Those member groups then become the list of groups that IAP will track and matched against users on login. | 
| account | Yes | Very similar method to "master", however in this case a Azure AD Account is used, any listed groups assigned to this user will be tracked by IAP and matched against users at login. | 
- Select a group sync method. 
- Create the required group or account and capture the Object ID of the group/account.  
Azure AAA Adapter Setup
Use the following information to setup the Azure AAA Adapter.
- The following values are required by the Azure AD Admin that creates the IAP Application in Azure: - Tenant ID ("tenant"): This value is found in the endpoints of the Azure AD → IAP App → Tenant ID setup.
- Client ID ("client"): This value is found in the Azure AD → IAP App → Application ID.
- IAP API Key ("secret"): This value is obtained during the key setup in Azure AD → IAP App → Keys.
 
- Update the active - IAP_Profilein the service configuration in- Admin Essentialsto add the Azure AAA adapter. Copy the JSON code below into the properties section of the- Service_Configfor the Azure AAA adapter.- { "id": "Azure AAA", "type": "azure_aaa", "properties": { "tenant": "a38145b3-f428-3645-cb19-ac6fe574ec71", "client": "d54381f6-43ae-33cd-bc79-112233dce3c6", "secret": "7hcq6sruo5GZAEDzRh6+S4LnKmL1Mb+KK2qlP6uT8w0=", "groupSync": { "interval": 3600, "method": "all / master / account", "masterGroup": "<object id of master group or empty for all>", "serviceAccount": "<object id of service account or empty for all>" } }, "brokers": [ "aaa" ] },
- Find the properties section of the - Service_Configfor the Local AAA adapter. Remove the "AAA" value from brokers section leaving the array empty- []. Make sure no other adapters are using the "AAA" config.- "brokers": [ "aaa" ]
- Configure the - uiPropslogin schema in- IAP_Profile. This will redirect to the Azure SSO page. The path is relative to the base IAP directory.- "uiProps": { "login": "custom/sso.html",
- Update - authenticationPropsin- IAP_Profile** to specify the Administrator Group or Groups to be used from the Azure adapter. Any user within these groups will have full administrator permissions within the Itential platform.- Note: To sync the groups correctly, - provenancemust match the- idvalue of the- adapterPropsand- groupvalue should match with the- group namecreated on Azure AD.- "authenticationProps": { "admins": [ { "provenance": "Azure AAA", "group": "IAP-Administrator" } ] },
Itential SSO Set-Up
Whenever users attempt to access the Itential login page, they are redirected to the Azure SSO page. To do this, another HTML page is created and specified in the uiProps.login section of IAP_Profile.
- A sample - sso.htmlis available for use and should work for most default installations. It's located within the- node_modules/@itential/adapter-azure_aaa/samplesdirectory
- Locate or create the - sso.htmlwhich can be renamed as long as it matches the- uiProps.loginpath. Itential recommends that you place the file in a- customdirectory under the- /opt/itential/current/directory and name the file- sso.html:- custom/sso.html
- To edit the file, modify the following values to match the set-up. - Note: The secret is not required and should not appear in this file as sso.html can be read by any browser. - var host = 'https://login.microsoftonline.com/'; var tenant = 'a28044b2-e519-4675-ab09-eb6ee673ed72'; var client = 'd42380f6-4fae-43ed-bb78-415243bce4c7';
- Verify the tenant/client values are the same used in - Service_Config.