Nem interaktív hitelesítési .NET HDInsight-alkalmazás létrehozása
Futtassa a Microsoft .NET Azure HDInsight-alkalmazást az alkalmazás saját identitása alatt (nem interaktív) vagy az alkalmazás bejelentkezett felhasználójának identitása alatt (interaktív). Ez a cikk bemutatja, hogyan hozhat létre nem interaktív hitelesítési .NET-alkalmazást az Azure-hoz való csatlakozáshoz és a HDInsight kezeléséhez. Egy interaktív alkalmazás mintájáért tekintse meg az Azure HDInsight Csatlakozás.
A nem interaktív .NET-alkalmazásból a következőkre van szüksége:
- Az Azure-előfizetés bérlőazonosítója (más néven címtár-azonosító). Lásd: Bérlőazonosító lekérése.
- A Microsoft Entra alkalmazás ügyfél-azonosítója. Lásd: Microsoft Entra-alkalmazás létrehozása és alkalmazásazonosító lekérése.
- A Microsoft Entra alkalmazás titkos kulcsa. Lásd: Alkalmazás-hitelesítési kulcs lekérése.
Előfeltételek
EGY HDInsight-fürt. Tekintse meg az első lépéseket ismertető oktatóanyagot.
Szerepkör hozzárendelése a Microsoft Entra alkalmazáshoz
Rendeljen hozzá egy szerepkört a Microsoft Entra-alkalmazáshoz, hogy engedélyeket adjon a műveletek végrehajtásához. A hatókört az előfizetés, az erőforráscsoport vagy az erőforrás szintjén állíthatja be. Az engedélyek a hatókör alacsonyabb szintjeire öröklődnek. Ha például hozzáad egy alkalmazást egy erőforráscsoport Olvasó szerepköréhez, az azt jelenti, hogy az alkalmazás elolvashatja az erőforráscsoportot és az abban lévő erőforrásokat. Ebben a cikkben a hatókört az erőforráscsoport szintjén állíthatja be. További információ: Azure-szerepkörök hozzárendelése az Azure-előfizetés erőforrásaihoz való hozzáférés kezeléséhez.
Tulajdonosi szerepkör hozzáadása a Microsoft Entra alkalmazáshoz
- Jelentkezzen be az Azure Portalra.
- Keresse meg azt az erőforráscsoportot, amelyen a jelen cikk későbbi részében futtatni fogja a Hive-lekérdezést a HDInsight-fürt. Ha nagy számú erőforráscsoportot használ, a szűrővel megkeresheti a kívánt erőforrást.
- Az erőforráscsoport menüjében válassza a Hozzáférés-vezérlés (IAM) lehetőséget.
- Válassza a Szerepkör-hozzárendelések lapot az aktuális szerepkör-hozzárendelések megtekintéséhez.
- A lap tetején válassza a + Hozzáadás lehetőséget.
- Az utasításokat követve adja hozzá a Tulajdonos szerepkört a Microsoft Entra-alkalmazáshoz. Miután sikeresen hozzáadta a szerepkört, az alkalmazás megjelenik a Tulajdonos szerepkör alatt.
HDInsight-ügyfélalkalmazás fejlesztése
Hozzon létre egy C# konzolalkalmazást.
Adja hozzá a következő NuGet-csomagokat :
Install-Package Microsoft.Azure.Common.Authentication -Pre
Install-Package Microsoft.Azure.Management.HDInsight -Pre
Install-Package Microsoft.Azure.Management.Resources -Pre
Futtassa az alábbi kódot:
using System; using System.Security; using Microsoft.Azure; using Microsoft.Azure.Common.Authentication; using Microsoft.Azure.Common.Authentication.Factories; using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Azure.Management.Resources; using Microsoft.Azure.Management.HDInsight; namespace CreateHDICluster { internal class Program { private static HDInsightManagementClient _hdiManagementClient; private static Guid SubscriptionId = new Guid("<Enter your Azure subscription ID>"); private static string tenantID = "<Enter your tenant ID (also called directory ID)>"; private static string applicationID = "<Enter your application ID>"; private static string secretKey = "<Enter the application secret key>"; private static void Main(string[] args) { var key = new SecureString(); foreach (char c in secretKey) { key.AppendChar(c); } var tokenCreds = GetTokenCloudCredentials(tenantID, applicationID, key); var subCloudCredentials = GetSubscriptionCloudCredentials(tokenCreds, SubscriptionId); var resourceManagementClient = new ResourceManagementClient(subCloudCredentials); resourceManagementClient.Providers.Register("Microsoft.HDInsight"); _hdiManagementClient = new HDInsightManagementClient(subCloudCredentials); var results = _hdiManagementClient.Clusters.List(); foreach (var name in results.Clusters) { Console.WriteLine("Cluster Name: " + name.Name); Console.WriteLine("\t Cluster type: " + name.Properties.ClusterDefinition.ClusterType); Console.WriteLine("\t Cluster location: " + name.Location); Console.WriteLine("\t Cluster version: " + name.Properties.ClusterVersion); } Console.WriteLine("Press Enter to continue"); Console.ReadLine(); } /// Get the access token for a service principal and provided key. public static TokenCloudCredentials GetTokenCloudCredentials(string tenantId, string clientId, SecureString secretKey) { var authFactory = new AuthenticationFactory(); var account = new AzureAccount { Type = AzureAccount.AccountType.ServicePrincipal, Id = clientId }; var env = AzureEnvironment.PublicEnvironments[EnvironmentName.AzureCloud]; var accessToken = authFactory.Authenticate(account, env, tenantId, secretKey, ShowDialog.Never).AccessToken; return new TokenCloudCredentials(accessToken); } public static SubscriptionCloudCredentials GetSubscriptionCloudCredentials(SubscriptionCloudCredentials creds, Guid subId) { return new TokenCloudCredentials(subId.ToString(), ((TokenCloudCredentials)creds).Token); } } }
Következő lépések
- Hozzon létre egy Microsoft Entra-alkalmazást és szolgáltatásnevet az Azure Portalon.
- Megtudhatja, hogyan hitelesíthet egy szolgáltatásnevet az Azure Resource Managerrel.
- További információ az Azure szerepköralapú hozzáférés-vezérléséről (Azure RBAC).