Configurer un service de recherche pour se connecter à l’aide d’une identité managée

Note

Recherche Azure AI est disponible via le portail Azure, les API REST et les SDK Azure. Il sous-tend également Foundry IQ, la couche de connaissances managée qui transforme le contenu d’entreprise en bases de connaissances réutilisables et prenant en charge les autorisations pour les agents dans le portail Microsoft Foundry.

Vous pouvez utiliser les principaux de sécurité de Microsoft Entra ID et les attributions de rôles pour les connexions sortantes d'Recherche Azure AI vers d’autres ressources Azure fournissant des données, une IA appliquée ou une vectorisation dans le cadre de l’indexation ou des requêtes.

Pour utiliser des rôles sur une connexion sortante, configurez d’abord votre service de recherche afin qu’il utilise une identité managée attribuée par le système ou par l’utilisateur comme principal de sécurité pour votre service de recherche dans un locataire Microsoft Entra. Une fois que vous avez une identité managée, vous pouvez attribuer des rôles pour l’accès autorisé. Les identités managées et les attributions de rôles éliminent la nécessité de transmettre des secrets et des informations d’identification dans un chaîne de connexion ou un code.

Conditions préalables

  • Service Recherche Azure AI dans n’importe quelle région du niveau Basic ou supérieur.

  • Ressource Azure qui accepte les demandes entrantes d’un principal de sécurité Microsoft Entra qui a une attribution de rôle valide.

  • Pour créer une identité managée, vous devez être propriétaire ou administrateur de l’accès utilisateur. Pour attribuer des rôles, vous devez être propriétaire, administrateur d'accès utilisateur, administrateur du contrôle d'accès basé sur les rôles, ou membre d'un rôle personnalisé avec des permissions d'écriture Microsoft.Authorization/roleAssignments.

Scénarios pris en charge

Vous pouvez utiliser des identités managées pour les scénarios suivants.

Scénario Système affecté Utilisateur affecté
Se connecter aux sources de données de l’indexeur1 Oui Oui
Connectez-vous aux modèles d’intégration et de saisie semi-automatique de conversation dans Azure OpenAI, Microsoft Foundry et Azure Functions via des compétences/vectoriseurs 2 Oui Oui
Connect à Azure Key Vault pour les clés gérées par le client Oui Oui
Connecter aux sessions de débogage (hébergées dans stockage Azure)1 Oui Non
Se connecter à un cache d’enrichissement, hébergé dans stockage Azure (préversion)1,3 Oui Oui 4
Connect to a Knowledge Store (hébergé dans stockage Azure)1 Oui Oui

1 Pour la connectivité entre la recherche et le stockage, la sécurité réseau impose des contraintes sur le type d’identité managée que vous pouvez utiliser. Seule une identité gérée par le système peut être utilisée pour une connexion dans la même région à stockage Azure, et cette connexion doit être effectuée via l'exception de service de confiance trusted service exception ou la règle d'instance de ressource. Pour plus d’informations, consultez l’accès à un compte de stockage protégé par le réseau .

2 Connections to Azure OpenAI, Foundry et Azure Functions via skills/vectorizers include: Compétence personnalisée, Vectoriseur personnalisé, Compétence d'intégration Azure OpenAI, Vectoriseur Azure OpenAI, Compétence AML et Vectoriseur du catalogue de modèles Microsoft Foundry.

Actuellement, le service de recherche IA ne peut pas se connecter à des tables sur un compte de stockage disposant d’un accès à clé partagée désactivé.

4 Identité managée affectée par l’utilisateur pour les connexions de cache d’enrichissement nécessite une API REST en préversion (2025-11-01-preview ou version ultérieure) ou un package sdk en préversion. Tous les autres scénarios d’identité managée attribuées par l’utilisateur dans ce tableau sont pris en charge dans l’API REST version 2026-04-01 et ultérieure.

Créer une identité gérée par le système

Une identité managée affectée par le système est un principal de sécurité Microsoft Entra ID qui est automatiquement créé et lié à une ressource Azure, telle qu'un service Recherche Azure AI.

