Skip to main content

DeploymentGuide

Acronyms

AcronymDescription
MSMicrosoft
SPNService Principal
WAPPWeb application
IARMInfotechtion-ARM
UIDIRECTORYACCESSUser interface directory access
PRDProduction
FUNCFunction
APIAUTHApplication Programming Interface Authentication
GRAPHAPIGraph API
DEVOPSCONNAzure Devops Connection
MYDISPPAMy Disposal Power Automate
SPOACCESSSharePoint Online Access
SQLStructured Query Language
SGService Group
SVCService
VNETVirtual Network
RGResource Group
WEBAPPWeb Application
FUNCAPPFunction Application
PEPrivate Endpoint
KVKey Vault
ASPActive Server Pages
MYDISPMy Disposal (feature of iARM)
UIUser interface
VMVirtual Machine
IACInfrastructure as a code
PRMPhysical Records Management
SPFxSharePoint Framework
PnPPatterns and Practices
PBIPower BI
DGData Gateway
RDPRemote Desktop
WJWeb Job
ACIAzure Container Instance
ACRAzure Container Registry
RLSRow Level Security

I-ARM Deployment Guide

The Deployment of the end-to-end I-ARM product will occur in several phases, as outlined below:

  1. Pre-Infrastructure Deployment
  2. Infrastructure Deployment
  3. Module Configuration
  4. Solution Deployment
  5. Manual Configurations

Pre-Infrastructure Deployment

The pre-infrastructure guide is essential as it outlines the necessary steps to create a Microsoft Entra ID Security Group, configure the service account, register the application, assign permissions, generate secrets or create certificates, and expose APIs. These actions are crucial for ensuring a secure and properly configured environment for the deployment and operation of your services.

I-ARM Deployment Runbook

Download the i-ARM deployment runbook from this link i-ARM_Runbook.xlsx for an easy tracking of your deployment activities.

Register Resource Providers

Azure Resource Providers are services in Azure that allow you to create and manage resources in your Azure subscription. Each resource provider offers a set of resource types that can be deployed and managed.

The below resource providers need to be registered in your Azure subscription before we can create i-ARM resources associated with them.

Note: To register resource providers in Azure, the user needs to have the Owner or Contributor role on the subscription.

Steps to Register a Resource Provider:

  1. Log into Azure Portal: Go to Ref: and log in.
  2. Go to Subscriptions: In the Azure portal, search for Subscriptions in the search bar or go directly to Subscriptions under All Services.
  3. In the subscription blade: Look for the "Resource providers" option in the settings menu.
  4. In the Resource providers pane: You will see a list of available providers and their registration status.

Image

  1. Use the search box: Locate the specific resource provider you need to register (e.g., Microsoft.DomainRegistration) that are not yet registered.

Below is a table containing all the required resource providers to register:

#Register Resource ProvidersRegistered (Yes / No)
1Microsoft.DomainRegistration
2Microsoft.Network
3Microsoft.Advisor
4Microsoft.CloudShell
5Microsoft.Sql
6Microsoft.MarketplaceNotifications
7Microsoft.ServiceLinker
8Microsoft.ManagedIdentity
9Microsoft.AlertsManagement
10Microsoft.RecoveryServices
11Microsoft.Security
12Microsoft.Web
13Microsoft.Storage
14Microsoft.Compute
15Microsoft.EventGrid
16Microsoft.OperationalInsights
17microsoft.insights
18Microsoft.KeyVault
19Microsoft.ResourceHealth
20Microsoft.GuestConfiguration
21Microsoft.PolicyInsights
22Microsoft.Logic
23Microsoft.Automation
24Microsoft.PowerPlatform
25Microsoft.ContainerInstance
26Microsoft.ContainerRegistry
  1. Click on the resource provider: Then click the Register button. Wait for the registration process to complete.
  2. Once registration is complete: You can start using the resource provider’s services in your subscription.

Entra ID Group Creation

This section guides you through creating necessary security groups in Microsoft Entra ID, which are essential for managing access and permissions within the i-ARM deployment.

Steps to Create Entra ID Security Group:

  1. Sign in to the Azure portal: Go to Ref: and log in with at least a User Administrator role.
  2. Navigate to Azure Active Directory: In the left-hand menu, select "Microsoft Entra ID".
  3. Go to Groups: Under the "Manage" section, click on "Groups".
  4. Create a New Group: Click on "New group".
  5. Fill in Group Details: Complete the options in the Group page:
    • Group type: Select "Security".
    • Group name: Enter the name for the group (e.g., sg-sub-iarm-reader-prd).
    • Group description (Optional): Enter a description for the group.
    • Membership type: Select "Assigned".
  6. Create the Group: Click "Create".

Image Image

Repeat these steps for each of the following security groups:

Item #Security Group NamePurposei-ARM Module
1sg-sub-iarm-reader-prdRead access to the azure subscription where i-ARM would be deployed.All
2sg-svc-iarm-webappadministrators-prdi-ARM persona performing administrative actions within i-ARM.All
3sg-svc-iarm-portal-recordsadministrators-prdGroup required for the Records Administrator personaMy Data
4sg-svc-iarm-portal-ediscoverymanagers-prdGroup required for the eDiscovery Persona in i-ARMMy Data
5sg-svc-iarm-sqlentraadministrators-prdEntra ID administrators accessing i-ARM Data StoreAll
6Provisioning Hub Approvers GroupGroup for approvers used in Power apps to implement RLS for approver's and setting screenWorkspace Governance

Steps to Create creating custom role group in the Microsoft Purview Compliance Center:

Sign in to the Microsoft Purview compliance portal: Log in with an admin account.

  1. Navigate to Permissions: Go to Permissions in the left-hand menu.
  2. Create a New Role Group: Click on "Create role group".
  3. Fill in Role Group Details: Provide a name and description for the role group.
  4. Add Roles: Select the roles to include in the group:
    • View-Only Retention Management
    • View-Only Record Management
  5. Assign Members: Choose the users to assign to this role group.
  6. Create the Role Group: Click "Create" to finalize the role group.
Item #Compliance Group NamePurposei-ARM Module
1Custom Role Group in Microsoft Purview Compliance CenterRequired for i-ARM to sync M365 Purview Labels and Label policies.All

By completing all these steps, you will have successfully created the Entra ID Security Group & custom role group in Microsoft Purview Compliance Center.

Service Account Creation

Service accounts would be used for various automated processes within the i-ARM deployment.

Steps to create Service Account:

  1. Sign in to the Microsoft 365 admin center: Go to Ref: and log in with a Global Administrator account.
  2. Navigate to Users: In the left-hand menu, click on "Users" and then select "Active users".
  3. Add a User: Click on "Add a user".
  4. Fill in User Details:
    • Display name: Enter the display name for the service account. Note: Service Account Name should be identified with customer prior to creating them.
    • Username: Enter the username for the service account.
  5. Set Password: Choose the "Let me create the password" option and provide a password of your choice. Make sure to note down the password for future reference.
  6. Assign License: Assign the appropriate license to the service account.
  7. Finish Setup: Click "Next" and complete the setup process.

Repeat these steps for each of the following service accounts:

Item #DescriptionLicenseScopeRole
1Account required for importing and configuring the Power Automate flows. This account should also be added as a Connection Creator in the data gateway.* E5 license * Power Automate Premium Per User PlanPower Automate EnvironmentEnvironment Maker Role
On-Premises Data Gateway (Power Platform Admin Center)Connection Creator
2Account identified as a Gateway Admin for the data gateway that is installed and configured.* E5 licensePower Automate EnvironmentEnvironment Maker Role
On-Premises Data Gateway (Power Platform Admin Center)Gateway Admin
3Account required to sync the label policies and labels from Purview Compliance Portal. This account would be added to the custom role group created in Purview Compliance Center.* E5 licenseMicrosoft Purview Compliance PortalCreate a custom role group with the below roles in Microsoft Purview Compliance Center:- View-Only Retention Management- View-Only Record Management
4Account identified for publishing Power BI reports.* E5 licensePower BI WorkspaceOwner
Azure SQL Databasedb_datareader
5Account from which the notification emails would be sent.* E3/E5NANA
6Account used by the Windows service for reading and downloading blobs.* E5 licenseAzure Storage Account (saiarmarchiveregionabbrprd)Storage Blob Data Reader
Azure Key Vault (kv-iarm-svc-regionabbr-prd)- Key Vault Secrets User- Key Vault Certificate User
7Account used by the Windows service for scanning the Network File Shares or Azure File Shares.* E5 licenseAzure Storage Account (mounting must be done using the Storage Account access Key)NA
Network File ShareRead Write access on the file share for scanning (Write is only necessary if Immutability Feature is enabled)
Azure Key Vault (kv-iarm-svc-regionabbr-prd)- Key Vault Secrets User- Key Vault Certificate User
8Account used by the MPIP Scanner service for installing and scanning the Network File Shares or Azure File Shares.* E5 licensesql-iarmmpip-svc-regionabbr-prdSysadmin(1)
sql-iarmmpip-svc-regionabbr-prddb_owner
Network/ Azure File Share (Mounted on Scanner VM)Read Write access on the file share for scanning (Write is only necessary if protection is being applied)
Azure Key Vault (kv-iarm-svc-regionabbr-prd)- Key Vault Secrets User- Key Vault Certificate User

Ref:

App Registration Creation

Steps to create and configure app registrations in Azure, which are necessary for authenticating and authorizing the i-ARM application components.

Note: Pay close attention to details such as redirect URIs and API permissions, as these configurations are crucial for the security and functionality of the application.

Step to create App Registrations:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials. Image
  2. Search for App Registrations: Use the search bar to find "App Registrations" and click on it.
  3. Create a New Registration: Click on "+ New registration" at the top of the page.

Image

  1. Fill in Application Details:
    • Name: Enter a name for your application. Choose a descriptive name for the table below.
    • Supported Account Types: Select “Accounts in this organizational directory only (Single tenant)”.
    • Redirect URI: Leave it blank to be configured later.

Image

  1. Register the Application: Click on "Register" to create the app registration.

Image

Create the following App Registrations using the instructions shared above:

