Azure Active Directory应用程序权限更改延迟

我使用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

点赞