Vous pouvez avoir une identité managée affectée par le système pour chaque service de recherche. Il est unique à votre service de moteur de recherche et reste lié au service pour toute sa durée de vie.

Lorsque vous activez une identité managée affectée par le système, Microsoft Entra ID crée un principal de sécurité pour votre service de recherche utilisé pour s'authentifier auprès d'autres ressources Azure. Vous pouvez ensuite utiliser cette identité dans les attributions de rôles pour l’accès autorisé aux données et aux opérations.

  1. Accédez à votre service de recherche dans le portail Azure.

  2. Dans le volet gauche, sélectionnez Identité des paramètres>.

  3. Sous l’onglet Affecté par le système , sous État, sélectionnez Activé.

  4. Sélectionnez Enregistrer.

    Screenshot de la page Identité dans Azure portal.

    Après avoir enregistré les paramètres, la page est mise à jour pour afficher un identificateur d’objet affecté à votre service de recherche.

    Capture d’écran d’un identificateur d’objet d’identité système.

Créer une identité gérée assignée à l'utilisateur

Une identité managée affectée par l’utilisateur est une ressource Azure qui peut être étendue aux abonnements, aux groupes de ressources ou aux types de ressources.

Vous pouvez créer plusieurs identités managées affectées par l’utilisateur pour plus de granularité dans les attributions de rôles. Par exemple, vous souhaiterez peut-être séparer les identités pour différentes applications et scénarios. En tant que ressource créée et gérée indépendamment, elle n’est pas liée au service lui-même.

Les étapes de configuration d’une identité managée affectée par l’utilisateur sont les suivantes :

  • Dans votre abonnement Azure, créez une identité managée assignée par l'utilisateur.

  • Sur votre service de recherche, associez l’identité managée affectée par l’utilisateur à votre service de recherche.

  • Sur d’autres services Azure auxquels vous souhaitez vous connecter, créez une attribution de rôle pour l’identité.

L’association d’une identité managée affectée par l’utilisateur à un service Recherche Azure AI est prise en charge dans le portail Azure, les API REST de gestion des recherches et les packages sdk qui fournissent la fonctionnalité.

  1. Connectez-vous au portail Azure.

  2. Dans le coin supérieur gauche de votre tableau de bord, sélectionnez Créer une ressource.

  3. Utilisez la zone de recherche pour rechercher l’identité managée affectée par l’utilisateur, puis sélectionnez Créer.

    Capture d'écran de la vignette d'identité managée assignée à l'utilisateur dans Place de marché Azure.

  4. Sélectionnez l’abonnement, le groupe de ressources et la région. Donnez un nom descriptif à l’identité.

  5. Sélectionnez Créer et attendre la fin du déploiement de la ressource.

    Il faut attendre plusieurs minutes avant de pouvoir utiliser l'identité.

  6. Dans la page de votre service de recherche, sélectionnez Paramètres>Identité.

  7. Sous l’onglet Utilisateur affecté , sélectionnez Ajouter.

  8. Sélectionnez l’abonnement et l’identité managée affectée par l’utilisateur que vous avez créée précédemment.

Attribuer un rôle

Une fois que vous avez une identité managée, attribuez des rôles qui déterminent les autorisations du service de recherche sur la ressource Azure.

  • Les autorisations de lecture sont nécessaires pour les connexions de données d’indexeur et pour accéder à une clé gérée par le client dans Azure Key Vault.

  • Les autorisations d’écriture sont nécessaires pour les fonctionnalités d’enrichissement IA qui utilisent stockage Azure pour héberger des données de session de débogage, la mise en cache d’enrichissement et le stockage de contenu à long terme dans un Magasin de Connaissances.

