Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Lorsque vous utilisez des API, vous devrez peut-être accéder à Microsoft Defender pour point de terminaison sans utilisateur. Par exemple, vous pouvez créer un service qui s’exécute en arrière-plan et interagit avec Defender pour point de terminaison pour le compte de votre organization. Dans ce cas, vous devez créer une application qui peut accéder à Defender pour point de terminaison sans utilisateur.
L’accès à l’API nécessite une authentification OAuth2.0.
Configuration requise
Avoir le rôle Microsoft Entra pour créer une application dans Azure. Par exemple, Administrateur d’application.
Étape 1 : Créer une application dans Azure
Connectez-vous au Portail Azure.
Recherchez inscriptions d'applications et accédez à inscriptions d'applications.
Sélectionnez Nouvelle inscription.
Choisissez un nom pour votre application, puis sélectionnez Inscrire.
Dans la page de votre application, accédez à Gérer les > autorisations d’API > Ajouter des API d’autorisation > que mon organization utilise.
Dans la page Demander des autorisations d’API , recherchez WindowsDefenderATP et sélectionnez-le.
Sélectionnez le type d’autorisations dont vous avez besoin, puis sélectionnez Ajouter des autorisations.
Autorisations déléguées : connectez-vous avec votre application comme si vous étiez un utilisateur.
Autorisations d’application : accédez à l’API en tant que service.
Sélectionnez les autorisations appropriées pour votre application. Pour déterminer l’autorisation dont vous avez besoin, consultez la section Autorisations dans l’API que vous appelez. Voici deux exemples :
Pour exécuter des requêtes avancées, sélectionnez Exécuter des requêtes avancées.
Pour isoler un appareil, sélectionnez Isoler la machine.
Sélectionnez Ajouter une autorisation.
Étape 2 : Ajouter un secret à votre application
Cette section décrit l’authentification de votre application à l’aide d’un secret d’application. Pour authentifier votre application à l’aide d’un certificat, consultez Créer un certificat public auto-signé pour authentifier votre application.
Dans la page de l’application, sélectionnez Certificats & secrets>Nouveau secret client.
Dans le volet Ajouter une clé secrète client , ajoutez une description et une date d’expiration.
Sélectionnez Ajouter.
Copiez la valeur du secret que vous avez créé. Vous ne pourrez plus récupérer cette valeur après avoir quitté la page.
Dans la page de présentation de votre application, copiez l’ID d’application (client) et l’ID d’annuaire (locataire). Vous avez besoin de cet ID pour authentifier votre application.
Notez votre ID d’application et votre ID de locataire. Dans la page de votre application, accédez à Vue d’ensemble et copiez ce qui suit.
Applications multilocataires
Microsoft Defender pour point de terminaison partenaires doivent définir leurs applications pour qu’elles soient mutualisée. Définissez votre application sur une application multilocataire si vous envisagez de créer une application qui s’exécutera dans les locataires de plusieurs clients.
Dans la page de votre application Azure, accédez à Gérer l’authentification>.
Ajouter une plateforme.
Dans le volet Configurer les plateformes , sélectionnez Web.
Ajoutez
https://portal.azure.comaux URI de redirection et sélectionnez Configurer.Dans les options Types de comptes pris en charge , sélectionnez Comptes dans n’importe quel annuaire organisationnel , puis sélectionnez Enregistrer.
Une fois que vous avez exécuté votre application, vous devez l’approuver dans chaque locataire où vous envisagez de l’utiliser. Cela est dû au fait que votre application interagit avec Defender pour point de terminaison pour le compte de votre client. Vous ou votre client devez sélectionner le lien de consentement et approuver votre application. Donnez votre consentement à un utilisateur disposant de privilèges d’administrateur.
Voici comment former le lien de consentement. Remplacez par 00000000-0000-0000-0000-000000000000 votre ID d’application.
https://login.microsoftonline.com/common/oauth2/authorize?prompt=consent&client_id=00000000-0000-0000-0000-000000000000&response_type=code&sso_reload=true
Obtenir un jeton d’accès
Cette section répertorie quelques méthodes pour obtenir le jeton d’accès de votre application.
# This script acquires the App Context Token and stores it in the variable $token for later use.
# Paste your Tenant ID, App ID, and App Secret (App key) into the quotes below.
$tenantId = '' ### Paste your tenant ID here
$appId = '' ### Paste your Application ID here
$appSecret = '' ### Paste your Application key here
$sourceAppIdUri = 'https://api.securitycenter.microsoft.com/.default'
$oAuthUri = "https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token"
$authBody = [Ordered] @{
scope = "$sourceAppIdUri"
client_id = "$appId"
client_secret = "$appSecret"
grant_type = 'client_credentials'
}
$authResponse = Invoke-RestMethod -Method Post -Uri $oAuthUri -Body $authBody -ErrorAction Stop
$token = $authResponse.access_token
$token
Valider le jeton
Suivez le processus de cette section pour vous assurer que vous avez obtenu le jeton correct. Vous pouvez envoyer plusieurs requêtes avec le même jeton. Le jeton expire dans une heure.
Copiez et collez votre jeton dans JWT pour le décoder.
Vérifiez que vous obtenez une revendication de rôles avec les autorisations souhaitées.
Utiliser le jeton pour accéder à Microsoft Defender pour point de terminaison’API
Choisissez l’API que vous souhaitez utiliser.
Définissez l’en-tête d’autorisation dans la
httpdemande que vous envoyez àBearer {token}. Le porteur est le schéma d’autorisation.
Exemple
Cet exemple envoie une demande pour obtenir une liste d’alertes à l’aide de C#.
var httpClient = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://api.securitycenter.microsoft.com/api/alerts");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);
var response = httpClient.SendAsync(request).GetAwaiter().GetResult();