Prérequis pour un environnement de partage de fichiers

Pour permettre la collecte de données et l'utilisation des alertes ou de la plateforme MyDataSecurity/MyDataManagement par vos utilisateurs, nous vous invitons à remplir les cinq prérequis ci-dessous.

Pour collecter votre environnement de partage de fichiers, IDECSI utilise un LEM (Local Extractor Module) comme proxy entre votre serveur local sur site et la plateforme de surveillance SAAS. Un compte de service local permet au LEM de se connecter aux serveurs.

Création de la VM

Afin d'être pleinement opérationnel pour la protection des utilisateurs, le LEM doit être installé sur une machine virtuelle avec au moins la configuration matérielle suivante :

  • RAM 16 Gb
  • CPU 2 core
  • Disque 100 Gb

Le collecteur LEM peut fonctionner sur les systèmes d'exploitation suivants :

  • Windows Server 2016 Standard 64bits
  • Windows Server 2019 Standard 64bits

Une fois la VM créée, installez Microsoft Framework .net 4.8.

Votre chargé de clientèle vous enverra un e-mail avec votre WorkerID et le fichier setup.exe pour installer le logiciel LEM sur la VM.

🛑 Dans certains cas, nous devons dimensionner les spécifications du LEM en fonction de votre infrastructure, veuillez nous fournir les informations suivantes concernant la volumétrie de vos partages de fichiers :

  • Nombre de fichiers
  • Taille totale des serveurs de fichiers
  • Si possible, le nombre total (ou moyen) d'accès aux fichiers.

Flux d'ouverture

Veuillez vérifier ou ouvrir les connexions suivantes :

De

Pour

Protocole

I2A VM (LEM)

Centre de données I2A Centre de données (Internet)

TCP 443

I2A VM (LEM)

Serveur (SMB)

TCP 445

I2A VM (LEM)

Serveur (WMI)

TCP 135
et ports dynamiques

I2A VM (LEM)

Contrôleur Active Directory

TCP ET UDP 389

I2A VM (LEM)

Contrôleur Active Directory

TCP 636

I2A VM (LEM)

https://updates.i-2a.com/lem/wyserver.wys

TCP 443