Item #App Registration NameAPI PermissionCertificate & Secret
spn-wapp-iarm-uidirectoryaccess-prdDelegated: Microsoft Graph: User.Read User.ReadBasic.AllCert- 0 Secret - 0
spn-func-iarm-apiauth-prdNACert- 0 Secret – 2*
spn-func-iarm-graphapi-prdDelegated: Microsoft Graph: User.Read Application: Microsoft Graph: User.Read.AllCert- 1 Secret - 0
spn-wj-iarm-di-spn-prdDelegated: Microsoft Graph: User.Read Application: SharePoint: Sites.Read.AllCert- 1 Secret - 0
spn-devopsconn-iarm-deploy-prdDelegated: Microsoft Graph: User.ReadCert- 0 Secret - 1
spn-di-iarm-dropzone-prdCert- 1 Secret - 0
spn-func-iarm-notifications-prdDelegated: Microsoft Graph: User.ReadApplication: Microsoft Graph: Mail.Send User.ReadBasic.AllCert- 1 Secret - 0
spn-func-iarm-mydispconnspoaccess-prdDelegated: Microsoft Graph: User.Read **Application:**Microsoft Graph: Sites.Read.All SharePoint: Sites.FullControl.AllCert- 1 Secret - 0
spn-sql-iarm-sqlaccess-prdDelegated: Microsoft Graph: User.ReadCert- 0 Secret - 1
spn-func-iarm-urclabelsync-prdDelegated: Microsoft Graph: User.Read Application: Microsoft Graph RecordsManagement.ReadWrite.AllCert- 0 Secret - 1
spn-agents-iarm-wsgov-prdDelegated: Microsoft Graph: User.Read Application: Microsoft Graph: TeamMember.ReadWrite.All GroupMember.ReadWrite.All Channel.Create Channel.ReadBasic.All TeamsTab.ReadWrite.All TeamTemplates.Read.All TeamsAppInstallation.ReadForTeam.All TeamSettings.ReadWrite.All Team.Create Sharepoint: Sites.FullControl.AllCert- 0 Secret - 1
spn-scanner-iarm-mpip-prdDelegated: Microsoft Graph: User.Read Application: Microsoft Information Protection Sync Service: UnifiedPolicy.Tenant.Read Azure Rights Management Services: Content.DelegatedReader Content.DelegatedWriterCert- 0 Secret - 1
spn-func-iarm-prmsync-prdDelegated: Microsoft Graph: User.Read **Application:**SharePoint: TermStore.Read.All TermStore.ReadWrite.All Sites.Read.All Sites.ReadWrite.AllCert- 1 Secret - 0
spn-func-iarm-prmprovisioning-prdDelegated: Microsoft Graph: User.Read Application: Microsoft Graph: Sites.FullControl.All SharePoint: Sites.FullControl.AllCert- 1 Secret - 0
spn-func-iarm-prmbulkimport-prdDelegate Microsoft Graph: User.Read Application Microsoft Graph: TermStore.Read.All SharePoint: Sites.SelectedCert- 1 Secret - 0
spn-wj-iarm-m365auditsync-prd**Application:**Microsoft Graph: AuditLog.Read.All AuditLogsQuery-SharePoint.Read.All AuditLogsQuery.Read.All Office 365 Management APIs ActivityFeed.Read ActivityFeed.ReadDlpCert- 0 Secret - 1
spn-func-iarm-mydispconnspoaccess-prd**Application:**Microsoft.Graph:Sites.Read.AllFiles.Read.All **Delegated:**Microsoft.Graph:Files.Read.AllCert- 0 Secret - 0
spn-agent-iarm- downloadarchiveblobs-prd**Delegated:**Microsoft Graph:User.ReadCert- 0 Secret - 0
spn-agents-iarm-nfsagent-prd**Delegated:**Microsoft Graph:User.ReadCert- 0 Secret - 0

Note: Global admin is required to grant admin consent for all the App Registration API permissions.

Adding Permission to App Registrations

API permissions is crucial for enabling secure and authorized access to various services and resources. This ensures that the i-ARM application components can interact seamlessly with Azure services.

Steps to Add API Permissions to an App Registration:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to App Registrations: Use the search bar to find "App Registrations" and click on it.
  3. Select Your App Registration: Click on the app registration you want to configure.
  4. Go to API Permissions: In the left-hand menu, click on "API permissions".
  5. Add a Permission: Click on the "Add a permission" button.
  6. Request API Permissions: You will see the "Request API permissions" page. Select the Microsoft APIs (e.g., Microsoft Graph, SharePoint) as listed in the App Registrations table.

Image

  1. Select Permissions: Choose the appropriate permissions for your application:
    1. Application or Delegated Permissions: Select the type of permission (Application or Delegated) and then select the specific permissions required for the app registration. Use the search bar to quickly find the permissions you need.
  2. Add Permission: After selecting the permissions, click on the "Add permissions" button.

Image

  1. Grant Admin Consent: Once the permissions are added, you will see them listed on the API permissions page. Click on "Grant admin consent for [your organization]" to grant the selected permissions.

Image

  • By completing all these steps, you will have successfully added permissions to the App Registration.

Expose an API

Exposing an API is essential for enabling secure and authorized access to your application's resources. This ensures that client applications can interact seamlessly with your API.

SPN: “spn-func-iarm-apiauth-prd”

Steps to Expose API to an App Registration:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to App Registrations: Use the search bar to find "App Registrations" and click on it.
  3. Select Your App Registration: Click on the spn-func-iarm-apiauth-prd app registration.
  4. Go to Expose an API: In the left-hand menu, click on "Expose an API".
  5. Set the Application ID URI: Click on the "Add" button. The Application ID URI will be automatically populated. Click on "Save".

Image

  1. Add a Scope:
    • Click on "Add a scope".
    • Scope name: Enter ”user_impersonation”.
    • Who can consent?: Select "Admins and users".
    • Admin consent display name: Enter "Access i-ARM API"
    • Admin consent description: Enter "Allows the app to access i-ARM API on behalf of the signed-in user"
    • User consent display name: Enter "Access i-ARM API").
    • User consent description: Enter "Allows the app to access i-ARM API on your behalf"
    • State: Ensure it is set to "Enabled".
    • Click "Add scope" to create the scope. .

Image

  1. Add Authorized Client Applications:
    • Click on "+ Add a client application".
    • Enter the Client ID of spn-wapp-iarm-uidirectoryaccess-prd App Registration, this SPN will be authorized to access this API.
    • Check the authorized scopes.
    • Click "Add application" to save the process.

Image

    • Once the Client Application has been successfully authorized and added, the page will appear as shown below.

Image

Token Configuration

SPN: “spn-wapp-iarm-uidirectoryaccess-prd

Steps to Add Token:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to App Registrations: Use the search bar to find "App Registrations" and click on it.
  3. Select your application: Find and select spn-wapp-iarm-uidirectoryaccess-prd from the list of registered applications.
  4. Go to Token configuration: Under the Manage section, select Token configuration.
  5. Add optional claim: Click on Add optional claim.
  6. Select the token type: Choose ID as the token type.
  7. Select the optional claim: In the list of optional claims, find and select login_hint.
  8. Add the claim: Click Add to include the login_hint claim in the ID token.
  9. Save your changes: Ensure you save the configuration to apply the changes.

Image

Generating a Secret

Generating a secret is a key step in securing your application's access credentials. This process involves creating a client secret that your application can use to authenticate itself when accessing resources.

Steps to Generating a Secret:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to App Registrations: Use the search bar to find "App Registrations" and click on it.
  3. Select Your App Registration: Click on the app registration you want to configure.
  4. Navigate to Certificates & Secrets:
    • Go to the Certificates & Secrets section of your app registration.
    • Click on + Add client secret.
  5. Add the Secret:
    • Fill in the required fields on the Add a client secret page.
    • Click Add.

Image

  1. Copy the Secret Value:
    • After the secret is created, the value will be displayed.
    • Click the copy button next to the value to copy the secret.
    • Store the secret value is a secure place.

Image

Note: Ensure you copy and paste the secret value immediately. If you navigate away from the page or refresh it, the secret value will be masked, and you won't be able to retrieve it again.

Assign contributor permission to DevOps SPN on Resource Group

Contributor role grants the SPN the necessary permissions to create, manage, and deploy resources within the subscription.

Steps to Assign Contributor Permission to DevOps SPN:

  1. Sign in to the Azure portal:
    • Use an account with owner or user access administrator permissions on the subscription.
  2. Select the Resource Group:
    • Search for and select Resource groups.
    • Choose the specific Resource Group you want to assign the role to.
  3. Access Control (IAM):
    • In the Resource Group's menu, select Access control (IAM).
    • Go to the Role assignments tab.
  4. Add Role Assignment:
    • Click Add and then select Add role assignment from the drop-down menu.
  5. Configure Role Assignment:
    • On the Add role assignment page:
      • Select Contributor from the list of roles.
      • In the Members tab:
        • Choose User, group, or service principal and click + Select members.
        • On the Select members panel, enter the name or ID of the service principal (e.g., spn-devopsconn-iarm-deploy-prd), Click Select.
      • Back on the Members tab, click Next.
  6. Review and Assign:
    • On the Review + assign page, review the settings.
    • Click Review + assign to complete the process.

Once created, please provide the following information to set up secure connectivity to the client's Azure environment:

Sr. NONameValue
1Subscription Id
2Subscription Name
3Service Principal Id (spn-devopsconn-iarm-deploy-prd Client ID)
4Service principal key (spn-devopsconn-iarm-deploy-prd Client Secret)
5Tenant ID

Infrastructure Deployment

Deployment Checklist

The deployment would be performed using Azure Devops CI/CD pipeline using Infrastructure as Code (IaC) templates. But prior to the deployment please confirm the below

  1. Service Principal Permissions: Verify that the Azure DevOps Service Principal (SPN) has been granted Contributor permissions for the resource group.
  2. Naming Conventions: For some of the resources we have restriction with them having globally unique names. So request to please confirm that the naming conventions outlined in the IARM Detailed Design Document can be utilized.
  3. Resource Configuration (SKUs / Pricing tier): Validate the resource configuration outlined in the IARM Detailed Design Document.
  4. Policy Restrictions & Network Configuration: Please share any specific network configurations or policy restrictions you have in place.

Make sure all these criteria are met prior to initiating the deployment.

Post-Infrastructure Deployment

Validate the below activities.

  1. Confirm that all resources have been created and are listed in the Azure portal/Resource group.
  2. Validate that the configurations of resources match the specifications in the IARM Detailed Design Document.
  3. Check the access permissions for each resource to ensure proper security measures are in place.
  4. Review the VNet and IP address ranges to ensure they are set up correctly

Module Configuration

The configuration below should be performed by an authorized user from the consumer cloud team with an Owner role on the subscription.

Configure App Registrations

i-ARM solution requires additional configuration for the App registrations. Please ensure the following resources have been created:

  1. Function Apps
  2. Web App

Adding a Redirect URI to Service Principal

Adding a redirect URI to an Azure Service Principal is essential for securely completing the OAuth 2.0 authentication flow, as it directs users back to the application after successful authentication. It also enhances security by preventing unauthorized redirections and ensuring that only approved applications can receive tokens from Azure AD.

  1. Adding Redirect URL for the Web App (For UI App Registrations)
  2. Adding Redirect URL for the Function App (For API App Registrations)

Add a redirect URL to the App Registration as specified in the table below by following these steps:

App Registration NameAddition Configuration
spn-wapp-iarm-uidirectoryaccess-prdPlatform: Single Page Application URI: Ref: *Pointing to the UI Web App ( iARM portal) created
spn-func-iarm-apiauth-prdPlatform: Web Redirect URIs: Ref: Ref: *Pointing to the My Data & My Disposal function apps created
Adding Redirect URL for the Web App (For UI App Registrations)

Steps to Add redirect URL for Web App:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to App Registrations: Use the search bar to find “App Registrations” and click on it.
  3. Select Your App Registration: Click on the spn-wapp-iarm-uidirectoryaccess-prd app registration.
  4. Go to Authentication: In the left-hand menu, click on Authentication.
  5. Add a Platform: Click on + Add a platform.
  6. Select the Platform Type:For a web app, select Single-page application.