Les étapes suivantes illustrent le flux de travail d’attribution de rôle. Cet exemple concerne Azure OpenAI. Pour d’autres ressources Azure, consultez Connect to stockage Azure, Connect to Azure Cosmos DB ou Connect to Azure SQL.

  1. Accédez à votre ressource OpenAI Azure dans le portail Azure.

  2. Sélectionnez Contrôle d’accès dans le menu de gauche.

  3. Sélectionnez Ajouter , puis ajouter une attribution de rôle.

  4. Sous Rôles de fonction de travail, sélectionnez Utilisateur OpenAI Cognitive Services , puis Sélectionnez Suivant.

  5. Sous Membres, sélectionnez Identité managée , puis Membres.

  6. Filtrez par abonnement et type de ressource (services de recherche), puis sélectionnez l’identité managée de votre service de recherche.

  7. Sélectionnez Réviser + affecter.

Exemples de chaîne de connexion

Rappelez-vous de la description des scénarios que vous pouvez utiliser des identités managées dans des chaînes de connexion à d’autres ressources Azure. Cette section fournit des exemples.

Les connexions d’identité managée affectées par le système utilisent des versions d’API REST généralement disponibles. Les connexions d’identité managée affectées par l’utilisateur utilisent l’API REST version 2026-04-01 ou ultérieure, à l’exception des connexions de cache d’enrichissement, qui nécessitent toujours une préversion d’API.

Conseil

Vous pouvez créer la plupart de ces objets dans le portail Azure, en spécifiant une identité managée affectée par le système ou par l’utilisateur, puis afficher la définition JSON pour obtenir le chaîne de connexion.

Source de données Blob (identité managée système) :

Une source de données d’indexeur inclut une credentials propriété qui détermine la façon dont la connexion est établie à la source de données. L’exemple suivant montre une chaîne de connexion spécifiant l’ID de ressource unique d’un compte de stockage.

Une identité managée système est requise lorsqu'une chaîne de connexion est l’ID de ressource unique d’un service ou d’une application compatible avec Microsoft Entra ID. Une identité managée affectée par l’utilisateur est spécifiée via une identity propriété.

"credentials": {
    "connectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name};"
    }

Source de données Blob (identité managée par l’utilisateur) :

Une identité managée attribuée par l’utilisateur est prise en charge via la propriété identity sur SearchIndexerDataSource avec la version 2026-04-01 ou ultérieure de l’API REST.

"credentials": {
    "connectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name};"
    },
  . . .
"identity": {
    "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
    "userAssignedIdentity": "/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{user-assigned-managed-identity-name}"
  }

Base de connaissances (identité managée système) :

Une définition de la base de connaissances comprend une chaîne de connexion à stockage Azure. Le chaîne de connexion est l’ID de ressource unique de votre compte de stockage. Notez que la chaîne n’inclut pas de conteneurs ou de tables dans le chemin. Celles-ci sont définies dans la définition de projection incorporée, et non dans la chaîne de connexion.

"knowledgeStore": {
  "storageConnectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name};"
}

Base de connaissances (identité managée par l’utilisateur) :

Une identité managée affectée par l’utilisateur est prise en charge par le biais de la propriété identity sur SearchIndexerKnowledgeStore avec l’API REST version 2026-04-01 ou ultérieure.

"knowledgeStore": {
  "storageConnectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name};",
  "identity": {
    "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
    "userAssignedIdentity": "/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{user-assigned-managed-identity-name}"
  }
}

Cache d’enrichissement (préversion) :

Un indexeur crée, utilise et mémorise le conteneur utilisé pour les enrichissements mis en cache. Il n'est pas nécessaire d'inclure le conteneur dans le cache chaîne de connexion. Vous trouverez l’ID d’objet sur la page Identity de votre service de recherche dans le portail Azure.

"cache": {
  "enableReprocessing": true,
  "storageConnectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name};"
}

Session de débogage :

Une session de débogage s’exécute dans le portail Azure et prend un chaîne de connexion lorsque vous démarrez la session. Vous pouvez coller une chaîne similaire à l’exemple suivant.

"ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name}/{container-name};",

Compétence personnalisée :

Une compétence personnalisée cible le point de terminaison d’une fonction Azure ou d’une application hébergeant du code personnalisé.

  • uri est le point de terminaison de la fonction ou de l’application.

  • authResourceId indique au service de recherche de se connecter à l’aide d’une identité managée, en passant l’ID d’application de la fonction cible ou de l’application dans la propriété.