NetApp (serveur de politique d'accès)

I2A VM (LEM)

TCP 2002

I2A VM (LEM)

NetApp (Admin REST API)

TCP 443

Installation du LEM

Lancez le fichier setup.exe sur la VM et procédez à l'installation.

Pour valider le choix du compte système local par rapport à un compte personnalisé, veuillez lire ce qui suit.

Ajout de la procuration, 4 cas :

  1. Pas de proxy: Utiliser le système local dans la configuration du LEM, utiliser les paramètres par défaut du système dans la configuration du proxy. Passez ensuite à la section Vérifier le compte de service.
  2. Proxy mais pas authentifié: Utilisez Local System dans la configuration du LEM et utilisez Custom Proxy settings dans la configuration du proxy.
    Remplissez l'URI (http://), le port et définissez le Bypass (généralement true)
    Puis allez à Check the service account.
  3. Proxy authentifié avec le même compte que le compte du service I2A: Utilisez Custom User dans la configuration du LEM et remplissez les champs et utilisez Custom Proxy settings dans la configuration du proxy.
    Remplissez l'URI (http://), le port et définissez le Bypass (généralement true)
    Allez ensuite à Check the service account.
  4. Proxy authentifié avec un autre compte :
    1. Le compte utilisé pour le proxy est dans le même domaine que le LEM : utilisez Custom User dans la configuration du LEM, remplissez les champs, et utilisez Custom Proxy settings dans la configuration du proxy. Remplissez l'URI et définissez l'option Bypass (généralement vrai).
    2. Le compte utilisé pour le proxy se trouve dans un domaine différent de celui du LEM : Utilisez le système local et éditez les fichiers de configuration. Modifiez le fichier proxy.config et remplacez le contenu du fichier par :

Edit the file settings.json just after the opening bracket { and copy-paste the following (with commas):

"CustomProxy.Login": "login",
"CustomProxy.Password": "password",
"CustomProxy.ProxyAddress": "http://hostname:port",

Vérification du compte de service

A la fin de l'installation, vous devez ouvrir la MMC, arrêter le service I2A Worker et définir le login/mot de passe du compte de service.

Redémarrez ensuite le service I2A Worker.

Valider les droits NTFS du compte de service.

 

 

[Facultatif] Installation du LEM (mode silencieux)

Un mode silencieux est disponible pour l'installation d'IDECSI LEM.

Par exemple : I2AWorker 4.8.18303.0121.exe /SILENT /WorkerId=00000000-0000-0000-0000-000000000000 /IsCustomAccount=true /Username="idecsi\svc_lem" /Password="Password12345″.

Si vous souhaitez inclure dans un paramètre une virgule, une barre verticale ("|") ou une accolade fermante ("}") à l'intérieur de la constante, vous devez y échapper via "%-encoding". Remplacez le caractère par un caractère "%", suivi de son code hexagonal à deux chiffres. Une virgule est "%2c", une barre verticale est "%7c" et une accolade fermante est "%7d". Si vous souhaitez inclure un véritable caractère "%", utilisez "%25".

Paramètres

/SILENT, /VERYSILENT

Indique à l'installation d'être silencieuse ou très silencieuse. Lorsque l'installation est silencieuse, l'assistant et la fenêtre d'arrière-plan ne sont pas affichés, mais la fenêtre de progression de l'installation l'est. Lorsque l'installation est très silencieuse, la fenêtre de progression de l'installation n'est pas affichée.

Paramètres du travailleur I2A

/WorkerId=00000000-0000-0000-0000-000000000000
/IsCustomAccount=true|false (Si nécessaire, Par défaut : False)
/Username="idecsi\svc_lem" (Si IsCustomAccount = True)
/Password="Password12345″ (Si IsCustomAccount = True)
/IsCustomProxy=true|false (Si nécessaire, Défaut : False)
/ProxyAddress="http://proxy.domain.com:3128″ (Si IsCustomProxy = True)
/ProxyBypassLocal=true|false (Si IsCustomProxy = True)

Pour être opérationnel, un compte de service est nécessaire. Ce compte permettra au LEM de se connecter aux serveurs dont il aura la charge.

Il est donc recommandé d'utiliser un compte de service technique dédié à la gestion du Filer (pour éviter tout risque de changement de compte/mot de passe).

Droits de l'homme

Lorsque le LEM se connecte à un serveur pour effectuer la découverte, le niveau de droits du compte utilisé affectera les informations qu'il sera possible d'obtenir.

Néanmoins, dans tous les cas, le LEM essaiera toujours de faire le maximum d'actions possibles.

Ainsi, par exemple, même si le compte n'a aucun droit sur le serveur, mais que les paramètres lui permettent d'entrer dans certaines actions, le LEM le fera.

Découverte

La "découverte" ne nécessite aucun droit particulier pour fonctionner.

Toutefois, si le compte de service dispose des droits "Administrateur", "Power User", "Print Operator" ou "Server Operator", le "LEM" fournira davantage d'informations sur la configuration du partage de réseau.

NTFS

Le LEM tentera de se connecter et de parcourir les actions ; la navigation dans les arbres sera basée sur les droits.

L'IDECSI ne peut pas faire de recommandation sur les droits nécessaires, cela dépend beaucoup de la politique de l'entreprise.

Pour éviter de donner trop de droits au compte de service, certains de nos clients ne donnent aucun droit de base au compte, et serveur par serveur, ajoutent des droits NTFS (ou positionnent le compte dans le groupe local Administrateurs du serveur) afin que les serveurs puissent être complètement collectés.

Activer les journaux d'événements du serveur Windows

Les audits d'accès peuvent être activés manuellement ou par GPO.

Ce paramètre est accessible à partir de l'application Politique de sécurité locale / Configuration de la politique d'audit avancée / Politiques d'audit du système - Objet de la politique de groupe locale / Accès à l'objet.

Il est nécessaire d'activer les journaux suivants :

  • Audit du partage de fichiers
  • Audit détaillé du partage de fichiers

Ce paramètre active la génération des événements 5140, 5142, 5143, 5144, 5168 et 5145 dans le journal des événements de sécurité.

Veuillez vérifier la taille du journal des événements (Event Log Security) afin que la durée de conservation soit minimale (quelques heures).

Cette taille varie en fonction de l'activité du serveur.

 

Autorisation d'accès au journal des événements Windows

Le LEM, lorsqu'il en reçoit l'ordre, peut collecter à distance les journaux d'accès générés sur le serveur.

Ces journaux sont disponibles dans la section Sécurité du journal des événements.

Pour les visualiser à distance, il est nécessaire de fournir des droits au compte de service.

Le script ci-dessous permet de gérer plus facilement les droits accordés à un compte sur le journal des événements d'un serveur. Vous pouvez utiliser le copier-coller dans un fichier .ps1 pour l'utiliser.

<#
.SYNOPSIS
	Grants or revokes access to an Event Log
.DESCRIPTION
	Controls access to an Event Log, supporting:
		Grant or revoke access
		Local or domain user or group
		Local or remote Event Log
		Read or read/write access
		Connect to remote machine as current or alternate user
		Target a group of remote machines via a text file
.PARAMETER Action
	The action to take (Get, Grant or Revoke)
.PARAMETER LogName
	The Event Log log name (Application, Security or System)
.PARAMETER AccountName
	The domain-qualified user or group name
.PARAMETER Access
	The type of rights to grant (Read or ReadWrite)
.PARAMETER ComputerName
	The remote computer name (optional)
.PARAMETER UserName
	User name for remote computer login (optional)
.PARAMETER Password
	Password for remote computer login (optional)
.PARAMETER ComputerNamesFile
	Name of a text file containing computer names to affect, one name per line (optional)
.EXAMPLE
	ControlEventLogPermissions.ps1 -Action 'Grant' -LogName 'Application' -AccountName 'DOMAIN\GroupName' -Access 'Read'
.EXAMPLE
	ControlEventLogPermissions.ps1 -Action 'Revoke' -LogName 'System' -AccountName 'DOMAIN\GroupName' -Access 'ReadWrite' -ComputerName 'REMOTESRVR'
.EXAMPLE
	ControlEventLogPermissions.ps1 -Action 'Grant' -LogName 'Security' -AccountName 'DOMAIN\GroupName' -Access 'Read' -ComputerName 'REMOTESRVR' -UserName 'DOMAIN\Admin' -Password 'SecurePwd'
.EXAMPLE
	ControlEventLogPermissions.ps1 -Action 'Grant' -LogName 'Security' -AccountName 'DOMAIN\GroupName' -Access 'Read' -ComputerNamesFile 'Machines.txt' -UserName 'DOMAIN\Admin' -Password 'SecurePwd'
.NOTES
	Released under The MIT License (MIT)
	Copyright (c) 2015 Thomas F. Abraham (http://www.tfabraham.com)
.LINK
	https://gallery.technet.microsoft.com/scriptcenter
#>

[CmdletBinding()]
Param (
	[Parameter(Mandatory=$true, HelpMessage='Enter Get, Grant or Revoke')]
	[ValidateSet('Get','Grant','Revoke')] 
	[string]$Action,
	[Parameter(Mandatory=$true, HelpMessage='Enter log name')]
	[string]$LogName,
	[Parameter(Mandatory=$true, HelpMessage='Enter local or domain-qualified account name')]
	[string]$AccountName,
	[Parameter(Mandatory=$false, HelpMessage='Enter Read or ReadWrite')]
	[ValidateSet('Read','ReadWrite')] 
	[string]$Access = 'Read',
	[Parameter(Mandatory=$false, HelpMessage='Enter remote computer name')]
	[string]$ComputerName,
	[Parameter(Mandatory=$false, HelpMessage='Enter username for remote computer connection')]
	[string]$UserName,
	[Parameter(Mandatory=$false, HelpMessage='Enter password for remote computer connection')]
	[string]$Password,
	[Parameter(Mandatory=$false, HelpMessage='Enter name of a text file containing computer names to affect, one name per line')]
	[string]$ComputerNamesFile
)

Function ConvertAccountNameToSID {

<#
.SYNOPSIS
	Converts a local or domain account name to the SID
.DESCRIPTION
	Converts a local or domain account name to the SID
.PARAMETER AccountName
	The domain-qualified user or group name
.EXAMPLE
.NOTES
.LINK
	https://gallery.technet.microsoft.com/scriptcenter
#>
	[CmdletBinding()]
	Param (
		[Parameter(Mandatory=$true, HelpMessage='Enter local or domain-qualified account name')]
		[string]$AccountName
	)

	[array]$accountNameParts = $null
	[string]$sid = ''
	[System.Security.Principal.NTAccount]$ntAcct = $null

	# Split the account name to determine if it is domain-qualified
	$accountNameParts = $AccountName.Split("\\")

	# Attempt to convert the account name to a SID
	Write-Host Translating $AccountName to SID...
	if ($accountNameParts.Length -eq 1) {
		$ntAcct = New-Object System.Security.Principal.NTAccount($AccountName)
	}
	else {
		$ntAcct = New-Object System.Security.Principal.NTAccount($accountNameParts[0], $accountNameParts[1])
	}
	try {
		$sid = $ntAcct.Translate([System.Security.Principal.SecurityIdentifier])
	}
	catch {
		Write-Error -Message "Could not resolve account" $AccountName ". Check spelling and domain-qualify if necessary."
		Return
	}
	Write-Host Account $AccountName has SID $sid
	Write-Host

	Return $sid
}

Function ControlEventLogPermissions {

<#
.SYNOPSIS
	Grants or revokes access to an Event Log
.DESCRIPTION
	Controls access to an Event Log
.PARAMETER Action
	The action to take (Get, Grant or Revoke)
.PARAMETER LogName
	The Event Log log name (Application, Security or System)
.PARAMETER AccountName
	The domain-qualified user or group name
.PARAMETER Access
	The type of rights to grant (Read or ReadWrite)
.PARAMETER ComputerName
	The remote computer name (optional)
.PARAMETER UserName
	User name for remote computer login (optional)
.PARAMETER Password
	Password for remote computer login (optional)
.EXAMPLE
.NOTES
.LINK
	https://gallery.technet.microsoft.com/scriptcenter
#>

	[CmdletBinding()]

	Param (
		[Parameter(Mandatory=$true, HelpMessage='Enter Get, Grant or Revoke')]
		[ValidateSet('Get','Grant','Revoke')] 
		[string]$Action,
		[Parameter(Mandatory=$true, HelpMessage='Enter log name')]
		[string]$LogName,
		[Parameter(Mandatory=$true, HelpMessage='Enter local or domain-qualified account name')]
		[string]$AccountName,
		[Parameter(Mandatory=$false, HelpMessage='Enter Read or ReadWrite')]
		[ValidateSet('Read','ReadWrite')] 
		[string]$Access = 'Read',
		[Parameter(Mandatory=$false, HelpMessage='Enter remote computer name')]
		[string]$ComputerName,
		[Parameter(Mandatory=$false, HelpMessage='Enter username for remote computer connection')]
		[string]$UserName,
		[Parameter(Mandatory=$false, HelpMessage='Enter password for remote computer connection')]
		[string]$Password,
		[Parameter(Mandatory=$true, HelpMessage='Enter SID for account')]
		[string]$sid
	)

	[array]$logConfig = ''
	[array]$channelAccessArray = $null
	[array]$remoteParams = $null
	[array]$params = $null
	[string]$channelAccess = ''
	[string]$sddlRights = ''
	[string]$newChannelAccess = ''

	if ($Action -ieq "Grant") {
		Write-Host Grant $AccountName $Access access to log $LogName on $ComputerName ...
	}
	elseif ($Action -ieq "Revoke") {
		Write-Host Revoke $AccountName $Access access to log $LogName on $ComputerName ...
	}
	elseif ($Action -ieq "Get") {
		Write-Host Get current access for $AccountName to log $LogName on $ComputerName ...
	}

	if ($ComputerName -ine '') {
		$remoteParams = @("/r:""$ComputerName""")

		if ($UserName -ine '') {
			$remoteParams += "/u:""$UserName"""

			if ($Password -ine '') {
				$remoteParams += "/p:""$Password"""
			}
		}
	}

	# Get the current configuration of the desired log
	Write-Host "Reading current configuration of log $LogName on $ComputerName..."
	$params = @("gl", "$LogName")
	$params += $remoteParams
	$logConfig = & wevtutil $params

	if ($LASTEXITCODE -ne 0) {
		Write-Error -Message "Failed to read current configuration of log $LogName on $ComputerName"
		Return
	}
	Write-Host "Successfully read current configuration of log $LogName on $ComputerName."

	# Search for the channelAccess (permissions) configuration section
	$channelAccessArray = $logConfig -like "channelAccess:*"

	if ($channelAccessArray.Length -eq 0) {
		Write-Error -Message "Expected to find a string starting with channelAccess. Actual: " $logConfig
		Return
	}

	# Trim off the channelAccess label
	$channelAccess = $channelAccessArray[0].Replace("channelAccess: ","")
	Write-Debug -Message "Current channelAccess for $LogName on $ComputerName is $channelAccess"

	if ($Action -ieq "Grant") {
		# Search for an existing SDDL token using the target SID
		if ($channelAccess -match "(\(\w*\;\w*\;\w*\;\w*\;\w*\;$sid\))") {
			# Remove the existing SDDL token
			$channelAccess = $channelAccess.Replace($matches[0], "")
		}

		# Convert the permissions string to SDDL
		if ($Access -ieq "ReadWrite") {
			$sddlRights = "0x3"
		}
		else {
			$sddlRights = "0x1"
		}

		# Build and append a new SDDL onto the existing SDDL
		$newChannelAccess = $channelAccess + "(A;;" + $sddlRights + ";;;" + $sid + ")"
	}
	elseif ($Action -ieq "Revoke") {
		# Search for an existing SDDL token using the target SID
		if ($channelAccess -match "(\(\w*\;\w*\;\w*\;\w*\;\w*\;$sid\))") {
			# Remove the existing SDDL token
			$newChannelAccess = $channelAccess.Replace($matches[0], "")
		}
		else {
			Write-Host "SID does not exist in channel access string on $ComputerName. Nothing to revoke." -ForegroundColor Yellow
			Return
		}
	}
	elseif ($Action -ieq "Get") {
		# Search for an existing SDDL token using the target SID
		if ($channelAccess -match "(\(\w*\;\w*\;\w*\;\w*\;\w*\;$sid\))") {
			if ($matches[0].Contains("0x3")) {
				Write-Host "$AccountName currently has READ/WRITE access to $LogName on $ComputerName." -ForegroundColor Green
			}
			elseif ($matches[0].Contains("0x1")) {
				Write-Host "$AccountName currently has READ access to log $LogName on $ComputerName." -ForegroundColor Green
			}
			else {
				Write-Host "$AccountName currently has an UNKNOWN access right to log $LogName on $ComputerName." -ForegroundColor Green
			}
		}
		else {
			Write-Host "$AccountName currently has NO access rights to log $LogName on $ComputerName." -ForegroundColor Green
			Return
		}
		Return
	}

	Write-Debug -Message "New channel access string is $newChannelAccess"

	# Write the updated configuration
	Write-Host "Writing new channel access string to log $LogName configuration on $ComputerName ..."
	$params = @("sl", "$LogName", "/ca:$newChannelAccess")
	$params += $remoteParams
	& wevtutil $params
	if ($LASTEXITCODE -ne 0) {
		Write-Error -Message "Failed to write new configuration of log $LogName on $ComputerName"
		Return
	}
	Write-Host "Done writing new configuration of $LogName on $ComputerName." -ForegroundColor Green
}


[hashtable]$scriptParameters = $PSBoundParameters
[array]$computerNamesFileContent
[string]$listComputerName
[string]$sid

$Error.Clear()

Try {
	$sid = ConvertAccountNameToSid -AccountName "$AccountName"

	$scriptParameters['sid'] = $sid
	$scriptParameters.Remove('ComputerNamesFile')

	if ($ComputerNamesFile -ieq '') {
		if ($scriptParameters.ContainsKey("ComputerName") -eq $false) {
			$scriptParameters["ComputerName"] = $env:COMPUTERNAME
		}
		ControlEventLogPermissions @scriptParameters
	}
	else {
		$computerNamesFileContent = Get-Content $ComputerNamesFile
		foreach ($listComputerName in $computerNamesFileContent) {
			$scriptParameters["ComputerName"] = $listComputerName
			ControlEventLogPermissions @scriptParameters
		}
	}
}
Catch {
	Write-Error -Message $Error[0].Exception.Message
}

Activer le journal des événements NetApp

Commandes FPOLICY pour enregistrer un LEM

Légende : 

  • VSERVER_ADMIN (niveau cluster) 
  • VSERVER_NODE (nœud du cluster) 
  • VSERVER_DATA (Serveur de fichiers) 
  • valeur : Proposition de nom, modifiable  
  • [valeur] : Insérer la valeur appropriée 

Commandes globales

Enregistrement

fpolicy policy event create -vserver [VSERVER_ADMIN] -event-name fp_event_idecsi_cifs -file-operations create,create_dir,open,delete,delete_dir,read,write,rename,rename_dir,setattr -protocol cifs -filters first-read,first-write,open-with-delete-intent 
fpolicy policy external-engine create -vserver [VSERVER_ADMIN] -engine-name fp_ex_eng -primary-servers [LEM_IP] -port 2002 -extern-engine-type asynchronous -ssl-option no-auth 

Permettre au LEM de se déconnecter

security login rest-role create -vserver [VSERVER_ADMIN] -role rest_role_idecsi -api "/api/protocols/fpolicy" -access all  
security login create -user-or-group-name svc_rest_idecsi -application http -authmethod password -role rest_role_idecsi -vserver [VSERVER_ADMIN] 

Commandes à collecter par serveur

fpolicy policy create -vserver [VSERVER_DATA] -policy-name IDECSI -events fp_event_idecsi_cifs -engine fp_ex_eng -is-mandatory false 
fpolicy policy scope create -vserver [VSERVER_DATA] -policy-name IDECSI -volumes-to-include "*" -export-policies-to-include "*" 
fpolicy enable -vserver [VSERVER_DATA] -policy-name IDECSI -sequence-number 5 

Commandes de débogage pour s'assurer de l'état ou de la publication des événements de redémarrage

vserver fpolicy policy event show fp_event_idecsi_cifs -instance 
fpolicy policy external-engine show 
fpolicy show-engine 
vserver fpolicy show 
vserver fpolicy show -vserver [VSERVER_DATA] 
fpolicy policy scope show -vserver [VSERVER_VM] - policy-name [IDECSI]
fpolicy engine-connect -node [NODE] -vserver [VSERVER_VM] -policy-name [IDECSI] -server [LEM_IP] 
network ping -lif [LIF_NAME] -destination [LEM_IP] -show-detail

[Optionnel] Paramètres cryptés du compte de service NetApp

A insérer dans le fichier crypté

|---------------------------|------------------------------|
| Key                       | Value                        |
|---------------------------|------------------------------|
| NetAppRestApiBaseUri      | http://servername            |
| NetAppRestApiLogin        | username                     |
| NetAppRestApiPwd          | password                     |
|---------------------------|------------------------------|

Pour permettre aux utilisateurs de se connecter à leur MyDataSecurity ou MyDataManagement, nous pouvons intégrer votre fédération d'identité. Vous trouverez ci-dessous la procédure à suivre avec Azure AD. Pour d'autres solutions, veuillez consulter la base de connaissances.

1. Accédez à votre tableau de bord d'administrateur dans Azure Active Directory.
et cliquez sur Active Directory > Enterprise Applications
2. Cliquez sur + Créez votre propre application
Saisissez un nom pertinent dans Input Name (par exemple I2A Platform), sélectionnez l'option "Integrate any other application you don't find in the gallery (non-gallery)", et cliquez sur Create.
3. Ensuite, vous êtes redirigé vers l'application nouvellement créée Vue d'ensemble, allez à Affecter des utilisateurs et des groupes à partir de la tuile ou du menu latéral.
4. Si vous souhaitez restreindre l'utilisation, vous pouvez ajouter des utilisateurs et/ou des groupes pour accéder à la plateforme I2A. Nous vous recommandons d'ajouter un groupe avec tous vos utilisateurs tenant , I2A reconnaîtra les utilisateurs avec un compte.
5. Cliquez sur Single sign-on dans le menu latéral et sélectionnez SAML comme méthode d'authentification unique.
6. Cliquez sur Télécharger le fichier de métadonnées et sélectionnez le fichier XML fourni par votre Client Success Manager.
7. Après l'importation, vous aurez :

Dans le bloc de configuration Basic SAML :

Identifiant (ID de l'entité) : https://dcxx-auth.i-2a.com
Reply URL (Assertion Consumer Service URL): https://dcxx-auth.i-2a.com/tenants/YourTenant/federations/saml/assertion-consumer-service

Vous pouvez maintenant tester votre authentification à l'aide du bouton Test.

8. Veuillez nous envoyer le fichier XML des métadonnées de la Fédération à l'adresse suivante : clientsuccess@idecsi.com

Votre Client Success Manager vous informera de l'intégration de vos métadonnées.

Pour encourager les utilisateurs à adopter la solution, nous proposons l'utilisation d'une application qui permettra à notre plateforme d'envoyer des courriels à partir de votre tenant Microsoft. A défaut, IDECSI utilisera Graph API pour envoyer des emails depuis une adresse générique (alerts@idecsi.com).

Si vous souhaitez utiliser une adresse e-mail particulière de votre domaine,nous pouvons utiliser l'API Microsoft Graph pour envoyer des e-mails IDECSI par le biais d'une application accordée à votre tenant.

L'IDECSI propose d'utiliser l'application générique "I2A Mail Sender" pour envoyer les notifications.

L'application utilisée pour envoyer les notifications ne peut pas être la même que celle utilisée pour la remédiation, car la permission "Mail.Send" doit être définie sur le compte.

Étape 1 : Autoriser cette application

L'étape suivante consiste à accorder à l'application les droits d'administrateur global. Voici le lien pour accorder à l'application générique gérée par IDECSI les droits d'administrateur global :

https://login.microsoftonline.com/common/adminConsent?client_id=ba28a8f5-601a-4523-a7e9-570dc40d49d7

La seule autorisation à accorder est la suivante :

AutorisationChaîne d'affichageDescriptionConsentement administratif requis
Mail.SendEnvoyer du courrier en tant qu'utilisateurPermet à l'application d'envoyer des courriers électroniques en tant qu'utilisateurs de l'organisation.Oui

Plus d'informations sur la permission : Référence des permissions de Microsoft Graph - Microsoft Graph | Microsoft Docs

Étape 2 : Appliquer une politique de restriction pour limiter la portée de l'autorisation

Pour garantir la meilleure sécurité possible et limiter les autorisations de l'application accordée à l'étape 2, il est nécessaire de limiter le droit d'envoyer du courrier à un seul compte de service utilisé à cette fin.

Pour cela, il est nécessaire de créer une ApplicationAccessPolicy.

#0. Select the application you want to configure:

$myAppId = {my app id}

#1. Connect to Exchange Online with the ExchangeOnlineManagement PowerShell module

Connect-ExchangeOnline

#2. Create a mail-enabled security group that contains all the accounts you want to send mails from

$myRestrictedGroup = New-DistributionGroup -Name "Mail service accounts" -Type "Security" -Members @("senderemail@mydomain.com")

#3. Optionally hide the group from the address list

Set-DistributionGroup -Identity $myRestrictedGroup.Identity -HiddenFromAddressListsEnabled $true

#4. Create the application access policy to only allow sending the app mails for the specified distribution group

$params = @{
     AccessRight = "RestrictAccess"
     AppId = $myAppId
     PolicyScopeGroupId = $myRestrictedGroup .PrimarySmtpAddress
     Description = "Restrict I2A Sender Mail app permissions to only allow access to service account"
}

New-ApplicationAccessPolicy @params

A partir de là, l'application "I2A Mail Sender" ne sera autorisée que pour l'adresse e-mail de l'expéditeur souhaitée "senderemail@mydomain.com"

Plus d'informations :

Étape 3 : Communiquez à votre gestionnaire de la réussite des clients l'adresse électronique autorisée.

Votre Client Success Manager configurera alors l'adresse électronique comme le compte utilisé pour envoyer des notifications aux utilisateurs finaux et aux équipes de sécurité.

    • L'adresse électronique qui sera utilisée pour envoyer des courriels (et les alias).
    • ID de l'application
    • App Secret