Eine verwaltete Identität aus Azure Active Directory ermöglicht Ihrem Cluster den einfachen Zugriff auf andere azure AD-geschützte Ressourcen wie Azure Key Vault. Da die Identität von der Azure-Plattform verwaltet wird, brauchen Sie keine Passwörter einrichten oder aktualisieren. Verwaltete Identitätskonfiguration wird derzeit nur unterstützt, um vom Kunden verwaltete Schlüssel für Ihren Cluster zuzu aktivieren.
Eine Übersicht über verwaltete Identitäten finden Sie unter Authentifizieren mithilfe von verwalteten Identitäten in Ihrem Azure Data Explorer-Cluster.
Ihr Azure Data Explorer-Cluster kann zwei Arten von Identitäten zugewiesen werden.
-
vom System zugewiesene Identität: An Ihren Cluster gebunden und gelöscht, wenn Ihre Ressource gelöscht wird. Ein Cluster kann nur eine vom System zugewiesene Identität aufweisen.
-
vom Benutzer zugewiesene Identität: Eigenständige Azure-Ressource, die Ihrem Cluster zugewiesen werden kann. Ein Cluster kann mehrere vom Benutzer zugewiesene Identitäten aufweisen.
In diesem Artikel erfahren Sie, wie Sie vom System zugewiesene und vom Benutzer zugewiesene verwaltete Identitäten für Azure Data Explorer-Cluster hinzufügen und entfernen.
Hinweis
Verwaltete Identitäten für Azure Data Explorer verhalten sich nicht wie erwartet, wenn Ihr Azure Data Explorer-Cluster über Abonnements oder Mandanten hinweg migriert wird. Die App muss eine neue Identität erhalten, die durch Deaktivieren und erneutes Aktivieren der Funktion erfolgen kann. Zugriffsrichtlinien von nachgelagerten Ressourcen müssen auch aktualisiert werden, um die neue Identität zu verwenden.
Hinzufügen einer systemseitig zugewiesenen Identität
Weisen Sie eine vom System zugewiesene Identität zu, die an Ihren Cluster gebunden ist, und wird gelöscht, wenn Ihr Cluster gelöscht wird. Ein Cluster kann nur eine vom System zugewiesene Identität aufweisen. Zum Erstellen eines Clusters mit einer vom System zugewiesenen Identität muss eine zusätzliche Eigenschaft für den Cluster festgelegt werden. Fügen Sie die vom System zugewiesene Identität mithilfe der Azure-Portal-, C#- oder Resource Manager-Vorlage wie unten beschrieben hinzu.
Hinzufügen einer vom System zugewiesenen Identität mithilfe des Azure-Portals
Melden Sie sich beim Azure-Portal an.
Neuer Azure Data Explorer-Cluster
Erstellen eines Azure Data Explorer-Clusters
Wählen Sie auf der Registerkarte Sicherheits->vom System zugewiesene IdentitätBeiaus. Um die vom System zugewiesene Identität zu entfernen, wählen Sie Aus.
Wählen Sie Weiter: Kategorien > oder Überprüfen und erstellen Sie, um den Cluster zu erstellen.
Vorhandener Azure Data Explorer-Cluster
Öffnen Sie einen vorhandenen Azure Data Explorer-Cluster.
Wählen Sie Einstellungen>Identität im linken Bereich des Portals aus.
Im Bereich Identität>System zugewiesene Registerkarte:
- Verschieben Sie den Status- Schieberegler auf Beim.
- Wählen SieSpeichern
- Wählen Sie im Popupfenster Ja
Nach ein paar Minuten erscheint auf dem Bildschirm:
-
Objekt-ID- – Wird für vom Kunden verwaltete Schlüssel verwendet
-
Berechtigungen – Relevante Rollenzuweisungen auswählen
Hinzufügen einer vom System zugewiesenen Identität mit C#
Voraussetzungen
So richten Sie eine verwaltete Identität mithilfe des Azure Data Explorer C#-Clients ein:
Erstellen oder Aktualisieren des Clusters
Erstellen oder aktualisieren Sie Ihren Cluster mithilfe der Identity-Eigenschaft:
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID
var clientSecret = "PlaceholderClientSecret"; //Client Secret
var subscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var authClient = ConfidentialClientApplicationBuilder.Create(clientId)
.WithAuthority($"https://login.microsoftonline.com/{tenantId}")
.WithClientSecret(clientSecret)
.Build();
var result = authClient.AcquireTokenForClient(new[] { "https://management.core.windows.net/" }).ExecuteAsync().Result;
var credentials = new TokenCredentials(result.AccessToken, result.TokenType);
var kustoManagementClient = new KustoManagementClient(credentials) { SubscriptionId = subscriptionId };
var resourceGroupName = "testrg";
var clusterName = "mykustocluster";
var clusterData = new Cluster(
location: "Central US",
sku: new AzureSku("Standard_E8ads_v5", "Standard", 5),
identity: new Identity(IdentityType.SystemAssigned)
);
await kustoManagementClient.Clusters.CreateOrUpdateAsync(resourceGroupName, clusterName, clusterData);
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Ihr Cluster erfolgreich erstellt oder mit einer Identität aktualisiert wurde:
clusterData = await kustoManagementClient.Clusters.GetAsync(resourceGroupName, clusterName);
Wenn das Ergebnis ProvisioningState mit dem wert Succeeded enthält, wurde der Cluster erstellt oder aktualisiert und sollte die folgenden Eigenschaften aufweisen:
var principalGuid = clusterData.Identity.PrincipalId;
var tenantGuid = clusterData.Identity.TenantId;
PrincipalId und TenantId werden durch GUIDs ersetzt. Die eigenschaft TenantId identifiziert den Azure AD-Mandanten, zu dem die Identität gehört. Die PrincipalId ist ein eindeutiger Bezeichner für die neue Identität des Clusters. Innerhalb von Azure AD hat der Dienstprinzipal denselben Namen wie Ihre App Service- oder Azure Functions-Instanz.
Hinzufügen einer systemseitig zugewiesenen Identität unter Verwendung einer Azure Resource Manager-Vorlage
Mithilfe einer Azure Resource Manager-Vorlage kann die Bereitstellung Ihrer Azure-Ressourcen automatisiert werden. Weitere Informationen zum Bereitstellen in Azure Data Explorer finden Sie unter Erstellen eines Azure Data Explorer-Clusters und einer Datenbank mithilfe einer Azure Resource Manager-Vorlage.
Das Hinzufügen des vom System zugewiesenen Typs weist Azure an, die Identität für Ihren Cluster zu erstellen und zu verwalten. Ressourcen vom Typ Microsoft.Kusto/clusters können mit einer Identität erstellt werden, indem die folgende Eigenschaft in der Ressourcendefinition eingeschlossen wird:
{
"identity": {
"type": "SystemAssigned"
}
}
Beispiel:
{
"apiVersion": "2019-09-07",
"type": "Microsoft.Kusto/clusters",
"name": "[variables('clusterName')]",
"location": "[resourceGroup().location]",
"identity": {
"type": "SystemAssigned"
}
}
Hinweis
Ein Cluster kann sowohl system-zugewiesene als auch vom Benutzer zugewiesene Identitäten gleichzeitig haben. Die eigenschaft type wäre SystemAssigned,UserAssigned
Wenn der Cluster erstellt wird, verfügt er über die folgenden zusätzlichen Eigenschaften:
{
"identity": {
"type": "SystemAssigned",
"tenantId": "<TENANTID>",
"principalId": "<PRINCIPALID>"
}
}
<TENANTID> und <PRINCIPALID> werden durch GUIDs ersetzt. Die eigenschaft TenantId identifiziert den Azure AD-Mandanten, zu dem die Identität gehört. Die PrincipalId ist ein eindeutiger Bezeichner für die neue Identität des Clusters. Innerhalb von Azure AD hat der Dienstprinzipal denselben Namen wie Ihre App Service- oder Azure Functions-Instanz.
Entfernen einer vom System zugewiesenen Identität
Durch das Entfernen einer vom System zugewiesenen Identität wird sie auch aus Azure AD gelöscht. Vom System zugewiesene Identitäten werden auch automatisch aus Azure AD entfernt, wenn die Clusterressource gelöscht wird. Eine vom System zugewiesene Identität kann durch Deaktivieren des Features entfernt werden. Entfernen Sie die vom System zugewiesene Identität mithilfe der Azure-Portal-, C#- oder Resource Manager-Vorlage wie unten beschrieben.
Entfernen einer vom System zugewiesenen Identität mithilfe des Azure-Portals
Melden Sie sich beim Azure-Portal an.
Wählen Sie Einstellungen>Identität im linken Bereich des Portals aus.
Im Bereich Identität>vom System zugewiesene Registerkarte:
- Verschieben Sie den Status- Schieberegler auf Aus.
- Wählen SieSpeichern
- Wählen Sie im Popupfenster Ja aus, um die vom System zugewiesene Identität zu deaktivieren. Der Bereich Identität wird auf denselben Zustand wie vor dem Hinzufügen der systemzugewiesenen Identität zurückgesetzt.
Entfernen einer vom System zugewiesenen Identität mit C#
Führen Sie Folgendes aus, um die vom System zugewiesene Identität zu entfernen:
var clusterPatch = new ClusterUpdate(identity: new Identity(IdentityType.None));
await kustoManagementClient.Clusters.UpdateAsync(resourceGroupName, clusterName, clusterPatch);
Entfernen einer vom System zugewiesenen Identität mithilfe einer Azure Resource Manager-Vorlage
Führen Sie Folgendes aus, um die vom System zugewiesene Identität zu entfernen:
{
"identity": {
"type": "None"
}
}
Hinweis
Wenn der Cluster sowohl vom System als auch von Benutzern zugewiesene Identitäten gleichzeitig verwendet hat, wird die type-Eigenschaft nach dem Entfernen der vom System zugewiesenen Identität UserAssigned
Hinzufügen einer benutzerseitig zugewiesenen Identität
Weisen Sie Ihrem Cluster eine vom Benutzer zugewiesene verwaltete Identität zu. Ein Cluster kann mehrere vom Benutzer zugewiesene Identitäten aufweisen. Zum Erstellen eines Clusters mit einer vom Benutzer zugewiesenen Identität muss eine zusätzliche Eigenschaft für den Cluster festgelegt werden. Fügen Sie die vom Benutzer zugewiesene Identität mithilfe der Azure-Portal-, C#- oder Ressourcen-Manager-Vorlage wie unten beschrieben hinzu.
Hinzufügen einer vom Benutzer zugewiesenen Identität mithilfe des Azure-Portals
Melden Sie sich beim Azure-Portal an.
Erstellen einer vom Benutzer zugewiesenen verwalteten Identitätsressource.
Öffnen Sie einen vorhandenen Azure Data Explorer-Cluster.
Wählen Sie Einstellungen>Identität im linken Bereich des Portals aus.
Wählen Sie auf der Registerkarte "Benutzer zugewiesen" Hinzufügenaus.
Suchen Sie nach der identität, die Sie zuvor erstellt haben, und wählen Sie sie aus. Wählen Sie Hinzufügen aus.
Hinzufügen einer vom Benutzer zugewiesenen Identität mit C#
Voraussetzungen
So richten Sie eine verwaltete Identität mithilfe des Azure Data Explorer C#-Clients ein:
Erstellen oder Aktualisieren des Clusters
Erstellen oder aktualisieren Sie Ihren Cluster mithilfe der Identity-Eigenschaft:
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID
var clientSecret = "PlaceholderClientSecret"; //Client Secret
var subscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var authClient = ConfidentialClientApplicationBuilder.Create(clientId)
.WithAuthority($"https://login.microsoftonline.com/{tenantId}")
.WithClientSecret(clientSecret)
.Build();
var result = authClient.AcquireTokenForClient(new[] { "https://management.core.windows.net/" }).ExecuteAsync().Result;
var credentials = new TokenCredentials(result.AccessToken, result.TokenType);
var kustoManagementClient = new KustoManagementClient(credentials) { SubscriptionId = subscriptionId };
var resourceGroupName = "testrg";
var clusterName = "mykustocluster";
var userIdentityResourceId = $"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identityName>";
var clusterData = new Cluster(
location: "Central US",
sku: new AzureSku("Standard_E8ads_v5", "Standard", 5),
identity: new Identity(
IdentityType.UserAssigned,
userAssignedIdentities: new Dictionary<string, IdentityUserAssignedIdentitiesValue>(1)
{
{ userIdentityResourceId, new IdentityUserAssignedIdentitiesValue() }
}
)
);
await kustoManagementClient.Clusters.CreateOrUpdateAsync(resourceGroupName, clusterName, clusterData);
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Ihr Cluster erfolgreich erstellt oder mit einer Identität aktualisiert wurde:
clusterData = await kustoManagementClient.Clusters.GetAsync(resourceGroupName, clusterName);
Wenn das Ergebnis ProvisioningState mit dem wert Succeeded enthält, wurde der Cluster erstellt oder aktualisiert und sollte die folgenden Eigenschaften aufweisen:
var userIdentity = clusterData.Identity.UserAssignedIdentities[userIdentityResourceId];
var principalGuid = userIdentity.PrincipalId;
var clientGuid = userIdentity.ClientId;
Die PrincipalId ist ein eindeutiger Bezeichner für die Identität, die für die Azure AD-Verwaltung verwendet wird. Die ClientId ist ein eindeutiger Bezeichner für die neue Identität der Anwendung, die verwendet wird, um anzugeben, welche Identität während Laufzeitaufrufen verwendet werden soll.
Hinzufügen einer vom Benutzer zugewiesenen Identität mithilfe einer Azure Resource Manager-Vorlage
Mithilfe einer Azure Resource Manager-Vorlage kann die Bereitstellung Ihrer Azure-Ressourcen automatisiert werden. Weitere Informationen zum Bereitstellen in Azure Data Explorer finden Sie unter Erstellen eines Azure Data Explorer-Clusters und einer Datenbank mithilfe einer Azure Resource Manager-Vorlage.
Jede Ressource vom Typ Microsoft.Kusto/clusters kann mit einer vom Benutzer zugewiesenen Identität erstellt werden, indem die folgende Eigenschaft in die Ressourcendefinition eingeschlossen wird, wobei <RESOURCEID> durch die Ressourcen-ID der gewünschten Identität ersetzt wird:
{
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"<RESOURCEID>": {}
}
}
}
Beispiel:
{
"apiVersion": "2019-09-07",
"type": "Microsoft.Kusto/clusters",
"name": "[variables('clusterName')]",
"location": "[resourceGroup().location]",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', variables('identityName'))]": {}
}
},
"dependsOn": [
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', variables('identityName'))]"
]
}
Wenn der Cluster erstellt wird, verfügt er über die folgenden zusätzlichen Eigenschaften:
{
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"<RESOURCEID>": {
"principalId": "<PRINCIPALID>",
"clientId": "<CLIENTID>"
}
}
}
}
Die PrincipalId ist ein eindeutiger Bezeichner für die Identität, die für die Azure AD-Verwaltung verwendet wird. Die ClientId ist ein eindeutiger Bezeichner für die neue Identität der Anwendung, die verwendet wird, um anzugeben, welche Identität während Laufzeitaufrufen verwendet werden soll.
Hinweis
Ein Cluster kann sowohl system-zugewiesene als auch vom Benutzer zugewiesene Identitäten gleichzeitig haben. In diesem Fall hat die type-Eigenschaft den Wert SystemAssigned,UserAssigned.
Entfernen einer vom Benutzer zugewiesenen verwalteten Identität aus einem Cluster
Entfernen Sie die vom Benutzer zugewiesene Identität mithilfe der Azure-Portal-, C#- oder Resource Manager-Vorlage wie unten beschrieben.
Entfernen einer vom Benutzer zugewiesenen verwalteten Identität mithilfe des Azure-Portals
Melden Sie sich beim Azure-Portal an.
Wählen Sie Einstellungen>Identität im linken Bereich des Portals aus.
Wählen Sie die Registerkarte Benutzer zugewiesen aus.
Suchen Sie nach der identität, die Sie zuvor erstellt haben, und wählen Sie sie aus. Wählen Sie , entfernen Sie.
Wählen Sie im Popupfenster Ja aus, um die vom Benutzer zugewiesene Identität zu entfernen. Der Identitätspaneel kehrt in denselben Zustand zurück wie vor dem Hinzufügen der vom Benutzer zugewiesenen Identität.
Entfernen einer vom Benutzer zugewiesenen Identität mithilfe von C#
Führen Sie Folgendes aus, um die vom Benutzer zugewiesene Identität zu entfernen:
var clusterUpdate = new ClusterUpdate(
identity: new Identity(
IdentityType.UserAssigned,
userAssignedIdentities: new Dictionary<string, IdentityUserAssignedIdentitiesValue>(1)
{
{ userIdentityResourceId, null }
}
)
);
await kustoManagementClient.Clusters.UpdateAsync(resourceGroupName, clusterName, clusterUpdate);
Entfernen einer vom Benutzer zugewiesenen Identität mithilfe einer Azure Resource Manager-Vorlage
Führen Sie Folgendes aus, um die vom Benutzer zugewiesene Identität zu entfernen:
{
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"<RESOURCEID>": null
}
}
}
Hinweis
- Um Identitäten zu entfernen, legen Sie deren Werte auf NULL fest. Alle anderen vorhandenen Identitäten sind nicht betroffen.
- Um alle vom Benutzer zugewiesenen Identitäten zu entfernen, würde die Eigenschaft
type zu Nonewerden,
- Wenn der Cluster sowohl systemzugewiesene als auch benutzerzugewiesene Identitäten gleichzeitig hat, würde die Eigenschaft
type verwendet, um die zu entfernenden Identitäten anzugeben: entweder SystemAssigned,UserAssigned, um bestimmte Identitäten zu entfernen, oder SystemAssigned, um alle benutzerzugewiesenen Identitäten zu entfernen.
Nächste Schritte