1

我一直在使用 MSALMicrosoft.Identity.Client.ConfidentialClientApplication来执行仅限应用的 Microsoft Graph - Groups 操作。

var RedirectUri = "urn:ietf:wg:oauth:2.0:oob";
var clientApplication = new ConfidentialClientApplication(ClientId, RedirectUri, new ClientCredential(ClientSecret), null);

我被困在下一步:

authenticationResult = clientApplication.AcquireTokenSilentAsync(new string[]{"Group.ReadWrite.All"}).GetAwaiter().GetResult();

我得到错误failed_to_acquire_token_silently

authenticationResult = clientApplication.AcquireTokenForClient(new string[]{"Group.ReadWrite.All"}, string.Empty).GetAwaiter().GetResult();

我得到错误invalid_scope

不确定我应该继续哪个方向。

笔记:

  • 使用PublicClientApplication相同的代码可以正常工作
  • 该应用同时具有 AppOnlyGroup.ReadWrite.All和 DelegateGroup.ReadWrite.All权限
  • PublicClienApplication一个不需要的 UI 对话框...
var clientApplication = new PublicClientApplication(ClientId);
authenticationResult = clientApplication.AcquireTokenAsync(Scopes).GetAwaiter().GetResult();
4

1 回答 1

1

请尝试同意您创建的 Confident Client。您可以通过使用您的设置修改以下 URL 来执行此操作:

https://login.microsoftonline.com/<TenantID>/oauth2/authorize?client_id=<AppID>&response_type=code&redirect_uri=<RedirectURI>&resource=<ResourceURI>&prompt=admin_consent

确保您输入该 URL 的信息是机密客户端。

我希望这有帮助!

于 2016-12-15T07:05:23.837 回答