{
  "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
  "description": "A custom skill that can identify positions of different phrases in the source text",
  "uri": "https://contoso.count-things.com",
  "authResourceId": "<Azure-AD-registered-application-ID>",
  "batchSize": 4,
  "context": "/document",
  "inputs": [ ... ],
  "outputs": [ ...]
}

Exemples de connexion pour les modèles

Pour les connexions effectuées à l’aide d’identités managées, cette section présente des exemples d’informations de connexion utilisées par un service de recherche pour se connecter à un modèle sur une autre ressource. Une connexion via une identité managée système est transparente ; l’identité et les rôles sont en place et la connexion réussit s’ils sont correctement configurés. En revanche, une identité managée par l’utilisateur nécessite des propriétés de connexion supplémentaires.

Azure compétence d’incorporation OpenAI et Azure vectoriseur OpenAI :

Une compétence Azure OpenAI d'incorporation et un vectoriseur dans AI Search ciblent le point de terminaison d'un Azure OpenAI hébergeant un modèle d'incorporation. Le point de terminaison est spécifié dans la définition de compétence d'incorporation Azure OpenAI et/ou dans la définition de vectoriseur Azure OpenAI.

L’identité managée par le système est utilisée automatiquement si "apikey" elle "authIdentity" est vide, comme illustré dans l’exemple suivant. La propriété "authIdentity" est utilisée uniquement pour l’identité gérée assignée par l’utilisateur.

Exemple d’identité managée par le système :

{
  "@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
  "description": "Connects a deployed embedding model.",
  "resourceUri": "https://url.openai.azure.com/",
  "deploymentId": "text-embedding-ada-002",
  "modelName": "text-embedding-ada-002",
  "inputs": [
    {
      "name": "text",
      "source": "/document/content"
    }
  ],
  "outputs": [
    {
      "name": "embedding"
    }
  ]
}

Voici un exemple de vectoriseur configuré pour une identité managée affectée par le système. Un vectoriseur est spécifié dans un index de recherche.

 "vectorizers": [
    {
      "name": "my_azure_open_ai_vectorizer",
      "kind": "azureOpenAI",
      "azureOpenAIParameters": {
        "resourceUri": "https://url.openai.azure.com",
        "deploymentId": "text-embedding-ada-002",
        "modelName": "text-embedding-ada-002"
      }
    }
  ]

Exemple d’identité managée affectée par l’utilisateur :

Une identité managée affectée par l’utilisateur est utilisée si "apiKey" est vide et qu’une valeur valide pour "authIdentity" est fournie.

{
  "@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
  "description": "Connects a deployed embedding model.",
  "resourceUri": "https://url.openai.azure.com/",
  "deploymentId": "text-embedding-ada-002",
  "modelName": "text-embedding-ada-002",
  "inputs": [
    {
      "name": "text",
      "source": "/document/content"
    }
  ],
  "outputs": [
    {
      "name": "embedding"
    }
  ],
  "authIdentity": {
    "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
    "userAssignedIdentity": "/subscriptions/<subscription_id>/resourcegroups/<resource_group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-assigned-managed-identity-name>"
   }
}

Voici un exemple de vectoriseur configuré pour une identité managée affectée par l’utilisateur. Un vectoriseur est spécifié dans un index de recherche.

 "vectorizers": [
    {
      "name": "my_azure_open_ai_vectorizer",
      "kind": "azureOpenAI",
      "azureOpenAIParameters": {
        "resourceUri": "https://url.openai.azure.com",
        "deploymentId": "text-embedding-ada-002",
        "modelName": "text-embedding-ada-002"
        "authIdentity": {
            "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
            "userAssignedIdentity": "/subscriptions/<subscription_id>/resourcegroups/<resource_group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-assigned-managed-identity-name>"
          }
      }
    }
  ]

Vérifier l’accès au pare-feu

Si votre ressource Azure se trouve derrière un pare-feu, vérifiez qu'il existe une règle de trafic entrant qui admet les demandes de votre service de recherche et à partir du portail Azure.

Voir aussi