3

按照此处概述的代码:

https://github.com/Azure-Samples/active-directory-dotnet-graphapi-console/blob/master/GraphConsoleAppV3/Program.cs#L810

但是在尝试创建应用程序时,使用服务主体进行身份验证会出现权限不足

client.Applications.AddApplicationAsync(appObject).Wait();

代币交换如下:

var context = new AuthenticationContext($"https://login.microsoftonline.com/{tenantId}");
var token = context.AcquireToken("https://graph.windows.net", new ClientCredential(clientId, secret));    
var client = new ActiveDirectoryClient(new Uri($"https://graph.windows.net/{tenantId}"),()=>Task.FromResult(token.AccessToken));
4

1 回答 1

4

它要求应用程序已被赋予管理员角色,目前似乎只能使用 azure AD 的 powershell 工具添加:https ://msdn.microsoft.com/library/azure/jj151815.aspx#bkmk_installmodule

并在出现提示时使用connect-msolservice和使用您的 Azure 广告管理员用户登录。

  1. connect-msolservice
  2. Get-MsolServicePrincipal –AppPrincipalId {appId}
  3. Add-MsolRoleMember -RoleMemberType ServicePrincipal -RoleName 'Company Administrator' -RoleMemberObjectId {objectID}

其中 objectID 是 2 命令的输出

于 2016-01-20T21:54:11.647 回答