我使用Azure Active Directory为我的应用程序提供对Microsoft Graph API的访问权限.
当我更改权限(例如,对各种类型的数据进行读/写访问)时,我注意到保存更改的时间以及我能够通过API访问新数据时的延迟.但是,我注意到,经过一段时间我的API调用开始工作.我的问题是
>这是预期的行为吗?
>是否有文档可以解释每个Microsoft Graph API请求需要哪些权限?
请注意,在进行相关API请求之前,我在更改每个权限后请求新令牌.
最佳答案 当您更改范围时(如果使用Azure来管理自动化),您必须请求用户同意.确保能够使用PromptBehavior.Always参数“一次”调用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