Konfigurieren von kundenseitig verwalteten Schlüsseln über verschiedene Mandanten hinweg

Wenn Sich Azure Key Vault und Azure KI-Suche in verschiedenen Azure-Mandanten befinden, verwenden Sie eine Microsoft Entra Multitenant-App, um die CMK-Verschlüsselung (Customer-Managed Key) mithilfe eines Schlüssels aus einem anderen Mandanten zu ermöglichen.

Voraussetzungen

  • Ein Mandant, der den Suchdienst mit den Inhalten bereitstellt, die Sie verschlüsseln möchten. Azure KI-Suche muss für den rollenbasierten Zugriff konfiguriert werden. Die Unterstützung für CMK erfordert die Basispreisstufe oder höher.

  • Ein separater Mandant mit dem Azure Key Vault und den Verschlüsselungsschlüsseln, die Sie verwenden möchten. Azure Key Vault muss für den rollenbasierten Zugriff konfiguriert werden.

  • Azure CLI zum Senden von Anforderungen.

Erstellen einer mehrinstanzenfähigen Microsoft Entra-Anwendung in Mandant A

Verwenden Sie die Azure CLI, um Anforderungen zu senden. Wir beziehen uns auf den Mandanten, der Azure KI-Suche enthält, als Mandant A.

  1. Abrufen der Mandanten-ID:

    az account show --query tenantId --output tsv

  2. Stellen Sie sicher, dass Sie bei Mandant A angemeldet sind:

    az login --tenant <tenant-A-id>

  3. Erstellen Sie die Anwendungsregistrierung:

    az ad app create --display-name cross-tenant-auth --sign-in-audience AzureADMultipleOrgs

  4. Speichern Sie die App-ID-Ausgabe aus diesem Schritt.

Hinzufügen eines geheimen Clientschlüssels zur Mehrinstanzenanwendung

  1. Führen Sie den folgenden Befehl aus, um den geheimen Clientschlüssel zur mehrinstanzenfähigen Anwendung in Mandant A hinzuzufügen:

    az ad app credential reset --id <multitenant-app-id>

  2. Speichern Sie die Kennwortausgabe aus diesem Schritt. Die Kennwortausgabe ist eine erforderliche Eingabe zum Einrichten von CMK in Azure KI-Suche.

  3. Um anzugeben, wann der geheime Clientschlüssel abläuft, können Sie einen Enddatumsparameter für diesen Befehl angeben.

    az ad app credential reset --id <multitenant-app-id> --end-date <end-date>

    Der Enddatumsparameter akzeptiert ein Datum im ISO 8601-Format. Beispiel: az ad app credential reset --id <multitenant-app-id> --end-date 2026-12-31.

Erstellen eines Dienstprinzipals in Mandant B für die mehrinstanzenfähige Anwendung

Wir verweisen auf den Mandanten, der Azure Key Vault enthält, als Mandant B. Erstellen Sie in Mandanten B einen Dienstprinzipal für die mehrinstanzenfähige Anwendung in Mandanten A.

  1. Melden Sie sich bei Mandant B an:

    az login --tenant <tenant-B-id>

  2. Erstellen Sie den Dienstprinzipal mithilfe der Ausgabe der Mehrinstanzen-App-ID aus dem ersten Schritt:

    az ad sp create --id <multitenant-app-id>

    Dieser Dienstprinzipal ist eine Instanz der mehrinstanzenfähigen Anwendung in Mandant A. Rollen, die diesem Dienstprinzipal im Mandanten B zugewiesen sind, werden auch der Mehrinstanzenanwendung in Mandant A zugewiesen.

  3. Überprüfen Sie die Verknüpfung zwischen Mandant A und B, indem Sie die "appOwnerOrganizationId" im folgenden Befehl überprüfen:

    az ad sp show --id <multitenant-app-id>

    Mit diesem Befehl werden die Dienstprinzipaldetails in JSON angezeigt. Suchen Sie in der Ausgabe nach dem Feld "appOwnerOrganizationId", um zu bestätigen, dass es mit der ID des Mandanten A übereinstimmt.

  4. Speichern Sie die Objekt-ID des Dienstprinzipals (aus dem "id" Feld) aus diesem Schritt. Die Objekt-ID ist eine erforderliche Eingabe zum Einrichten von CMK in Azure KI-Suche.

  5. Abrufen der Ressourcen-ID für Azure Key Vault:

    az keyvault show --name <key-vault-name> --query id --output tsv

  6. Weisen Sie dem neuen Dienstprinzipal die Rolle Key Vault Crypto Service Encryption User im Schlüsseltresor im Mandanten B zu.

    az role assignment create --assignee <service-principal-object-id> --role "Key Vault Crypto Service Encryption User" --scope <key-vault-resource-id>

    Ein Beispiel für diese Aufgabe könnte wie folgt aussehen:

    az role assignment create --assignee 12345678-1234-1234-1234-123456789012 --role "Key Vault Crypto Service Encryption User" --scope /subscriptions/87654321-4321-4321-4321-210987654321/resourceGroups/myKeyVaultRG/providers/Microsoft.KeyVault/vaults/myCompanyKeyVault

Testen der Verschlüsselung

Erstellen Sie einen Testindex im Suchdienst (Mandant A), um das Setup zu überprüfen. Verwenden Sie die mehrinstanzenfähige App-ID und die Anmeldeinformationen, die Sie im Objekt „Zugriffsanmeldeinformationen“ hinzugefügt haben, um sich beim Schlüsseltresor im anderen Mandanten zu authentifizieren.

Sie können dieses Beispielindexschema zum Testen verwenden. Sie können das Azure-Portal verwenden, um einen Index hinzuzufügen und diesen JSON bereitzustellen, oder einen REST-Client verwenden, um eine Create Index-Anforderung zu senden.

{
  "name": "cross-tenant-cmk-test", 
  "fields": [ 
        { 
            "name": "id", 
            "type": "Edm.String", 
            "key": true 
        } 
      ], 
  "encryptionKey": { 
    "keyVaultUri": "https://myCompanyKeyVault.vault.azure.net/", 
    "keyVaultKeyName": "search-encryption-key", 
    "keyVaultKeyVersion": "abc123def456ghi789", 
    "accessCredentials": { 
      "applicationId": "12345678-1234-1234-1234-123456789012", 
      "applicationSecret": "secretValueFromStep2" 
    } 
  } 
}

Überprüfen Sie, ob der Index erfolgreich erstellt wurde:

GET https://<search-service>.search.windows.net/indexes/cross-tenant-cmk-test?api-version=2025-09-01

Weitere Informationen zum Drehen oder Verwalten von Schlüsseln finden Sie unter Konfigurieren von vom Kunden verwalteten Schlüsseln für die Datenverschlüsselung.