Azure AD Identity Protection

Integration version: 3.0

Use cases

  1. Enrich entities.

  2. Ingest alerts.

Prerequisites

Before configuring the integration in the Google Security Operations SOAR platform, make sure to complete the following prerequisite steps:

  1. Create the Microsoft Entra app.

  2. Configure the API permissions for your app.

  3. Create a client secret.

Create Microsoft Entra app

  1. Sign in to the Azure portal as a user administrator or a password administrator.

  2. Select Microsoft Entra ID.

  3. Go to App registrations > New registration.

  4. Enter the name of the app.

  5. Click Register.

  6. Save the Application (client) ID and Directory (tenant) ID values to use them later when configuring the integration parameters.

Configure API permissions

  1. Go to API Permissions > Add a permission.

  2. Select Microsoft Graph.

  3. In the Select Permissions section, select the following permissions:

    • IdentityRiskEvent.Read.All
    • IdentityRiskyUser.ReadWrite.All
  4. Click Add permissions.

  5. Click Grant admin consent for YOUR_ORGANIZATION_NAME.

    When the Grant admin consent confirmation dialog appears, click Yes.

Create client secret

  1. Navigate to Certificates and secrets > New client secret.

  2. Provide a description for a client secret and set its expiration deadline.

  3. Click Add.

  4. Save the value of the client secret (not the secret ID) to use it as the Client Secret parameter value when configuring the integration. The client secret value is only displayed once.

Integrate Azure AD Identity Protection with Google Security Operations SOAR

For detailed instructions on how to configure an integration in Google Security Operations SOAR, see Configure integrations.

Integration parameters

Use the following parameters to configure the integration:

Parameter Display Name Type Default Value Is Mandatory Description
API Root String https://graph.microsoft.com Yes API root of the Microsoft Entra ID Protection instance.
Tenant ID String N/A Yes Tenant ID of the Microsoft Entra ID Protection account.
Client ID String N/A Yes Client ID of the Microsoft Entra ID Protection account.
Client Secret Password N/A Yes Client Secret of the Microsoft Entra ID Protection account.
Verify SSL Checkbox Checked Yes If enabled, verifies that the SSL certificate for the connection to the Microsoft Entra ID Protection server is valid.

Actions

Ping

Test connectivity to Microsoft Entra ID Protection with parameters provided at the integration configuration page in the Google Security Operations Marketplace tab.

Parameters

N/A

Run On

The action doesn't run on entities, nor has mandatory input parameters.

Action Results

Script Result
Script Result Name Value Options Example
is_success True/False is_success:False
Case Wall
Result type Value/Description Type (Entity \ General)
Output message*

The action should not fail nor stop a playbook execution:

If successful: "Successfully connected to the Azure AD Identity Protection server with the provided connection parameters!"

The action should fail and stop a playbook execution:

If not successful: "Failed to connect to the Azure AD Identity Protection server! Error is {0}".format(exception.stacktrace)

General

Enrich Entities

Enrich entities using information from Microsoft Entra ID Protection. Supported entities: Username, Email Address (user entity that matches email regular expression pattern).

Parameters

Parameter Display Name Type Default Value Is Mandatory Description
Create Insight Checkbox Checked No If enabled, the action creates an insight containing all of the retrieved information about the entity.

Run On

This action runs on the Username entity.

Action Results

Script Result
Script Result Name Value Options Example
is_success True/False is_success:False
JSON Result
{
    "id": "2600d017-84a1-444f-94ba-4bebed30b09e",
    "isDeleted": false,
    "isProcessing": false,
    "riskLevel": "none",
    "riskState": "remediated",
    "riskDetail": "userPerformedSecuredPasswordChange",
    "riskLastUpdatedDateTime": "2021-09-02T14:10:48Z",
    "userDisplayName": "user_1",
    "userPrincipalName": "user_1@example.com"
}
Entity Enrichment
Enrichment Field Name Logic - When to apply
is_deleted When available in JSON
is_processing When available in JSON
risk_level When available in JSON
risk_state When available in JSON
risk_detail When available in JSON
risk_updated When available in JSON
display_name When available in JSON
principal_name When available in JSON
Case Wall
Result type Value/Description Type (Entity \ General)
Output message*

