スコープを変更したとき(Azureを使用してAutorizationを管理する場合)、ユーザーから新しい同意を要求する必要があります。 PromptBehavior.Alwaysパラメータを指定して、「1時間」ADAL AcquireTockenメソッドを呼び出すことができるようにしてください。 私はあなたの同意をリフレッシュし、あなたの新しいスコープを利用可能にするのに十分であると思います。あなたはここでそれらを見つけるでしょう、スコープの権限の詳細については
if (mustRefreshBecauseScopesHasChanged)
{
authResult = await authContext.AcquireTokenAsync(GraphResourceId, ClientId, AppRedirectURI, PromptBehavior.Always);
}
else
{
authResult = await authContext.AcquireTokenSilentAsync(GraphResourceId, ClientId);
if (authResult.Status != AuthenticationStatus.Success && authResult.Error == "failed_to_acquire_token_silently")
authResult = await authContext.AcquireTokenAsync(GraphResourceId, ClientId, AppRedirectURI, PromptBehavior.Auto);
}
if (authResult.Status != AuthenticationStatus.Success)
{
if (authResult.Error == "authentication_canceled")
{
// The user cancelled the sign-in, no need to display a message.
}
else
{
MessageDialog dialog = new MessageDialog(string.Format("If the error continues, please contact your administrator.\n\nError: {0}\n\n Error Description:\n\n{1}", authResult.Error, authResult.ErrorDescription), "Sorry, an error occurred while signing you in.");
await dialog.ShowAsync();
}
}
:ここ
は、私が使用するマクロコードである
http://graph.microsoft.io/en-us/docs/authorization/permission_scopes