Image

  1. Add the Redirect URI: Enter the redirect URI as https://web-iarm-ui-regionabbr-prd.azurewebsites.net
    • Note: Replace regionabbr with the appropriate region abbreviation for your deployment**.**

Image

  1. Configure and Save: Click on Configure to save your progress.
    • Once configured, you will see a confirmation page.

Image

Adding Redirect URL for the Function App (For API App Registrations)

Steps to Add redirect URL for Function App:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to App Registrations: Use the search bar to find “App Registrations” and click on it.
  3. Select Your App Registration: Click on the spn-func-iarm-apiauth-prd app registration.
  4. Go to Authentication: In the left-hand menu, click on Authentication.
  5. Add a Platform: Click on + Add a platform.
  6. Select the Platform Type:For a function app, select Web.

Image

  1. Add the Redirect URI: Enter the below redirect URI as Ref:
  • Note: Replace regionabbr with the appropriate region abbreviation or Function app name as per your standards for your deployment.
  1. Configure and Save: Click on Configure to save your progress.

Image

    • Once configured, you will see a confirmation page.

Image

  1. Add Additional Redirect URI: Under the Web platform, click onAdd URI.

Image

Key Vault Configuration

Before proceeding with the Key Vault Configuration, it is crucial to gather all necessary information and credentials. This ensures a smooth and secure setup process. Please verify that you have the following details at hand:

  1. Client ID for Service Principals
  2. Client Secret for Service Principals
  3. Tenant ID
  4. Tenant Name
  5. SQL Connection String details
  6. Resource Group Name for the Data Ingestion Storage Account
  7. Subscription ID

Prerequisites: To configure the Key Vault, the user must have at least Contributor access to the Azure Resource or Resource Group, as well as the Key Vault Secrets Officer & Key Vault Certificates Officer roles.

Adding Secret to Key Vault

The iARM Product utilizes Key Vault for securely storing secrets essential to the product's functionality. This ensures that all critical and sensitive information is stored in a secure manner and accessed safely.

Steps to Add Secret to Key Vault:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Key Vault: At the top of the portal, you'll see a search bar. Start typing the name of the Key Vault (kv-iarm-svc-regionabbr-prd) and select it from the results.

Image

  1. Select Secrets: In the left pane, click on Secrets.
  2. Add a New Secret: Click on the + Generate/Import button.

Image

  1. Fill in Secret Details: Provide a name for the secret and its value.
  2. Create: Click Create to add the secret.

Image

  1. Generate All Secrets: Generate all the secrets listed in the table below.
#Key Vault SecretDescription/ SourceAssociated Application
1iarm-sql-miauth-connectionstringSQL MI Auth Connection StringAll
2spn-wj-iarm-di-spn-prd-clientidData Ingestion App Registration Client IDMy Data, Data Ingestion
3spn-func-iarm-graphapi-prd-clientidGraph API App Registration Client IDMy Data, Data Ingestion
4iarm-tenantidID for Azure tenantData Ingestion
5spn-func-iarm-notifications-prd-clientidNotifications App Registration Client IDData Ingestion, My Disposal
6ClientIDKeyClient ID for urclabelsync App RegistrationUniversal Retention Connector
7ClientSecretKeyClient Secret for urclabelsync App RegistrationUniversal Retention Connector
8iarm-urc-impcapi-schedule-idSchedule ID for Iron Mountain APIUniversal Retention Connector
9iarm-urc-impcapi-tenanatidTenant ID for Iron Mountain APIUniversal Retention Connector
10iarm-urc-virgo-passwordPassword for Virgo accountUniversal Retention Connector
11iarm-urc-virgo-accountUsername for Virgo accountUniversal Retention Connector
12iarm-urc-virgoapi-clientidClient ID for Virgo APIUniversal Retention Connector
13iarm-urc-virgoapi-secretClient Secret for Virgo APIUniversal Retention Connector
14iarm-di-resourcegroupnameSecret name for Azure resource group name where Data Ingestion App Storage Account is provisionedData Ingestion
15iarm-di-subscriptionidSecret name for Azure subscription ID where Data Ingestion App Storage Account is provisionedData Ingestion
16spn-func-iarm-prmsync-prd-clientidPRM Sync App Registration Client IDPRM Sync
17spn-func-iarm-prmbulkimport-prd-clientidPRM Bulk App Registration SecretPRM Bulk
18spn-wj-iarm-m365auditsync-prd-clientidM365 Audit Sync App Registration Client IDM365 Audit Sync
19spn-wj-iarm-m365auditsync-prd-clientsecretM365 Audit Sync App Registration SecretM365 Audit Sync
20iarm-tenantdomainName for Azure tenantM365 Audit Sync

Adding Certificate to Key Vault

Note: IARM recommends using a certificate from a Certified Authority (e.g., DigiCert, GlobalSign). The steps below outline creating a self-signed certificate, which can be used in your staging or development environment.

Steps to Add Certificate to Key Vault:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Key Vault: At the top of the portal, you'll see a search bar. Start typing the name of the Key Vault (kv-iarm-svc-regionabbr-prd) and select it from the results.

Image

  1. Select Certificates: In the left pane, click on Certificates.
  2. Add a New Certificate: Click on the + Generate/Import button.

Image

  1. Fill in Certificate Details:
    • Provide a name for the certificate and select Self-Signed as the method.
    • Configure the certificate settings, such as subject name, validity period, and key size.
  2. Create: Click Create to generate the self-signed certificate.
  3. Verify Certificate: Once the certificate is created, verify its details in the Certificates section of the Key Vault.
  4. Downloading Certificate: Download Certificate .crt format
    • Ensure the certificate is saved to a local directory. The Certificate will be used to be added into the App registration.

Image

  1. Create all Certificate: Generate the certificates listed for the Service principals listed in the table below.
#Key Vault CertificateCN/SubjectAssociated Application
1spn-wj-iarm-di-spn-prd-clientcertiarm-di-spn-prd."client domain".comAll
2spn-func-iarm-graphapi-prd-clientcertiarm-graphapi-prd."client domain".comMy Data, Data Ingestion
3spn-func-iarm-notifications-prd-clientcertiarm-notifications-prd."client domain".comMy Data, Data Ingestion
4spn-func-iarm-prmsync-prd-clientcertiarm-prmsync-prd."client domain".comPRM-Sync
5spn-func-iarm-prmbulkimport-prd-clientcertiarm-prmbulkimport-prd."client domain".comPRM-Bulk
6spn-mydisppa-iarm-spoaccess-prd-clientcertiarm-spoaccess-prd."client domain".comMy Disposal
7spn-func-iarm-mydispconnspoaccess-prd-clientcertiarm-mydispconnspoaccess-prd."client domain".comMy Disposal
8spn-func-iarm-prmprovisioning-prd-clientcertiarm-prmprovisioning-prd."client domain".comPRM-SFx
9spn-di-iarm-dropzone-prd-clientcertiarm-dropzone-prd."client domain".comData Ingestion

Adding Certificate to the App Registration

Adding Certificate

  • For adding Certificate, you need to navigate to the “Certificates & Secret”, click on the “Certificates” and click on “Upload certificate”, and select the “Add”.
  • Ensure the Certificate is in .cer format.

Image

  • Once you click "Add" and the process is complete, you'll see a page like the one below, where you can view the thumbprint of the certificate you uploaded.

Image

  • The table below contains information about the certificates that need to be uploaded for the respective App Registrations.
#Associated App RegistrationKey Vault CertificateDescription
1spn-wj-iarm-di-spn-prdspn-wj-iarm-di-spn-prd-clientcertAuthenticates API calls from Data Ingestion Module.
2spn-func-iarm-graphapi-prdspn-func-iarm-graphapi-prd-clientcertAuthenticates Graph API calls.
3spn-func-iarm-notifications-prdspn-func-iarm-notifications-prd-clientcertAuthenticates Graph API calls for sending email notifications.
4spn-func-iarm-prmsync-prdspn-func-iarm-prmsync-prd-clientcertAuthenticates API calls for PRM-Sync Module.
5spn-func-iarm-prmbulkimport-prdspn-func-iarm-prmbulkimport-prd-clientcertAuthenticates Power Automate Flows against KeyVault.
6spn-mydisppa-iarm-spoaccess-prdspn-mydisppa-iarm-spoaccess-prd-clientcertAuthenticates API calls for PRM Module.
7spn-func-iarm-mydispconnspoaccess-prdspn-func-iarm-mydispconnspoaccess-prd-clientcertAuthenticates API calls for M365 Audit Disposal Connector Module.
8spn-func-iarm-prmprovisioning-prdspn-func-iarm-prmprovisioning-prd-clientcertAuthenticates API calls for PRM Module.
9spn-agent-iarm-scannerservice-prdspn-agent-iarm-scannerservice-prd-clientcertAuthenticates i-ARM Scanner agent against KeyVault.
10spn-di-iarm-dropzone-prdspn-di-iarm-dropzone-prd-clientcertAuthenticates API calls from Data Ingestion Module.

Configuration of SQL Database

To execute the script and access the database, it is necessary to add the sg-svc-iarm-sqlentraadministrators-prd Entra ID security group to the SQL Server. This will ensure that members of the Entra ID group have the required access to the database.

Assign Set Admin to the SQL Server

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Search SQL Server Instance: Use the search bar to find sql-iarm-svc-regionabbr-prd Azure SQL Server instance (which is provisioned for iARM Application) and select it.
  3. Go to Settings: In the left navigation pane, click on the Settings section.
  4. Select Microsoft Entra ID: Click on Microsoft Entra ID in the Settings blade.

Image

  1. Set Admin: Click Set admin and provide the sg-svc-iarm-sqlentraadministrators-prd Entra ID Group.
  2. Save Changes: Click Save to set the admin.

Running Database Scripts

  1. Download and Install SQL Server Management Studio (SSMS): If not already installed, download it from here: Microsoft SQL Server Management Studio
  2. Log in to the SQL Database: Use SSMS to log in to the SQL Database via Microsoft Entra MFA Authentication Method.
  3. Execute SQL Scripts: Run the SQL scripts in the i-ARM SQL database in the following order: Note: the scripts will be shared by Infotechtion team
    1. iarm-create-tables-script.sql
    2. iarm-types-script.sql
    3. iarm-function-script.sql
    4. iarm-views-script.sql
      • Note Run iarm-views-script.sql only if iarm-create-tables-script.sql, iarm-types-script.sql and iarm-function-script.sql have been executed successfully.
    5. iarm-triggers-script.sql
      • Note Run iarm-triggers-script.sql only if iarm-views-script.sql has been executed successfully.
    6. iarm-sp-script.sql
      • Note Run iarm-sp-script.sql only if iarm-triggers-script.sql has been executed successfully.
    7. iarm-insert-master-data.sql
      • Note Run iarm-insert-master-data.sql only if iarm-sp-script.sql has been executed successfully.

