Xamarin应用程序中的Microsoft Graph API范围

时间:2017-06-21 15:19:34

标签: c# xamarin.forms microsoft-graph msal

我试图让我的小组成为Xamarin应用程序的一部分。

现在,我正在使用此方法获取令牌:

[^\<br>]

我的应用ID来自Apps.dev.microsoft.com注册门户网站。

然后,我使用此方法静默获取另一个令牌:

    public async Task SignIn()
    {
        if (App.IdentityClientApp != null)
            this.authenticationResult = await App.IdentityClientApp.AcquireTokenAsync(new String[] { Constants.ApplicationID });
    }

如果我这样做,系统会提示我使用管理员帐户登录。 如果我这样做,令牌获取将会成功但不会记住&#34;对于其他非管理员用户的授权,我每次都会被提示获得管理员授权。

如果我只使用&#34; User.Read&#34;范围:

    private async Task GetTokenForGroups()
    {
        this.authenticationResult = await App.IdentityClientApp.AcquireTokenAsync(new String[] { "User.Read", "Directory.AccessAsUser.All" }, null);
    }

我得到了一些群组,但他们似乎是Outlook群组,而不是安全群组。

apps.dev.microsoft.com中的“我的图表”权限完全为空。

我怎样才能读取目录数据?我做错了什么?

谢谢。

1 个答案:

答案 0 :(得分:2)

您需要使用管理员同意工作流程。只需以管理员身份登录即表示不同意非管理员用户。有一个特定的工作流程来启用它。

看看我写的一篇名为v2 Endpoint and Admin Consent的文章。它应该为您提供一个连接同意过程的起点。