使用.NET Core创建Azure AD应用程序和服务主体(API和HTTP)

时间:2017-07-01 16:45:04

标签: azure .net-core azure-active-directory microsoft-graph azure-sdk-.net

要继续我以编程方式创建和Azure应用程序(这从https://stackoverflow.com/a/44753728/1332416继续),我拥有获取foosubscriptionID的核心,如下所示,但我'我是如何在本地创建应用程序及其相关服务主体的。这基本上是在PowerShell的情况下使用tenantIdNew-AzureRmADApplication的地方。这个问题在https://stackoverflow.com/a/44631758/1332416得到了部分回答,但看起来.NET Core可能是导致某些问题的原因,因为找不到类型。

更具体一点,我的代码如下

New-AzureRmADServicePrincipal

1 个答案:

答案 0 :(得分:2)

您可以获取访问令牌并调用Azure AD Graph API来创建应用程序和服务主体。 (Microsoft Graph API也允许它,但只允许通过beta端点)

您可以在此处找到应用程序实体文档:https://msdn.microsoft.com/en-us/library/azure/ad/graph/api/entity-and-complex-type-reference#application-entity

要获取令牌,您的应用需要在Azure AD for Azure AD Graph API中授予必要的委派/应用权限。

然后,当您获得令牌时,请使用import requests url = "https://www.clevelandorchestra.com/Services/PerformanceService.asmx/GetToolTipPerformancesForCalendar" payload = {"startDate": "2017-06-30T21:00:00.000Z", "endDate": "2017-12-31T21:00:00.000Z"} headers = {'content-type': "application/json"} json_response = requests.post(url, json=payload, headers=headers).json() for performance in json_response['d']: print(performance["performanceName"], performance["dateString"]) # Star-Spangled Spectacular Friday, June 30, 2017 # Blossom: Tchaikovskys Spectacular 1812 Overture Saturday, July 1, 2017 # Blossom: Tchaikovskys Spectacular 1812 Overture Sunday, July 2, 2017 # Blossom: A Salute to America Monday, July 3, 2017 # Blossom: A Salute to America Tuesday, July 4, 2017 作为资源。

然后你应该可以用这样的身体发布到https://graph.windows.net

https://graph.windows.net/tenant-id/applications?api-version=1.6

使用您的租户ID替换网址中的 tenant-id

这是创建的应用程序,在响应中您将获得创建的应用程序。

从中获取{ "displayName":"Test app", "identifierUris": [ "https://mytenant.onmicrosoft.com/testapp" ], "homePage":"http://localhost" } 字段,您将需要它来创建服务主体。

然后使用这样的正文发布:appId

https://graph.windows.net/tenant-id/servicePrincipals?api-version=1.6

这应该创建相应的服务主体。