Run Script for sql-service-principle-access

  1. Add SQL-Auth Service Principal: The SQL-Auth service principal should be added to the SQL DB as an external provider. Run the script below by logging in as an Entra ID user to SQL.
  2. Update App Registration Name: Replace "spn-name" with the actual SQL-Auth App Registration Name in your Tenant. For example, use sg-svc-iarm-sqlentraadministrators-prd.
CREATE USER ["spn-name"] FROM EXTERNAL PROVIDER ALTER ROLE db_datareader ADD MEMBER ["spn-name"] ALTER ROLE db_datawriter ADD MEMBER ["spn-name"] GRANT EXEC TO ["spn-name"]

Run Script for managed-identity-access

  1. Add Managed Identity: For providing SQL DB access to the Managed Identity as an external provider, run the script below by logging in as an Entra ID user to SQL.
  2. Update Identity Name: Replace "identity-name" with the Function App and Web Job name. We have multiple Function Apps, repeat the script for each identity of Funcation App.

Example: For My Data, replace "identity-name" with func-iarm-mydata-regionabbr-prd.

CREATE USER ["identity-name"] FROM EXTERNAL PROVIDER; ALTER ROLE db_datareader ADD MEMBER ["identity-name"]; ALTER ROLE db_datawriter ADD MEMBER ["identity-name"]; GRANT EXEC TO ["identity-name"]; GO

Configure My Data Module

Validate System Assigned Identity for Function App

Steps for to Validate System Assigned Identity for Function App:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find My Data Function App (func-iarm-mydata-regionabbr-prd) and select it.
  3. Go to Identity: In the left-hand menu, click on Identity under the Settings section.
  4. Enable System Assigned Identity: Ensure that the System assigned option is set to On.

Image

Assign roles to managed identity

Prerequisites: For performing role assignment to the managed identity user at least have the User Access Administrator or owner access on Resource.

Steps for to Assign roles to managed identity:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find My Data Function App (func-iarm-mydata-regionabbr-prd) and select it.
  3. Go to Identity: In the left-hand menu, click on Identity under the Settings section.
  4. Click on the Azure Role Assignments Button: Click on the Azure role assignments button.

Image

  1. Add Role Assignment: Click on the Add role assignment button at the top of the page.
  2. Select Scope and Resource:
    • In the Add role assignment pane, select the scope of the resource as Key Vault.
    • Select the resource as the Key Vault used by the iARM Application (e.g., kv-iarm-svc-regionabbr-prd) which is provisioned for storing Certificates & Secrets.
  3. Select Role: Choose the role as Key Vault Secrets User.
  4. Save Changes: Click Save to assign the role to the managed identity of your app service.

Image

  1. Repeat for Additional Scopes, Resources, and Roles: Repeat the process for the following scopes, resources, and roles:
Sr. NoScopeResourceRole
1Key Vaultkv-iarm-svc-regionabbr-prdKey Vault Secrets User
2Key Vaultkv-iarm-svc-regionabbr-prdKey Vault Certificate User
3StoragesaiarmdiappregionabbrprdStorage Blob Data Contributor
4StoragesaiarmdidroperegionabbrprdStorage Blob Data Contributor
5StoragesaiarmdiregregionabbrprdStorage Blob Data Contributor
6StoragesaiarmdinonregregionabbrprdStorage Blob Data Contributor
7StoragesaiarmdiappregionabbrprdStorage Queue Data Contributor

Configure Function Application Authentication

Prerequisites: To configure Function Application authentication, the user must have at least Contributor access to the Azure Resource or Resource Group, as well as the Cloud Application Administrator role, since the secret will be created automatically using this method.

Steps for to Configure Function Application Authentication:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find My Data Function App (func-iarm-mydata-regionabbr-prd) and select it.
  3. Go to Authentication: In the left-hand menu, click on Authentication under the Settings section.
  4. Add Identity Provider: Click on Add identity provider.

Image

  1. Select Microsoft as the Identity Provider:
    • In the Add an identity provider pane, select Microsoft.
    • For App Registrations Type, select Pick an existing app registration in this directory.
    • In the Name or app ID dropdown, select spn-func-iarm-apiauth-prd.
  2. Client Secret Expiration:
    • Select the Client secret expiration period as 730 days (24 months).

Image

  1. Configure Client Requirements:
    • In Client requirement, select Allow requests from specific client applications.
    • In the Allowed client applications field, add the spn-func-iarm-apiauth-prd ClientID.
    • After adding spn-func-iarm-apiauth-prd ClientID, click on Ok, then Add.

Image

  • The below configuration should be visible on your screen.

Image

  1. Configure Token Audiences:
    • Click on Image and add the Allowed token audiences starting with api:// and paste the Application (client) ID after api://.

Image

  • Here, the MICROSOFT_PROVIDER_AUTHENTICATION_SECRET secret value of “Client secret setting name” will be automatically created and configured in the function app environment variables.

Validate Environment Variables in Function App

Prerequisites: To validate app settings, the user must have at least Contributor access to the Azure Resource or Resource Group, as well as the App Configuration Data Reader role to view the environmental variables and their values.

Steps for to Validate Environment Variables in Function App:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find My Data Function App (func-iarm-mydata-regionabbr-prd) and select it.
  3. Go to Environmental Variables: In the left-hand menu, under the Settings section, click on Environmental variables.
  4. Show Values: If required, click on Show values to display the current values of the environmental variables for validation.

Image

  1. Validate the App Settings: Review and validate the app settings listed below.
#App Setting NameDescription / UseSource of Value
1APPLICATIONINSIGHTS_CONNECTION_STRINGConnection string for Azure Application InsightsApplication configuration
2ApplicationInsightsAgent_EXTENSION_VERSIONVersion specification for Application Insights AgentApplication configuration
3AzureWebJobsStorage:accountNameStorage account name for Azure FunctionsApplication configuration
4AzureWebJobsStorage:credentialCredential for Azure Functions storageApplication configuration
5DataIngestionClientCertSecretNameSecret name for the client certificate used in Data IngestionAzure Key Vault
6DataIngestionClientIdSecretNameSecret name for the client ID used in Data IngestionAzure Key Vault
7DropzoneStorageAccountNameName of the dropzone storage accountApplication configuration
8FUNCTIONS_EXTENSION_VERSIONVersion of the Azure Functions runtimeApplication configuration
9FUNCTIONS_WORKER_RUNTIMERuntime environment for Azure FunctionsApplication configuration
10GraphApiClientCertSecretNameMydata App Registration CertificateAzure Key Vault
11GraphApiClientIdSecretNameClient ID of MyData App RegistrationAzure Key Vault
12KeyVaultNameName of the Azure Key VaultApplication configuration
13ManifestFilesContainerNameName of the container for manifest filesApplication configuration
14ManifestStorageAccountNameName of the storage account for the Data Ingestion applicationApplication configuration
15ManifestTemplatesContainerNameName of the container for manifest templatesApplication configuration
16MaxNonRegulatedRetentionDurationMaximum retention duration for non-regulated dataApplication configuration
17MaxRegulatedRetentionDurationMaximum retention duration for regulated dataApplication configuration
18MaxRetentionDurationForPilotMaximum retention duration for pilot dataApplication configuration
19MICROSOFT_PROVIDER_AUTHENTICATION_SECRETSecret for Microsoft provider authenticationApplication configuration
20NonRegulatedDataStorageAccountNameName of the storage account for non-regulated dataApplication configuration
21RegulatedDataStorageAccountNameName of the storage account for regulated dataApplication configuration
22SqlConnectionSecretNameSecret of SQL connection stringAzure Key Vault
23TenantIdSecretNameName for Azure tenantAzure Key Vault
24WEBSITE_AUTH_AAD_ALLOWED_TENANTSAllowed Azure AD tenants for website authenticationApplication configuration
25WEBSITE_CONTENTOVERVNETFlag for website content over Virtual Network (VNET)Application configuration
26WEBSITE_ENABLE_SYNC_UPDATE_SITEFlag to enable sync updates for the websiteApplication configuration
27WEBSITE_PULL_IMAGE_OVER_VNETFlag to enable pulling images over Virtual Network (VNET)Application configuration
28WEBSITE_RUN_FROM_PACKAGEFlag to run the website from a packaged deploymentApplication configuration
29WEBSITE_USE_PLACEHOLDER_DOTNETISOLATEDFlag to use .NET isolated environment placeholdersApplication configuration
30WEBSITE_VNET_ROUTE_ALLFlag to route all traffic over Virtual Network (VNET)Application configuration

Yellow Highlighted app setting key & value will be automatically* added after the Function App authentication is completed.

The client secrets will be automatically created when the function app authentication is configured via “Use an Existing App Registration.”

*If the function app authentication is configured using “Configure an Existing App Registration,” the user needs to create the secret manually in the App Registration. Create an app configuration with the name “MICROSOFT_PROVIDER_AUTHENTICATION_SECRET” in the Azure Function App and map it to the “Client secret setting name” in the function app authentication.

Upload Source Manifest Templates

Prerequisites: To upload Source Manifest Templates, you need to have Storage Blob Data Contributor access over the targeted storage account.

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your Azure account credentials.
  2. Navigate to Storage Accounts: In the search box, type Storage accounts and select it from the results.
  3. Select the Blob Container: From the list of storage accounts, select the blob container that we have provisioned for Data Ingestion app storage (saiarmdiappregionabbrprd).
  4. Go to Container: On the storage account page, in the left menu under Data Explorer, select Container.
  5. Select Blob Container: On the blobs page, select the container-iarm-manifest-templates-regionabbr-prd blob container there we have to upload files.
  6. Upload Files:
    • On the blob container page, click on the Upload button at the top.
    • On the upload blob page, click on the Folder icon to browse and select the folder iarm-manifest-templates. Alternatively, you can drag and drop all the files of the folder to the upload blob page.
  7. Start Upload: After selecting the folder, click on the Upload button at the bottom.
  8. Monitor Upload Progress: Wait for the upload process to be completed. You can monitor the progress and status of the upload on the upload blob page.
  9. Verify Upload: Once the upload is done, you can see the uploaded files on the blob container page.

Configure My Disposal Dashboard Module

Validate System Assigned Identity for Function App

Steps for to Validate System Assigned Identity for Function App:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find My Disposal Function App (func-iarm-mydisp-regionabbr-prd) and select it.
  3. Go to Identity: In the left-hand menu, click on Identity under the Settings section.
  4. Enable System Assigned Identity: Ensure that the System assigned option is set to On.

Image

Assign roles to managed identity.

Prerequisites: For performing role assignment to the managed identity user at least have the User Access Administrator or owner access on Resource.

Steps for to Assign roles to managed identity:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find My Disposal Function App (func-iarm-mydisp-regionabbr-prd) and select it.
  3. Go to Identity: In the left-hand menu, click on Identity under the Settings section.
  4. Click on the Azure Role Assignments Button: Click on the Azure role assignments button.

Image

  1. Add Role Assignment: Click on the Add role assignment button at the top of the page.
  2. Select Scope and Resource:
    • In the Add role assignment pane, select the scope of the resource as Key Vault.
    • Select the resource as the Key Vault used by the iARM Application (e.g., kv-iarm-svc-regionabbr-prd) which is provisioned for storing Certificates & Secrets.
  3. Select Role: Choose the role as Key Vault Secrets User.
  4. Save Changes: Click Save to assign the role to the managed identity of your app service.

