如何使用Microsoft.Azure.Management.Graph.RBAC.Fluent将应用程序添加到Azure广告

如何使用Microsoft.Azure.Management.Graph.RBAC.Fluent将应用程序添加到Azure广告,azure,azure-active-directory,azure-resource-manager,Azure,Azure Active Directory,Azure Resource Manager,我正在使用以编程方式在Azure中创建资源。该软件包要求我创建Azure AD应用程序,我的控制台应用程序将使用该应用程序对资源管理api进行身份验证。到目前为止还不错——我创建了那个广告应用程序,并在我的控制台应用程序中使用它,正常的资源管理工作正常 现在,我想开始使用包以编程方式创建其他Azure AD应用程序,这是上述包的直接依赖项。虽然我可以使用该软件包(例如,用于列出现有Azure AD应用程序),但一旦我尝试使用该软件包创建新的Azure AD应用程序,我就会收到授权问题401。我试

我正在使用以编程方式在Azure中创建资源。该软件包要求我创建Azure AD应用程序,我的控制台应用程序将使用该应用程序对资源管理api进行身份验证。到目前为止还不错——我创建了那个广告应用程序,并在我的控制台应用程序中使用它,正常的资源管理工作正常

现在,我想开始使用包以编程方式创建其他Azure AD应用程序,这是上述包的直接依赖项。虽然我可以使用该软件包(例如,用于列出现有Azure AD应用程序),但一旦我尝试使用该软件包创建新的Azure AD应用程序,我就会收到授权问题401。我试着使用我给控制台应用程序使用的广告应用程序的权限,但没有成功

有没有办法

授予Azure AD应用程序创建其他Azure AD应用程序的权限这是我的首选方式,如果是,需要哪些权限? 或者将Microsoft.Azure.Management.Fluent软件包与具有创建Azure AD应用程序所需权限的实际用户帐户一起使用? 该包使用Azure AD Graph创建应用程序

并且没有这样的应用程序权限,我们可以创建应用程序。作为另一种方式,我们可以为该租户授予Windows Azure Active Directory的Directory.AccessAsUser.All权限和具有全局管理员的登录用户。以下是授予您参考特定权限的图示:

使现代化 此使用资源所有者密码凭据授予的库是为本机客户端应用程序设计的

在这种情况下,您可以注册一个本机客户端应用程序,该应用程序是没有秘密的公共应用程序。或者,您可以使用HttpClient类执行资源所有者密码凭据授予流。以下是一段代码供您参考:

HttpClient client = new HttpClient();

string body = String.Format("resource={0}&client_id={1}&client_secret={2}&grant_type=password&username={3}&password={4}", Uri.EscapeDataString("https://graph.windows.net"), "{clientId}", Uri.EscapeDataString("{client_secret}"), Uri.EscapeDataString("{userName}"), Uri.EscapeDataString("{password}"));
StringContent sc = new StringContent(body,Encoding.UTF8, "application/x-www-form-urlencoded");
var resoult= client.PostAsync("https://login.microsoftonline.com/xxx.onmicrosoft.com/oauth2/token", sc).Result.Content.ReadAsStringAsync().Result;          

Console.WriteLine(resoult);

此外,由于资源所有者密码凭据授予流使用用户的用户名/密码进行身份验证,请确保您信任运行此应用的客户端。

谢谢您的回答!因此,在本例中,我将使用AzureCredentials.FromUsermy-user-name、密码、广告应用程序的客户端id、租户id、AzureEnvironment.AzureGlobalCloud来创建用于创建GraphRbacManagementClient的azure凭据?在这种情况下,我需要将AD应用程序客户端密码放在哪里?您可以使用不需要密码的本机客户端应用程序使用此流来获取令牌。我已经更新了我的帖子,请让我知道它是否有帮助。非常感谢您的帮助-我可能在未来几天内无法测试此功能,但我会尽快通知您。@Schweder问题是否已解决?如果你还有问题,请随时告诉我。