Microsoft Integrations - Authentication
Security Awareness: Device Code Authorization
It is recommended to use the client credentials and user authorization flows for integrations when possible. The device code authorization flow has limited protections against sophisticated phishing campaigns.
In no scenario emails or other forms of communication will be sent to the customer asking to enter a security code or follow a link. All generated links and codes will be shown in the War Room, by running the official integration commands.
More info at: Device Code flow - Evolved phishing
Microsoft integrations (Graph and Azure) in Cortex XSOAR use Azure Active Directory applications to authenticate with Microsoft APIs. These integrations use OAuth 2.0 and OpenID Connect standard-compliant authentication services, which use an Application to sign-in or delegate authentication. For more information, see the Microsoft identity platform overview.
There are three application authentication methods available:
#Cortex XSOAR Application
In this method, you grant consent for the Cortex XSOAR multi-tenant application to access your data. The application is maintained by Cortex XSOAR. Depending on the integration, this requires either admin consent to get access without a user or user consent to get access on behalf of a user.
Note: This method requires that you give consent to all permissions requested by the application.
To start the authentication process, go to the integration's detailed instructions:
Navigate to Settings > Integration > Servers & Services.
Search for wanted Microsoft integration, e.g.
O365 Outlook Mail (Using Graph API).
Click Add instance.
Click the Link that appears in the Help section:.
In the XSOAR Web Page that appears, click the Start Authorization Process button to initiate the authorization flow.
#Self Deployed Application
To use a self-configured Azure application, you need to add a new Azure App Registration in the Azure Portal.
The application must have the required permissions for the relevant APIs, which are documented in the integration documentation, for example see Microsoft Defender Advanced Threat Protection required permissions.
To add the registration, refer to the Microsoft documentation
The Tenant ID, Client ID, and Client secret are required for the integration.
When you configure the integration in Cortex XSOAR, enter those parameters in the appropriate fields:
ID - Client ID
Token - Tenant ID
Key - Client Secret
Alternatively, instead of providing the Client Secret, you can authenticate using certificate credentials by providing:
- Certificate Thumbprint - The certificate thumbprint as appears when registering the certificate to the App
- Private Key - The private key of the registered certificate
In addition, make sure to select the Use a self-deployed Azure Application checkbox in the integration instance configuration.
#Authorize on Behalf of a User
Some of the Cortex XSOAR-Microsoft integrations (e.g., Azure Sentinel) require authorization on behalf of a user (not admin consent). For more information about this authorization flow, refer to the Microsoft documentation.
To configure a Microsoft integration that uses this authorization flow with a self-deployed Azure application:
- Make sure the needed permissions are granted for the app registration, e.g for Microsoft Graph User: API/Permission name
- The Redirect URI can direct any web application that you wish to receive responses from Azure AD. If you are not sure what to set, you can use
- Enter your client ID in the ID parameter field.
- Enter your client secret in the Key parameter field.
- Enter your tenant ID in the Token parameter field.
- Enter your redirect URI in the Redirect URI parameter field.
- Save the instance.
- Run the
!<integration command prefix>-generate-login-urlcommand in the War Room and follow the instructions. For example, for Microsoft Graph User:
#Using National Cloud
Some of the Cortex XSOAR-Microsoft integrations support the deployment of national clouds through the self-deployed authorization flow. For more information about Microsoft National Clouds, refer to the Microsoft documentation. Currently, the following integration supports national clouds:
- O365 Outlook Mail (Using Graph API)
In order to use a national cloud, change the URL parameter to the corresponding address of the national cloud you are using. For example, see O365 Outlook Mail (Using Graph API) - National Clouds, for the supported cloud endpoints in this integration.
#Device Code Flow
Some of the Cortex XSOAR-Microsoft integrations use the device code flow.
To configure a Microsoft integration that uses this authorization flow with a self-deployed Azure application:
Make sure the needed permissions are granted for the app registration.
The Redirect URI can direct any web application that you wish to receive responses from Azure AD. If you are not sure what to set, you can use
In Supported account types, Accounts in any organizational directory (Any Azure AD directory - Multitenant) should be selected.
In the app registration, navigate to Authentication > Advanced Settings, and enable the mobile and desktop flows.
Enter your application ID in the Application ID parameter field.
#Azure Managed Identities Authentication
#Note: This option is relevant only if the integration is running on Azure VM.
Some of the Cortex XSOAR-Microsoft integrations use the Azure Managed Identities Authentication.
Follow one of these steps for authentication based on Azure Managed Identities:
#To use System Assigned Managed Identity
- Select Azure Managed Identities from the Authentication Type drop down or select the Use Azure Managed Identities checkbox and leave the Azure Managed Identities Client ID field empty.
#To use User Assigned Managed Identity
- Go to Azure Portal -> Managed Identities.
- Select your User Assigned Managed Identity -> copy the Client ID -> paste it in the Azure Managed Identities Client ID field in the instance settings.
- Select Azure Managed Identities from the Authentication Type drop down or select the Use Azure Managed Identities checkbox.
In order to revoke consent to a Cortex XSOAR Microsoft application, refer to the Microsoft documentation.
#Azure Integrations Parameters
In order to use the Cortex XSOAR Azure application, you need to fill in your subscription ID and resource group name, which you can find in the Azure Portal.
Log in to the Azure Portal Home Page using your Azure credentials.
Search for your Azure product, for example SQL Servers:
Click on your resource:
After you a redirected to the next page, in the Overview tab you will find your Resource group and Subscription ID:
#Self Deployed Application - Example
In Microsoft Azure portal, create a new app registration.
Select Azure Active Directory> App registrations> New registration.
In the Redirect URI (optional) field select Web and type a name (you can enter an arbitrary name). In this example we use https<nolink>://xsoar.
You can see the Essential information here:
Copy the following information:
- Application (client) ID
- Directory (tenant) ID
Get the client secret, which is used for the key in the integration settings.
Click Certificate and secrets -> New client secret.
Copy the client secret.
Ensure the needed permissions are granted for the app registration.
Go to API permissions>Add a permission>Microsoft Graph>Delegated permissions and search for
Click Add permissions.
NOTE: Ensure that you have the following permissions:
- Directory.Read.All - Delegated
- User.ReadWrite.All - Application
- User.Read - Delegated
Get the authorization code.
Type the following in a browser:
client-idwith the tenant ID that was generated in step 1.iv.
The URI is the https<nolink>://xsoar.
This prompts the admin user to sign in and grant the app the appropriate permissions:
Once completed you are redirected to the redirect URI and will receive an authorization code in the query parameters of the URI.
NOTE: If there are multiple query parameters returned you should just copy the code value.
Copy the AUTH_CODE (without the "code=" prefix). This value must be used in the MS Graph User in Cortex XSOAR integration in the Authorization Code field.
Add the information to the instance in Cortex XSOAR by going to Settings>Integrations>Microsoft Graph User>Add Instance.
- In the ID parameter field, type the client ID.
- in the Token parameter field, type the tenant ID.
- In the Key parameter field, type your client secret.
- Click the Use a self-deployed Azure application checkbox.
- In the Redirect URI field, type the redirect URI we entered in the Azure portal.
- In the Authorization code for self-deployed mode - received from the authorization step, type the code that was generated in 4.2.
- Save the integration settings and test the setup by running the !msgraph-user-test command from the Cortex XSOAR CLI.
#Supported Authentication Flows for Microsoft integrations
|Integration Name||XSOAR Application||Client Credentials||Device Code||Auth code (redirect URI)||Azure Managed Identities|
|Azure Compute v2||yes||yes - support both client secret and certificate||no||no||no|
|Azure Data Explorer||yes||no - not supported by the API||yes||yes||no|
|AzureDevOps||yes||no - not supported by the API||yes||yes||no|
|Azure Key Vault||no||yes - support both client secret and certificate||no||no||yes|
|Azure Kubernetes Services||yes||no - not supported by the API||yes||yes||yes|
|Azure Log Analytics||yes||yes - support both client secret and certificate||no||yes||yes|
|Azure Network Security Groups||yes||no - not supported by the API||yes||yes||yes|
|Azure Risky Users||yes||yes||yes||no||yes|
|Azure Security Center v2||yes||yes - support both client secret and certificate||no||no||yes|
|Azure Sentinel||no||yes - support both client secret and certificate||no||no||yes|
|Azure SQL Management||yes||no - not supported by the API||yes||yes||yes|
|Azure Storage||yes||no - not supported by the API||yes||yes||yes|
|Azure Storage Container||no||no||no||no||yes|
|Azure Storage FileShare||no||no||no||no||no|
|Azure Storage Queue||no||no||no||no||yes|
|Azure Storage Table||no||no||no||no||yes|
|Azure Web Application Firewall||yes||no - not supported by the API||yes||yes||yes|
|Microsoft 365 Defender||yes||yes - support both client secret and certificate||yes||no||yes|
|Microsoft 365 Defender Event Collector - XSIAM||no||yes||no||no||no - saas|
|Microsoft Defender for Cloud Apps||no||yes||yes||no||no|
|Microsoft Defender Advanced Threat Protection||yes||yes - support both client secret and certificate||no||yes||yes|
|Microsoft Graph API||yes||yes - support both client secret and certificate||no||no||yes|
|Azure Active Directory Applications||yes - device||yes||yes||no||yes|
|O365 Outlook Calendar||yes||yes - support both client secret and certificate||no||no||yes|
|Microsoft Graph Device Management||yes||yes - support both client secret and certificate||no||no||yes|
|O365 File Management||yes||yes - support both client secret and certificate||no||no||yes|
|Microsoft Graph Groups||yes||yes - support both client secret and certificate||no||yes||yes|
|Azure Active Directory Identity And Access||yes||yes - support both client secret and certificate||yes||no||yes|
|Microsoft Graph Mail Single User||yes||no||no||yes||yes|
|O365 Outlook Mail||yes||yes - support both client secret and certificate||no||no||yes|
|Microsoft Graph Security||yes||yes - support both client secret and certificate||no||no||yes|
|Microsoft Graph User||yes||yes - support both client secret and certificate||no||yes||yes|
|Microsoft Management Activity API (O365 Azure Events)||yes||no||no||yes||yes|
|Microsoft Teams Management||yes||yes||yes||no||yes|