Image

  1. Repeat for Additional Scopes, Resources, and Roles: Repeat the process for the following scopes, resources, and roles:
Sr. NoScopeResourceRole
1Key Vaultkv-iarm-svc-regionabbr-prdKey Vault Secrets User
2Key Vaultkv-iarm-svc-regionabbr-prdKey Vault Certificate User
3StoragesaiarmmydispregionabbrprdStorage Blob Data Contributor

Configure Function Application Authentication

Prerequisites: To configure Function Application authentication, the user must have at least Contributor access to the Azure Resource or Resource Group, as well as the Cloud Application Administrator role, since the secret will be created automatically using this method.

Steps for to Configure Function Application Authentication:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find My Disposal Function App (func-iarm-mydisp-regionabbr-prd) and select it.
  3. Go to Authentication: In the left-hand menu, click on Authentication under the Settings section.
  4. Add Identity Provider: Click on Add identity provider.

Image

  1. Select Microsoft as the Identity Provider:
    • In the Add an identity provider pane, select Microsoft.
    • For App Registrations Type, select Pick an existing app registration in this directory.
    • In the Name or app ID dropdown, select spn-func-iarm-apiauth-prd.
  2. Client Secret Expiration:
    • Select the Client secret expiration period as 730 days (24 months).

Image

  1. Configure Client Requirements:
    • In Client requirement, select Allow requests from specific client applications.
    • In the Allowed client applications field, add the spn-func-iarm-apiauth-prd ClientID.
    • After adding spn-func-iarm-apiauth-prd ClientID, click on Ok, then Add.

Image

  • The below configuration should be visible on your screen.

Image

  1. Configure Token Audiences:
  • Click on Image and add the Allowed token audiences starting with api:// and paste the Application (client) ID after api://.

Image

  • Here, the MICROSOFT_PROVIDER_AUTHENTICATION_SECRET secret value of “Client secret setting name” will be automatically created and configured in the function app environment variables.

Validate Environment Variables in Function App

Prerequisites: To validate app settings, the user must have at least Contributor access to the Azure Resource or Resource Group, as well as the App Configuration Data Reader role to view the environmental variables and their values.

Steps for to Validate Environment Variables in Function App:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find find My Disposal Function App (func-iarm-mydisp-regionabbr-prd) and select it.
  3. Go to Environmental Variables: In the left-hand menu, under the Settings section, click on Environmental variables.
  4. Show Values: If required, click on Show values to display the current values of the environmental variables for validation.

Image

  1. Validate the App Settings: Review and validate the app settings listed below.
#App Setting NameDescription / UseSource of Value
1AdaptiveCardLogoURL or path to the logo in adaptive cards in Base64 FormateApplication configuration
2AdaptiveCardWarningIconURL or path to the warning icon in adaptive cards in Base64 FormateApplication configuration
3ApiUrlBase URL for the APIApplication configuration
4APPLICATIONINSIGHTS_CONNECTION_STRINGConnection string for Azure Application InsightsApplication configuration
5ApplicationInsightsAgent_EXTENSION_VERSIONVersion specification for Application Insights AgentApplication configuration
6AzureWebJobsStorage:accountNameStorage account name for Azure FunctionsApplication configuration
7AzureWebJobsStorage:credentialCredential for Azure Functions storageApplication configuration
8ConfirmAllDisposalUrlURL to confirm all disposal actionsApplication configuration
9DebugReviewerEmailEmail for debugging reviewer-related issues ( Infotechtion Team ID)Application configuration
10DispositionNotificationAdminEmailAdmin email for disposition notificationsApplication configuration
11DispositionNotificationAdminNameAdmin name for disposition notificationsApplication configuration
12DispositionNotificationDebugModeEnable/disable debug mode for disposition notificationsApplication configuration
13DispositionNotificationUpdateReviewerNotificationDateDate for updating reviewer notificationsApplication configuration
14EnableEmailNotificationFlag to enable/disable email notificationsApplication configuration
15FUNCTIONS_EXTENSION_VERSIONVersion of the Azure Functions runtimeApplication configuration
16FUNCTIONS_WORKER_RUNTIMERuntime environment for Azure FunctionsApplication configuration
17GraphApiClientCertSecretNameMydata App Registration Certificate ThumbprintAzure Key Vault
18GraphApiClientIdSecretNameClient ID of MyData App RegistrationAzure Key Vault
19KeyVaultNameName of the Azure Key VaultApplication configuration
20MICROSOFT_PROVIDER_AUTHENTICATION_SECRETSecret for Microsoft provider authenticationApplication configuration
21NotificationsClientCertKeyClient certificate key for notifications serviceAzure Key Vault
22NotificationsClientIdKeyClient ID for notifications serviceAzure Key Vault
23OriginatorIdIdentifier for the originator of the actionApplication configuration
24ReviewDisposalRelativeUrlRelative URL for review disposalApplication configuration
25SendDispositionActionScheduleSchedule for sending disposition actions or notificationsApplication configuration
26SiteUrlBase URL of the website or applicationApplication configuration
27SqlConnectionSecretNameSecret of SQL connection stringAzure Key Vault
28TenantIdSecretNameName for Azure tenantAzure Key Vault
29UseHtmlBodyFlag to use HTML for email bodies or notificationsApplication configuration
30WEBSITE_AUTH_AAD_ALLOWED_TENANTSAllowed Azure AD tenants for website authenticationApplication configuration
31WEBSITE_CONTENTOVERVNETFlag for website content over Virtual Network (VNET)Application configuration
32WEBSITE_ENABLE_SYNC_UPDATE_SITEFlag to enable sync updates for the websiteApplication configuration
33WEBSITE_PULL_IMAGE_OVER_VNETFlag to enable pulling images over Virtual Network (VNET)Application configuration
34WEBSITE_RUN_FROM_PACKAGEFlag to run the website from a packaged deploymentApplication configuration
35WEBSITE_USE_PLACEHOLDER_DOTNETISOLATEDFlag to use .NET isolated environment placeholdersApplication configuration
36WEBSITE_VNET_ROUTE_ALLFlag to route all traffic over Virtual Network (VNET)Application configuration

Yellow Highlighted app setting key & value will be automatically* added after the Function App authentication is completed.

The client secrets will be automatically created when the function app authentication is configured via “Use an Existing App Registration.”

*If the function app authentication is configured using “Configure an Existing App Registration,” the user needs to create the secret manually in the App Registration. Create an app configuration with the name “MICROSOFT_PROVIDER_AUTHENTICATION_SECRET” in the Azure Function App and map it to the “Client secret setting name” in the function app authentication.

Configure Data Ingestion Module

Validate System Assigned Identity for Web App

Steps for to Validate System Assigned Identity for Web App:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Web App: Use the search bar to find Data Ingestion Web Job (wj-iarm-di-regionabbr-prd) and select it.
  3. Go to Identity: In the left-hand menu, click on Identity under the Settings section.
  4. Enable System Assigned Identity: Ensure that the System assigned option is set to On.

Image

Assign roles to managed identity

Prerequisites: For performing role assignment to the managed identity user at least have the User Access Administrator or owner access on Resource.

Steps for to Assign roles to managed identity:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Web App: Use the search bar to find Data Ingestion Web Job (wj-iarm-di-regionabbr-prd) and select it.
  3. Go to Identity: In the left-hand menu, click on Identity under the Settings section.
  4. Click on the Azure Role Assignments Button: Click on the Azure role assignments button.

Image

  1. Add Role Assignment: Click on the Add role assignment button at the top of the page.
  2. Select Scope and Resource:
    • In the Add role assignment pane, select the scope of the resource as Key Vault.
    • Select the resource as the Key Vault used by the iARM Application (e.g., kv-iarm-svc-regionabbr-prd) which is provisioned for storing Certificates & Secrets.
  3. Select Role: Choose the role as Key Vault Secrets User.
  4. Save Changes: Click Save to assign the role to the managed identity of your app service.

Image

  1. Repeat for Additional Scopes, Resources, and Roles: Repeat the process for the following scopes, resources, and roles:
Sr. NoScopeResourceRole
1Key Vaultkv-iarm-svc-regionabbr-prdKey Vault Secrets User
2Key Vaultkv-iarm-svc-regionabbr-prdKey Vault Certificate User
3StoragesaiarmdiappregionabbrprdStorage Blob Data Contributor
4StoragesaiarmdidroperegionabbrprdStorage Blob Data Contributor
5StoragesaiarmdiregregionabbrprdStorage Blob Data Contributor
6StoragesaiarmdinonregregionabbrprdStorage Blob Data Contributor
7StoragesaiarmdiappregionabbrprdStorage Queue Data Contributor

Validate Environment Variables in Web App

Prerequisites: To validate app settings, the user must have at least Contributor access to the Azure Resource or Resource Group, as well as the App Configuration Data Reader role to view the environmental variables and their values.

Steps for to Validate Environment Variables in Function App:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Web App: Use the search bar to find Data Ingestion Web Job (wj-iarm-di-regionabbr-prd) and select it.
  3. Go to Environmental Variables: In the left-hand menu, under the Settings section, click on Environmental variables.
  4. Show Values: If required, click on Show values to display the current values of the environmental variables for validation.

Image

  1. Validate the App Settings: Review and validate the app settings listed below.
#App Setting NameDescription / UseSource of Value
1APPLICATIONINSIGHTS_CONNECTION_STRINGConnection string for Azure Application InsightsApplication configuration
2ApplicationInsightsAgent_EXTENSION_VERSIONVersion specification for Application Insights AgentApplication configuration
3ApplyLockOnPolicyForRegulatedRecordsFlag or setting related to policy enforcementApplication configuration
4AppStorageAccountNameName of the storage account for the Data Ingestion applicationApplication configuration
5AzureWebJobsStorage:accountNameStorage account name for Azure App ServiceApplication configuration
6AzureWebJobsStorage:credentialCredential for Azure App Service storageApplication configuration
7ConnectedSourceQueueNameName of the queue for connected sourcesApplication configuration
8DataIngestionClientCertSecretNameData Ingestion App Registration Certificate ThumbprintAzure Key Vault
9DataIngestionClientIdSecretNameClient ID of Data Ingestion App RegistrationAzure Key Vault
10DataIngestionUserEmailEmail address of data ingestion userApplication configuration
11DataIngestionUserNameUsername for data ingestionApplication configuration
12DefaultIncrementalScanDurationDuration setting for incremental data scansApplication configuration
13DropzoneStorageAccountNameName of the dropzone storage accountApplication configuration
14KeyVaultNameName of the Azure Key VaultApplication configuration
15ManagedSourceQueueNameName of the queue for managed sourcesApplication configuration
16NonRegulatedDataStorageAccountNameName of the storage account for non-regulated dataApplication configuration
17NotificationsClientCertSecretNameNotifications Client App Registration Certificate ThumbprintAzure Key Vault
18NotificationsClientIdSecretNameClient ID of Data Ingestion App RegistrationAzure Key Vault
19NotificationsQueueNameName of the queue for notificationsApplication configuration
20RegulatedDataStorageAccountNameName of the storage account for regulated dataApplication configuration
21ResourceGroupNameSecretNameSecret name for Azure resource group nameAzure Key Vault
22SqlConnectionSecretNameSecret of SQL connection stringAzure Key Vault
23SubscriptionIdSecretNameSecret name for Azure subscription IDAzure Key Vault
24TenantIdSecretNameName for Azure tenantAzure Key Vault
25WEBSITE_CONTENTOVERVNETFlag or setting related to website content over VNETApplication configuration
26WEBSITE_ENABLE_SYNC_UPDATE_SITEFlag to enable sync updates for the websiteApplication configuration
27WEBSITE_PULL_IMAGE_OVER_VNETFlag or setting related to pulling images over VNETApplication configuration
28WEBSITE_RUN_FROM_PACKAGEFlag or setting related to running from a packageApplication configuration
29WEBSITE_USE_PLACEHOLDER_DOTNETISOLATEDFlag to use .NET isolated environment placeholdersApplication configuration
30WEBSITE_VNET_ROUTE_ALLFlag or setting related to routing all traffic over VNETApplication configuration