The action should not fail nor stop a playbook execution:

If data is available for one entity (is_success=true): "Successfully enriched the following entities using information from Azure AD Identity Protection: {entity.identifier}".

If data is not available for one entity (is_success=true): "Action wasn't able to enrich the following entities using information from Azure AD Identity Protection: {entity.identifier}".

If data is not available for all entities (is_success=false): "None of the provided entities were enriched."

The action should fail and stop a playbook execution:

If a fatal error, like wrong credentials, no connection to the server, other is reported: "Error executing action "Enrich Entities". Reason: {0}''.format(error.Stacktrace)

General
Case Wall Table

Table Name: {entity.identifier}

Table Columns:

  • Key
  • Value
Entity

Update User State

Update state of the user in Microsoft Entra ID Protection. Supported entities: Username, Email Address (user entity that matches email regular expression pattern).

Parameters

Parameter Display Name Type Default Value Is Mandatory Description
State DDL

Compromised

Possible Values:

  • Compromised
  • Dismissed
No Specify the state for the users.

Run On

This action runs on the Username entity.

Action Results

Script Result
Script Result Name Value Options Example
is_success True/False is_success:False
Case Wall
Result type Value/Description Type (Entity \ General)
Output message*

The action should not fail nor stop a playbook execution:

If the 204 status code is reported for one user (is_success=true): "Successfully updated the state of the following users in Azure AD Identity Protection: {entity identifier}".

If one user is not found (is_success=true): "The following users were not found in Azure AD Identity Protection:"{entity.identifier}"

If all users are not found (is_success=true): "None of the provided users were not found in Azure AD Identity Protection."

The action should fail and stop a playbook execution:

If a fatal error, like wrong credentials, no connection to the server, other is reported: "Error executing action "Update User State". Reason: {0}''.format(error.Stacktrace)'

General

Connectors

For detailed instructions on how to configure a connector in Google Security Operations SOAR, see Configuring the connector.

Azure AD Identity Protection - Risk Detections Connector

Pull information about risk detections from Microsoft Entra ID Protection.

Connector parameters

Use the following parameters to configure the connector:

Parameter Display Name Type Default Value Is Mandatory Description
Product Field Name String Product Name Yes Enter the source field name in order to retrieve the Product Field name.
Event Field Name String riskEventType Yes Enter the source field name in order to retrieve the Event Field name.
Environment Field Name String "" No

Describes the name of the field where the environment name is stored.

If the environment field isn't found, the environment is the default environment.

Environment Regex Pattern String .* No

A regex pattern to run on the value found in the "Environment Field Name" field.

Default is .* to catch all and return the value unchanged.

Used to allow the user to manipulate the environment field via regex logic.

If the regex pattern is null or empty, or the environment value is null, the final environment result is the default environment.

PythonProcessTimeout Integer 180 Yes Timeout limit for the python process running the current script.
API Root String https://graph.microsoft.com Yes API root of the Microsoft Entra ID Protection instance.
Tenant ID String N/A Yes Tenant ID of the Microsoft Entra ID Protection account.
Client ID String N/A Yes Client ID of the Microsoft Entra ID Protection account.
Client Secret Password N/A Yes Client Secret of the Microsoft Entra ID Protection account.
Lowest Risk Level To Fetch String N/A No

The lowest risk that needs to be used to fetch alerts.

Possible values: Low, Medium, High.

If nothing is specified, the connector ingests risk detections with all risk levels.

Max Hours Backwards Integer 1 No The number of hours for which risk detections should be fetched.
Max Alerts To Fetch Integer 100 No The number of alerts to process per one connector iteration.
Use whitelist as a blacklist Checkbox Unchecked Yes If enabled, dynamic list is used as a blocklist.
Verify SSL Checkbox Checked Yes If enabled, verifies that the SSL certificate for the connection to the Microsoft Entra ID Protection server is valid.
Proxy Server Address String N/A No The address of the proxy server to use.
Proxy Username String N/A No The proxy username to authenticate with.
Proxy Password Password N/A No The proxy password to authenticate with.

Connector rules

The connector supports proxy.