Azure Veri Gezgini kümenize iki tür kimlik verilebilir:
Sistem tarafından atanan kimlik: Kümenize bağlıdır ve kaynağınız silinirse silinir. Kümede yalnızca bir sistem tarafından atanan kimlik bulunabilir.
Kullanıcı tarafından atanan kimlik: Kümenize atanabilen tek başına Azure kaynağı. Bir kümenin kullanıcı tarafından atanan birden çok kimliği olabilir.
Bu makalede, Azure Veri Gezgini kümeleri için sistem tarafından atanan ve kullanıcı tarafından atanan yönetilen kimliklerin nasıl ekleneceği ve kaldırılacağı gösterilmektedir.
Not
Azure Veri Gezgini kümeniz abonelikler veya kiracılar arasında geçirilirse Azure Veri Gezgini için yönetilen kimlikler beklendiği gibi davranmaz. Uygulamanın yeni bir kimlik alması gerekir. Bu kimlik, özelliği devre dışı bırakıpyeniden etkinleştirerek yapılabilir. Aşağı akış kaynaklarının erişim ilkelerinin de yeni kimliği kullanacak şekilde güncelleştirilmiş olması gerekir.
Sistem tarafından atanan kimlik ekleme
Kümenize bağlı ve kümeniz silinirse silinen, sistem tarafından atanan bir kimlik atayın. Kümede yalnızca bir sistem tarafından atanan kimlik bulunabilir. Sistem tarafından atanan kimlikle küme oluşturmak için kümede ek bir özellik ayarlanması gerekir. Aşağıda ayrıntılı olarak açıklandığı gibi Azure portal, C# veya Resource Manager şablonunu kullanarak sistem tarafından atanan kimliği ekleyin.
Kaynaklara erişebilen bir Azure AD uygulaması ve hizmet sorumlusu oluşturun. Abonelik kapsamına rol ataması ekler ve gerekli Directory (tenant) ID, Application IDve Client Secret'yi alırsınız.
Kümenizi oluşturma veya güncelleştirme
Özelliğini kullanarak kümenizi oluşturun veya güncelleştirin Identity :
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);
Kümenizin başarıyla oluşturulup oluşturulmadığını veya bir kimlikle güncelleştirilip güncelleştirilmediğini denetlemek için aşağıdaki komutu çalıştırın:
Sonuç değeriyle birlikte Succeeded içeriyorsaProvisioningState, küme oluşturulmuş veya güncelleştirilmiş ve aşağıdaki özelliklere sahip olmalıdır:
var principalGuid = clusterData.Identity.PrincipalId;
var tenantGuid = clusterData.Identity.TenantId;
PrincipalId ve TenantId GUID'lerle değiştirilir. özelliği, TenantId kimliğin ait olduğu Azure AD kiracısını tanımlar.
PrincipalId, kümenin yeni kimliği için benzersiz bir tanımlayıcıdır. Azure AD içinde hizmet sorumlusu, App Service veya Azure İşlevleri örneğine verdiğiniz adla aynı ada sahiptir.
Azure Resource Manager şablonu kullanarak sistem tarafından atanan kimlik ekleme
Sistem tarafından atanan türü eklemek, Azure'a kümeniz için kimlik oluşturmasını ve yönetmesini bildirir. Türdeki Microsoft.Kusto/clusters herhangi bir kaynak, kaynak tanımına aşağıdaki özellik eklenerek bir kimlikle oluşturulabilir:
Kümede aynı anda hem sistem tarafından atanan hem de kullanıcı tarafından atanan kimlikler bulunabilir.
type Özelliği şu şekilde olacaktır:SystemAssigned,UserAssigned
Küme oluşturulduğunda aşağıdaki ek özelliklere sahiptir:
<TENANTID> ve <PRINCIPALID> GUID'lerle değiştirilir. özelliği, TenantId kimliğin ait olduğu Azure AD kiracısını tanımlar.
PrincipalId, kümenin yeni kimliği için benzersiz bir tanımlayıcıdır. Azure AD içinde hizmet sorumlusu, App Service veya Azure İşlevleri örneğine verdiğiniz adla aynı ada sahiptir.
Sistem tarafından atanan kimliği kaldırma
Sistem tarafından atanan kimliğin kaldırılması, kimliği Azure AD'dan da siler. Küme kaynağı silindiğinde sistem tarafından atanan kimlikler de Azure AD otomatik olarak kaldırılır. Sistem tarafından atanan kimlik, özelliği devre dışı bırakılarak kaldırılabilir. Aşağıda ayrıntıları verilen Azure portal, C# veya Resource Manager şablonunu kullanarak sistem tarafından atanan kimliği kaldırın.
Kimlik bölmesinde >Sistem tarafından atanan sekmesi:
Durum kaydırıcısını Kapalı konumuna getirin.
Kaydet’i seçin
Sistem tarafından atanan kimliği devre dışı bırakmak için açılır pencerede Evet'i seçin.
Kimlik bölmesi, sistem tarafından atanan kimliğin eklenmesinden öncekiyle aynı koşula geri döner.
C kullanarak sistem tarafından atanan kimliği kaldırma #
Sistem tarafından atanan kimliği kaldırmak için aşağıdakileri çalıştırın:
var clusterPatch = new ClusterUpdate(identity: new Identity(IdentityType.None));
await kustoManagementClient.Clusters.UpdateAsync(resourceGroupName, clusterName, clusterPatch);
Azure Resource Manager şablonu kullanarak sistem tarafından atanan kimliği kaldırma
Sistem tarafından atanan kimliği kaldırmak için aşağıdakileri çalıştırın:
{
"identity": {
"type": "None"
}
}
Not
Kümede aynı anda hem sistem tarafından atanan hem de kullanıcı tarafından atanan kimlikler varsa, sistem tarafından atanan kimlik kaldırma işleminden type sonra özellik UserAssigned
Kullanıcı tarafından atanan kimlik ekleme
Kümenize kullanıcı tarafından atanan bir yönetilen kimlik atayın. Bir kümenin birden fazla kullanıcı tarafından atanan kimliği olabilir. Kullanıcı tarafından atanan kimlikle küme oluşturmak için kümede ek bir özellik ayarlanması gerekir. Aşağıda ayrıntılı olarak açıklandığı gibi Azure portal, C# veya Resource Manager şablonunu kullanarak kullanıcı tarafından atanan kimliği ekleyin.
Kaynaklara erişebilen bir Azure AD uygulaması ve hizmet sorumlusu oluşturun. Abonelik kapsamına rol ataması ekler ve gerekli Directory (tenant) ID, Application IDve Client Secret'yi alırsınız.
Kümenizi oluşturma veya güncelleştirme
Özelliğini kullanarak kümenizi oluşturun veya güncelleştirin Identity :
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);
Kümenizin başarıyla oluşturulup oluşturulmadığını veya bir kimlikle güncelleştirilip güncelleştirilmediğini denetlemek için aşağıdaki komutu çalıştırın:
Sonuç değeriyle birlikte Succeeded içeriyorsaProvisioningState, küme oluşturulmuş veya güncelleştirilmiş ve aşağıdaki özelliklere sahip olmalıdır:
var userIdentity = clusterData.Identity.UserAssignedIdentities[userIdentityResourceId];
var principalGuid = userIdentity.PrincipalId;
var clientGuid = userIdentity.ClientId;
PrincipalId, Azure AD yönetimi için kullanılan kimliğin benzersiz tanımlayıcısıdır.
ClientId, uygulamanın çalışma zamanı çağrıları sırasında hangi kimliğin kullanılacağını belirtmek için kullanılan yeni kimliği için benzersiz bir tanımlayıcıdır.
Azure Resource Manager şablonu kullanarak kullanıcı tarafından atanan kimlik ekleme
Kaynak tanımına aşağıdaki özellik eklenerek, <RESOURCEID> yerine istenen kimliğin kaynak kimliği eklenerek kullanıcı tarafından atanan kimlikle türdeki Microsoft.Kusto/clusters herhangi bir kaynak oluşturulabilir:
PrincipalId, Azure AD yönetimi için kullanılan kimliğin benzersiz tanımlayıcısıdır.
ClientId, uygulamanın çalışma zamanı çağrıları sırasında hangi kimliğin kullanılacağını belirtmek için kullanılan yeni kimliği için benzersiz bir tanımlayıcıdır.
Not
Kümede aynı anda hem sistem tarafından atanan hem de kullanıcı tarafından atanan kimlikler bulunabilir. Bu durumda özelliği type olacaktır SystemAssigned,UserAssigned.
Kullanıcı tarafından atanan yönetilen kimliği kümeden kaldırma
Aşağıda ayrıntılı olarak açıklandığı gibi Azure portal, C# veya Resource Manager şablonunu kullanarak kullanıcı tarafından atanan kimliği kaldırın.
Daha önce oluşturduğunuz kimliği arayın ve seçin.
Kaldır’ı seçin.
Kullanıcı tarafından atanan kimliği kaldırmak için açılır pencerede Evet'i seçin.
Kimlik bölmesi, kullanıcı tarafından atanan kimliğin eklenmesinden öncekiyle aynı koşula geri döner.
C kullanarak kullanıcı tarafından atanan kimliği kaldırma #
Kullanıcı tarafından atanan kimliği kaldırmak için aşağıdakileri çalıştırın:
var clusterUpdate = new ClusterUpdate(
identity: new Identity(
IdentityType.UserAssigned,
userAssignedIdentities: new Dictionary<string, IdentityUserAssignedIdentitiesValue>(1)
{
{ userIdentityResourceId, null }
}
)
);
await kustoManagementClient.Clusters.UpdateAsync(resourceGroupName, clusterName, clusterUpdate);
Azure Resource Manager şablonu kullanarak kullanıcı tarafından atanan kimliği kaldırma
Kullanıcı tarafından atanan kimliği kaldırmak için aşağıdakileri çalıştırın:
Kimlikleri kaldırmak için değerlerini null olarak ayarlayın. Diğer tüm mevcut kimlikler etkilenmez.
Kullanıcı tarafından atanan tüm kimlikleri type kaldırmak için özelliği olur None.
Kümede aynı anda hem sistem tarafından atanan hem de kullanıcı tarafından atanan kimlikler varsa, type özellik kaldırılacak veya SystemAssigned kullanıcı tarafından atanan tüm kimliklerin kaldırılacağı kimliklerle birlikte olurSystemAssigned,UserAssigned.