Assign roles to App Registrations

Assign select Storage Account Contributor to App Registrations

We need to grant the Storage Account Contributor role to spn-wj-iarm-di-spn-prd service principal (SPN) for regulated and non-regulated repository storage accounts.

  1. Log in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Storage Account: Use the search bar to find regulated storage account (saiarmdiregregionabbrprd) and select it.
  3. Go to Access Control (IAM): In the left-hand menu under the Settings section, click on Access control (IAM).
  4. Add Role Assignment: Click on the + Add button and select Add role assignment.
  5. Select Role: In the Role dropdown, select Storage Account Contributor.
  6. Assign Access: In the Assign access to dropdown, select Azure AD user, group, or service principal.
  7. Select SPN: Click on the Select button and search for the name of the SPN spn-wj-iarm-di-spn-prd.
  8. Save Changes: Click on the Save button to assign the role to the SPN.
  9. Repeat for Non-Regulated Storage Account: Repeat steps 1 to 8 for the Non-regulated storage account (saiarmdinonregregionabbrprd) .
Assign select Storage Blob Data Contributor to App Registrations

We need to grant the Storage Blob Data Contributor role to the spn-di-iarm-dropzone-prd SPN for the Dropzone repository storage account.

  1. Log in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Storage Account: Use the search bar to find Dropzone storage account (saiarmdidroperegionabbrprd) and select it.
  3. Go to Access Control (IAM): In the left-hand menu under the Settings section, click on Access control (IAM).
  4. Add Role Assignment: Click on the + Add button and select Add role assignment.
  5. Select Role: In the Role dropdown, select Storage Blob Data Contributor.
  6. Assign Access: In the Assign access to dropdown, select Azure AD user, group, or service principal.
  7. Select SPN:Click on the Select button and search for the name of the SPN spn-di-iarm-dropzone-prd.
  8. Save Changes: Click on the Save button to assign the role to the SPN.

Upload Source Manifest Templates

The Source Manifest template should be uploaded in the My data section. Please proceed to this step only if the Source manifest Template is not available in the Storage Account

Prerequisites: To upload Source Manifest Templates, you need to have Storage Blob Data Contributor access over the targeted storage account.

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your Azure account credentials.
  2. Navigate to Storage Accounts: In the search box, type Storage accounts and select it from the results.
  3. Select the Blob Container: From the list of storage accounts, select the blob container that we have provisioned for Data Ingestion app storage (saiarmdiappregionabbrprd).
  4. Go to Container: On the storage account page, in the left menu under Data Explorer, select Container.
  5. Select Blob Container: On the blobs page, select the container-iarm-manifest-templates-regionabbr-prd blob container there we have to upload files.
  6. Upload Files:
    • On the blob container page, click on the Upload button at the top.
    • On the upload blob page, click on the Folder icon to browse and select the folder iarm-manifest-templates. Alternatively, you can drag and drop all the files of the folder to the upload blob page.
  7. Start Upload: After selecting the folder, click on the Upload button at the bottom.
  8. Monitor Upload Progress: Wait for the upload process to be completed. You can monitor the progress and status of the upload on the upload blob page.
  9. Verify Upload: Once the upload is done, you can see the uploaded files on the blob container page.

Configure URC Module

Validate System Assigned Identity for Function App

Steps for to Validate System Assigned Identity for Function App:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find URC Function App (func-iarm-urc-regionabbr-prd) and select it.
  3. Go to Identity: In the left-hand menu, click on Identity under the Settings section.
  4. Enable System Assigned Identity: Ensure that the System assigned option is set to On.

Image

Assign roles to managed identity.

Prerequisites: For performing role assignment to the managed identity user at least have the User Access Administrator or owner access on Resource.

Steps for to Assign roles to managed identity:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find URC Function App (func-iarm-urc-regionabbr-prd) and select it.
  3. Go to Identity: In the left-hand menu, click on Identity under the Settings section.
  4. Click on the Azure Role Assignments Button: Click on the Azure role assignments button.

Image

  1. Add Role Assignment: Click on the Add role assignment button at the top of the page.
  2. Select Scope and Resource:
    • In the Add role assignment pane, select the scope of the resource as Key Vault.
    • Select the resource as the Key Vault used by the iARM Application (e.g., kv-iarm-svc-regionabbr-prd) which is provisioned for storing Certificates & Secrets.
  3. Select Role: Choose the role as Key Vault Secrets User.
  4. Save Changes: Click Save to assign the role to the managed identity of your app service.

Image

  1. Repeat for Additional Scopes, Resources, and Roles: Repeat the process for the following scopes, resources, and roles:
Sr. NoScopeResourceRole
1Key Vaultkv-iarm-svc-regionabbr-prdKey Vault Secrets User
2Key Vaultkv-iarm-svc-regionabbr-prdKey Vault Certificate User
3StoragesaiarmurcregionabbrprdStorage Blob Data Contributor

Validate Environment Variables in Function App

Prerequisites: To validate app settings, the user must have at least Contributor access to the Azure Resource or Resource Group, as well as the App Configuration Data Reader role to view the environmental variables and their values.

Steps for to Validate Environment Variables in Function App:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find find URC Function App (func-iarm-urc-regionabbr-prd) and select it.
  3. Go to Environmental Variables: In the left-hand menu, under the Settings section, click on Environmental variables.
  4. Show Values: If required, click on Show values to display the current values of the environmental variables for validation.

Image

  1. Validate the App Settings: Review and validate the app settings listed below.
#App Setting NameDescription / UseSource of Value
1APPLICATIONINSIGHTS_CONNECTION_STRINGConnection string for Azure Application InsightsApplication configuration
2ApplicationInsightsAgent_EXTENSION_VERSIONVersion specification for Application Insights AgentApplication configuration
3AzureWebJobsStorage:accountNameStorage account name for Azure FunctionsApplication configuration
4AzureWebJobsStorage:credentialCredential for Azure Functions storageApplication configuration
5baseUriBase URI for Virgo APIAzure Key Vault
6baseUriIMBase URI for Iron Mountain APIAzure Key Vault
7CertificateName ( Optional)Name of the certificate stored in the Azure Key VaultAzure Key Vault
8ClientIDKeyClient ID for Microsoft 365 credentialsAzure Key Vault
9ClientSecretKeyClient Secret for Microsoft 365 credentialsAzure Key Vault
10CompliantToPurviewScheduleCron schedule for the CompliantToPurview functionApplication configuration
11CreateRetentionLabelScheduleCron schedule for the CreateRetentionLabel functionApplication configuration
12DispositionActionDisposition actions for retention labelsApplication configuration
13EnableCreateRetentionLabelApplication configuration
14EnableSyncEventTypesApplication configuration
15EnableSyncFromThirdPartySourceApplication configuration
16EnableSyncRetentionLabelApplication configuration
17EnableUpdateRetentionLabelApplication configuration
15FUNCTIONS_EXTENSION_VERSIONVersion of the Azure Functions runtimeApplication configuration
18FUNCTIONS_WORKER_RUNTIMESpecifies the runtime for Azure Functions (e.g., dotnet-isolated)Application configuration
19GetSourceRetentionLabelsScheduleCron schedule for the GetSourceRetentionLabels functionApplication configuration
20IMClientIDClient ID for Iron Mountain APIAzure Key Vault
21IMClientSecClient Secret for Iron Mountain APIAzure Key Vault
22IMpurview_retentionTriggerRetention triggers for Iron Mountain to Purview mappingsApplication configuration
23IMPurviewMappingsMappings for Iron Mountain to PurviewApplication configuration
24IMScheduleIDSchedule ID for Iron Mountain APIAzure Key Vault
25IMTenantIDTenant ID for Iron Mountain APIAzure Key Vault
26KeyVaultNameName of the Azure Key VaultApplication configuration
27RetentionLabelCodeListList of retention label codesApplication configuration
28ReviewerEmailAddressEmail address of the reviewer, creating the labels with reviweres detailsApplication configuration
29rulesJSON object containing additional rulesApplication configuration
30SqlConnectionStringKeyConnection string for the SQL databaseAzure Key Vault
31SyncEventTypesApplication configuration
32SyncRetentionLabelApplication configuration
33TenantIDTenant ID for Microsoft 365 credentialsAzure Key Vault
34thirdPartySourceSpecifies the third-party source to connect to (IronMountain or Virgo)Application configuration
35UpdateRetentionLabelScheduleCron schedule for the UpdateRetentionLabel functionApplication configuration
36VirgoAccountPasswordPassword for Virgo accountAzure Key Vault
37VirgoAccountUsernameUsername for Virgo accountAzure Key Vault
38VirgoclientIDClient ID for Virgo APIAzure Key Vault
39VirgoClientsecretClient Secret for Virgo APIAzure Key Vault
40Virgopurview_retentionTriggerRetention triggers for Virgo to Purview mappingsApplication configuration
41WEBSITE_CONTENTOVERVNETFlag for website content over Virtual Network (VNET)Application configuration
42WEBSITE_ENABLE_SYNC_UPDATE_SITEFlag to enable sync updates for the websiteApplication configuration
43WEBSITE_ENABLE_SYNC_UPDATE_SITEFlag to enable pulling images over Virtual Network (VNET)Application configuration
44WEBSITE_RUN_FROM_PACKAGEFlag to run the website from a packaged deploymentApplication configuration
45WEBSITE_USE_PLACEHOLDER_DOTNETISOLATEDFlag to use .NET isolated environment placeholdersApplication configuration
46WEBSITE_VNET_ROUTE_ALLFlag to route all traffic over Virtual Network (VNET)Application configuration

Configure PRM Bulk Module

Validate System Assigned Identity for Function App

Steps for to Validate System Assigned Identity for Function App:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find PRM Bulk Function App (func-iarm-prmbulk-regionabbr-prd) and select it.
  3. Go to Identity: In the left-hand menu, click on Identity under the Settings section.
  4. Enable System Assigned Identity: Ensure that the System assigned option is set to On.

Image

Assign roles to managed identity

Prerequisites: For performing role assignment to the managed identity user at least have the User Access Administrator or owner access on Resource.

Steps for to Assign roles to managed identity:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find PRM Bulk Function App (func-iarm-prmbulk-regionabbr-prd) and select it.
  3. Go to Identity: In the left-hand menu, click on Identity under the Settings section.
  4. Click on the Azure Role Assignments Button: Click on the Azure role assignments button.

Image

  1. Add Role Assignment: Click on the Add role assignment button at the top of the page.
  2. Select Scope and Resource:
    • In the Add role assignment pane, select the scope of the resource as Key Vault.
    • Select the resource as the Key Vault used by the iARM Application (e.g., kv-iarm-svc-regionabbr-prd) which is provisioned for storing Certificates & Secrets.
  3. Select Role: Choose the role as Key Vault Secrets User.
  4. Save Changes: Click Save to assign the role to the managed identity of your app service.

Image

  1. Repeat for Additional Scopes, Resources, and Roles: Repeat the process for the following scopes, resources, and roles:
Sr. NoScopeResourceRole
1Key Vaultkv-iarm-svc-regionabbr-prdKey Vault Secrets User
2Key Vaultkv-iarm-svc-regionabbr-prdKey Vault Certificate User
3StoragesaiarmprmbulkregionabbrprdStorage Blob Data Contributor
4StoragesaiarmprmbulkregionabbrprdStorge Table Data Contributor
5StoragesaiarmprmbulkregionabbrprdStorge Queue Data Contributor

Validate Environment Variables in Function App

Prerequisites: To validate app settings, the user must have at least Contributor access to the Azure Resource or Resource Group, as well as the App Configuration Data Reader role to view the environmental variables and their values.

Steps for to Validate Environment Variables in Function App:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find find PRM Bulk Function App (func-iarm-prmbulk-regionabbr-prd) and select it.
  3. Go to Environmental Variables: In the left-hand menu, under the Settings section, click on Environmental variables.
  4. Show Values: If required, click on Show values to display the current values of the environmental variables for validation.

Image

  1. Validate the App Settings: Review and validate the app settings listed below.
#App Setting NameDescription / UseSource of Value
1APPLICATIONINSIGHTS_CONNECTION_STRINGConnection string for Azure Application InsightsApplication configuration
2ApplicationInsightsAgent_EXTENSION_VERSIONVersion specification for Application Insights AgentApplication configuration
3ArchiveBoxListNameName of the archive box listApplication configuration
4AzureWebJobsStorage:accountNameStorage account name for Azure App ServiceApplication configuration
5AzureWebJobsStorage:credentialCredential for Azure App Service storageApplication configuration
6BulkPhysicalRecordListPrefixPrefix for bulk physical recordsApplication configuration
7CountryTermSetIdID for the country term setApplication configuration
8ExcelInputRequiredFieldsRequired fields for Excel inputApplication configuration
9FunctionHostURLURL of the deployed Azure App Service or websiteApplication configuration
10FUNCTIONS_EXTENSION_VERSIONVersion of the Azure Functions runtimeApplication configuration
11FUNCTIONS_WORKER_RUNTIMERuntime environment for Azure Functions.Application configuration
12HomeLocationTermSetIdID for the home location term setApplication configuration
13iarm-prm-spn-dev-ClientCertNameName of the client certificate for the service principalAzure Key Vault
14iarm-prm-spn-dev-ClientIDSecretNameName of the client ID secret for the service principalAzure Key Vault
15ImportBatchCountNumber of records to import in a batchApplication configuration
16IndexColumnNamesNames of the index columnsApplication configuration
17KeyvaultNameName of the Azure Key VaultApplication configuration
18LanguageTermSetIdID for the language term setApplication configuration
19LegalTermSetIdID for the legal term setApplication configuration
20ListItemThresholdValueThreshold value for list itemsApplication configuration
21MediaTermSetIdID for the media term setApplication configuration
22PhysicalRecordContentTypeIdID for the physical record content typeApplication configuration
23PhysicalRecordContentTypeNameName of the physical record content typeApplication configuration
24PhysicalRecordListNameName of the physical record listApplication configuration
25PRMBulkImportAdminSiteURLURL of the SharePoint site where PRM SPFx is deployedApplication configuration
26PRMBulkImportLogsListNameName of the bulk import logs listApplication configuration
27PRMBulkImportQueueListNameName of the bulk import queue listApplication configuration
28PRMBulkPhysicalRecordListNameName of the bulk physical record listApplication configuration
29SecurityTermSetIdID for the security term setApplication configuration
30SiteURLURL of the SharePoint siteApplication configuration
31TenantIdSecretNameName of the secret for the tenant ID in Key VaultAzure Key Vault
32ValidationBatchCountNumber of records to validate in a batchApplication configuration
33WEBSITE_CONTENTOVERVNETFlag for website content over Virtual Network (VNET)Application configuration
34WEBSITE_ENABLE_SYNC_UPDATE_SITEFlag to enable sync updates for the websiteApplication configuration
35WEBSITE_PULL_IMAGE_OVER_VNETFlag to enable pulling images over Virtual Network (VNET)Application configuration
36WEBSITE_RUN_FROM_PACKAGEFlag to run the website from a packaged deploymentApplication configuration
37WEBSITE_USE_PLACEHOLDER_DOTNETISOLATEDFlag to use .NET isolated environment placeholdersApplication configuration
38WEBSITE_VNET_ROUTE_ALLFlag to route all traffic over Virtual Network (VNET)Application configuration

Configure PRM Sync Module

Validate System Assigned Identity for Function App

Steps for to Validate System Assigned Identity for Function App:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find PRM Sync Function App (func-iarm-prmsync-regionabbr-prd) and select it.
  3. Go to Identity: In the left-hand menu, click on Identity under the Settings section.
  4. Enable System Assigned Identity: Ensure that the System assigned option is set to On.

Image

Assign roles to managed identity

Prerequisites: For performing role assignment to the managed identity user at least have the User Access Administrator or owner access on Resource.

Steps for to Assign roles to managed identity:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find find PRM Sync Function App (func-iarm-prmsync-regionabbr-prd) and select it.
  3. Go to Identity: In the left-hand menu, click on Identity under the Settings section.
  4. Click on the Azure Role Assignments Button: Click on the Azure role assignments button.

Image

  1. Add Role Assignment: Click on the Add role assignment button at the top of the page.
  2. Select Scope and Resource:
    • In the Add role assignment pane, select the scope of the resource as Key Vault.
    • Select the resource as the Key Vault used by the iARM Application (e.g., kv-iarm-svc-regionabbr-prd) which is provisioned for storing Certificates & Secrets.
  3. Select Role: Choose the role as Key Vault Secrets User.
  4. Save Changes: Click Save to assign the role to the managed identity of your app service.

Image

  1. Repeat for Additional Scopes, Resources, and Roles: Repeat the process for the following scopes, resources, and roles:
Sr. NoScopeResourceRole
1Key Vaultkv-iarm-svc-regionabbr-prdKey Vault Secrets User
2Key Vaultkv-iarm-svc-regionabbr-prdKey Vault Certificate User
3StoragesaiarmprmsyncregionabbrprdStorage Blob Data Contributor

Validate Environment Variables in Function App

Prerequisites: To validate app settings, the user must have at least Contributor access to the Azure Resource or Resource Group, as well as the App Configuration Data Reader role to view the environmental variables and their values.

Steps for to Validate Environment Variables in Function App:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find PRM Sync Function App (func-iarm-prmsync-regionabbr-prd) and select it.
  3. Go to Environmental Variables: In the left-hand menu, under the Settings section, click on Environmental variables.
  4. Show Values: If required, click on Show values to display the current values of the environmental variables for validation.

Image

  1. Validate the App Settings: Review and validate the app settings listed below.
#App Setting NameDescription / UseSource of Value
1APPLICATIONINSIGHTS_CONNECTION_STRINGConnection string for Application Insights to send telemetry data.Application configuration
2ApplicationInsightsAgent_EXTENSION_VERSIONSpecifies the version of the Application Insights Agent to use.Application configuration
3AzureWebJobsStorage:accountNameThe name of the storage account used by Azure WebJobs.Application configuration
4AzureWebJobsStorage:credentialCredential type for Azure WebJobs storage (e.g., managed identity).Application configuration
5BarcodeItemKeysKeys used to identify barcode items.Application configuration
6CheckForListContentTypeKeyKey to check for specific list content types.Application configuration
7DisposalDetailsMappingMapping details for disposal processes.Application configuration
8FetchPartialRecordsFromSiteFetches partial records from a specified site.Application configuration
9FetchPhysicalRecordsFromSiteFetches physical records from a specified site.Application configuration
10FetchPrmFromSpAppNameKeyFetches parameters from a SharePoint application by name.Application configuration
11FUNCTIONS_EXTENSION_VERSIONVersion of the Azure Functions runtimeApplication configuration
12FUNCTIONS_WORKER_RUNTIMESpecifies the runtime for Azure Functions.Application configuration
13KeyVaultNameThe name of the Azure Key Vault.Application configuration
14ListContentTypesToScanKeyKey for listing content types to scan.Application configuration
15ListsToSkipFromScanLists that should be skipped during a scan.Application configuration
16PhysicalSitePageNameThe name of the physical site page.Application configuration
17PrmClientCertSecretNameThe name of the secret for the client certificate in Key Vault.Azure Key Vault
18PrmClientIdSecretNameThe name of the secret for the client ID in Key Vault.Azure Key Vault
19SharePointBaseUrlThe base URL for the SharePoint site.Application configuration
20SharePointPageSizeKeyKey for the page size setting in SharePoint.Application configuration
21SharePointRecordTypeThe type of records in SharePoint.Application configuration
22SharepointSitesList of SharePoint sites.Application configuration
23SharePointSyncStatusStatus of the synchronization with SharePoint.Application configuration
24SqlConnectionSecretNameThe name of the secret for the SQL connection string in Key Vault.Azure Key Vault
25StatusesToSyncKeySpecifies the statuses to syncApplication configuration
26SyncingReadyForDisposalRecordsToSharePointCron schedule for syncing ready-for-disposal records to SharePointApplication configuration
27SyncingStageDetailsToDisposalDetailsSyncs stage details to disposal details.Application configuration
28SyncReadyForDisposalPageSizeKeyPage size for syncing ready-for-disposal recordsApplication configuration
29TenantIdSecretNameThe name of the secret for the tenant ID in Key Vault.Azure Key Vault
30UnsyncedStageRecordsPageSizePage size for unsynced stage records.Application configuration
31WEBSITE_CONTENTOVERVNETEnables content over VNET for the website.Application configuration
32WEBSITE_ENABLE_SYNC_UPDATE_SITEEnables sync update for the website.Application configuration
33WEBSITE_PULL_IMAGE_OVER_VNETPulls the website image over VNET.Application configuration
34WEBSITE_RUN_FROM_PACKAGERuns the website from a package.Application configuration
35WEBSITE_USE_PLACEHOLDER_DOTNETISOLATEDUses placeholder for .NET isolated process.Application configuration
36WEBSITE_VNET_ROUTE_ALLRoutes all traffic through VNET for the websiteApplication configuration

Configure M365Audit Sync Module

Validate System Assigned Identity for for Web App

Steps for to Validate System Assigned Identity for Function App:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Web App: Use the search bar to find M365Adit Sync Web Job (wj-iarm-m365auditsync-regionabbr-prd) and select it.
  3. Go to Identity: In the left-hand menu, click on Identity under the Settings section.
  4. Enable System Assigned Identity: Ensure that the System assigned option is set to On.

Image

Assign roles to managed identity

Prerequisites: For performing role assignment to the managed identity user at least have the User Access Administrator or owner access on Resource.

Steps for to Assign roles to managed identity:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Web App: Use the search bar to find M365Adit Sync Web Job (wj-iarm-m365auditsync-regionabbr-prd) and select it.
  3. Go to Identity: In the left-hand menu, click on Identity under the Settings section.
  4. Click on the Azure Role Assignments Button: Click on the Azure role assignments button.

Image

  1. Add Role Assignment: Click on the Add role assignment button at the top of the page.
  2. Select Scope and Resource:
    • In the Add role assignment pane, select the scope of the resource as Key Vault.
    • Select the resource as the Key Vault used by the iARM Application (e.g., kv-iarm-svc-regionabbr-prd) which is provisioned for storing Certificates & Secrets.
  3. Select Role: Choose the role as Key Vault Secrets User.
  4. Save Changes: Click Save to assign the role to the managed identity of your app service.

Image

  1. Repeat for Additional Scopes, Resources, and Roles: Repeat the process for the following scopes, resources, and roles:
Sr. NoScopeResourceRole
1Key Vaultkv-iarm-svc-regionabbr-prdKey Vault Secrets User
2Key Vaultkv-iarm-svc-regionabbr-prdKey Vault Certificate User
3Storagesaiarm365syncregionabbrprdStorage Blob Data Contributor

Validate Environment Variables in Web App

Prerequisites: To validate app settings, the user must have at least Contributor access to the Azure Resource or Resource Group, as well as the App Configuration Data Reader role to view the environmental variables and their values.

Steps for to Validate Environment Variables in Function App:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Web App: Use the search bar to find M365Adit Sync Web Job (wj-iarm-m365auditsync-regionabbr-prd) and select it.
  3. Go to Environmental Variables: In the left-hand menu, under the Settings section, click on Environmental variables.
  4. Show Values: If required, click on Show values to display the current values of the environmental variables for validation.

Image

  1. Validate the App Settings: Review and validate the app settings listed below.

Configure M365Audit Connector Module

Validate System Assigned Identity for Function App

Steps for to Validate System Assigned Identity for Function App:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find M365Adit Connector Function App (func-iarm-m365auditconnector-regionabbr-prd) and select it.
  3. Go to Identity: In the left-hand menu, click on Identity under the Settings section.
  4. Enable System Assigned Identity: Ensure that the System assigned option is set to On.

Image

Assign roles to managed identity

Prerequisites: For performing role assignment to the managed identity user at least have the User Access Administrator or owner access on Resource.

Steps for to Assign roles to managed identity:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find M365Adit Connector Function App (func-iarm-m365auditconnector-regionabbr-prd) and select it.
  3. Go to Identity: In the left-hand menu, click on Identity under the Settings section.
  4. Click on the Azure Role Assignments Button: Click on the Azure role assignments button.

Image

  1. Add Role Assignment: Click on the Add role assignment button at the top of the page.
  2. Select Scope and Resource:
    • In the Add role assignment pane, select the scope of the resource as Key Vault.
    • Select the resource as the Key Vault used by the iARM Application (e.g., kv-iarm-svc-regionabbr-prd) which is provisioned for storing Certificates & Secrets.
  3. Select Role: Choose the role as Key Vault Secrets User.
  4. Save Changes: Click Save to assign the role to the managed identity of your app service.

Image

  1. Repeat for Additional Scopes, Resources, and Roles: Repeat the process for the following scopes, resources, and roles:
Sr. NoScopeResourceRole
1Key Vaultkv-iarm-svc-regionabbr-prdKey Vault Secrets User
2Key Vaultkv-iarm-svc-regionabbr-prdKey Vault Certificate User
3Storagesaiarm365connregionabbrprdStorage Blob Data Contributor

Validate Environment Variables in Function App

Prerequisites: To validate app settings, the user must have at least Contributor access to the Azure Resource or Resource Group, as well as the App Configuration Data Reader role to view the environmental variables and their values.

Steps for to Validate Environment Variables in Function App:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find PRM Sync Function App (func-iarm-prmsync-regionabbr-prd) and select it.
  3. Go to Environmental Variables: In the left-hand menu, under the Settings section, click on Environmental variables.
  4. Show Values: If required, click on Show values to display the current values of the environmental variables for validation.

Image

  1. Validate the App Settings: Review and validate the app settings listed below.
#App Setting NameDescription / UseSource of Value
1APPLICATIONINSIGHTS_CONNECTION_STRINGConnection string for Azure Application InsightsApplication configuration
2ApplicationInsightsAgent_EXTENSION_VERSIONVersion specification for Application Insights AgentApplication configuration
3AzureWebJobsStorage:accountNameStorage account name for Azure App ServiceApplication configuration
4AzureWebJobsStorage:credentialCredential for Azure App Service storageApplication configuration
5DefaultCreatedByDefault creator nameApplication configuration
6DefaultCreatedByEmailDefault creator emailApplication configuration
7FUNCTIONS_EXTENSION_VERSIONVersion of the Azure Functions runtimeApplication configuration
8FUNCTIONS_WORKER_RUNTIMERuntime environment for Azure FunctionsApplication configuration
9KeyVaultNameName of the Azure Key VaultApplication configuration
10SensitiveInfoTypeDataPageSizePage size for sensitive information type dataApplication configuration
11SkipBlankSensitiveInfoFlag to skip blank sensitive informationApplication configuration
12SqlConnectionSecretNameSecret of SQL connection stringAzure Key Vault
13SyncSensitiveInfoTypeDataTimerTimer for syncing sensitive information type dataApplication configuration
14WEBSITE_CONTENTOVERVNETFlag for website content over Virtual Network (VNET)Application configuration
15WEBSITE_ENABLE_SYNC_UPDATE_SITEFlag to enable sync updates for the websiteApplication configuration
16WEBSITE_PULL_IMAGE_OVER_VNETFlag to enable pulling images over Virtual Network (VNET)Application configuration
17WEBSITE_RUN_FROM_PACKAGEFlag to run the website from a packaged deploymentApplication configuration
18WEBSITE_USE_PLACEHOLDER_DOTNETISOLATEDFlag to use .NET isolated environment placeholdersApplication configuration
19WEBSITE_VNET_ROUTE_ALLFlag to route all traffic over Virtual Network (VNET)Application configuration

Configure Workspace Provisioning Module

Validate System Assigned Identity for Function App

Steps for to Validate System Assigned Identity for Function App:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find WPH Function App (func-iarm-wph-regionabbr-prd)and select it.
  3. Go to Identity: In the left-hand menu, click on Identity under the Settings section.
  4. Enable System Assigned Identity: Ensure that the System assigned option is set to On.

Image

Assign roles to managed identity

Prerequisites: For performing role assignment to the managed identity user at least have the User Access Administrator or owner access on Resource.

Steps for to Assign roles to managed identity:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find WPH Function App (func-iarm-wph-regionabbr-prd) and select it.
  3. Go to Identity: In the left-hand menu, click on Identity under the Settings section.
  4. Click on the Azure Role Assignments Button: Click on the Azure role assignments button.

Image

  1. Add Role Assignment: Click on the Add role assignment button at the top of the page.
  2. Select Scope and Resource:
    • In the Add role assignment pane, select the scope of the resource as Key Vault.
    • Select the resource as the Key Vault used by the iARM Application (e.g., kv-iarm-svc-regionabbr-prd) which is provisioned for storing Certificates & Secrets.
  3. Select Role: Choose the role as Key Vault Secrets User.
  4. Save Changes: Click Save to assign the role to the managed identity of your app service.

Image

  1. Repeat for Additional Scopes, Resources, and Roles: Repeat the process for the following scopes, resources, and roles:
Sr. NoScopeResourceRole
1Key Vaultkv-iarm-svc-regionabbr-prdKey Vault Secrets User
2Key Vaultkv-iarm-svc-regionabbr-prdKey Vault Certificate User

Validate Environment Variables in Function App

Prerequisites: To validate app settings, the user must have at least Contributor access to the Azure Resource or Resource Group, as well as the App Configuration Data Reader role to view the environmental variables and their values.

Steps for to Validate Environment Variables in Function App:

  1. Sign in to the Azure Portal: Navigate to Ref: and log in with your credentials.
  2. Navigate to Your Function App: Use the search bar to find PRM Sync Function App (func-iarm-prmsync-regionabbr-prd) and select it.
  3. Go to Environmental Variables: In the left-hand menu, under the Settings section, click on Environmental variables.
  4. Show Values: If required, click on Show values to display the current values of the environmental variables for validation.

Image

  1. Validate the App Settings: Review and validate the app settings listed below.

Solution Deployment

Note: Below activities are performed by Infotechtion Team

Azure DevOps Variable Group

  1. Ask client to provide below values that need to be added in the variable group.
NameValues
VITE_ADMIN_GROUPObject ID of the sg-svc-iarm-recordsadministrators-prd Entra ID Group
VITE_API_SCOPEAPI Scope value of the spn-func-iarm-apiauth-prd App Registrations
VITE_CLIENT_IDApplication (client) ID of spn-wapp-iarm-uidirectoryaccess-prd App Registrations
VITE_CLIENT_LOGO"Add Client Logo URL"
VITE_DATABOT_HOST[Ref:](https:// web-iarm-chatbot-regionabbr-prd.azurewebsites.net) *Pointing to the Databot Web App created
VITE_DEFAULT_IDLE_TIMEOUT_MINUTES15
VITE_DISPOSITION_ENDPOINT_V2Ref:*Pointing to the My Disposal function apps created
VITE_DISPOSITION_HOSTRef:*Pointing to the My Disposal function apps created
VITE_E_DISCOVERY_GROUPObject ID of the sg-svc-iarm-ediscoveryadministrators-prd Entra ID Group
VITE_FILESHARE_ENDPOINT_V2Ref: *Pointing to the My Data function apps created
VITE_FILESHARE_HOSTRef: *Pointing to the My Data function apps created
VITE_GRAPH_ENDPOINTRef:
VITE_IDLE_PROMPT_START_MINUTES1
VITE_INSTRUMENTATION_KEYApplication Insight Key for the UI Web App
VITE_LOGOUT_REDIRECT_URIRef: *Pointing to the UI Web App ( iARM portal) created
VITE_REDIRECT_URIRef:*Pointing to the UI Web App ( iARM portal) created
VITE_TENANT_IDValue of Tenant ID.
  1. Setup value of variable group and link it to the IARM-UI release pipeline and create it.
  2. ADD / Update the pipeline with resource group, App Service Name, Azure Function App NAME, Storage Account Name respective to all the pipeline in variable tab and create it.