【问题标题】:Asking for user info anonymously Microsoft Graph匿名询问用户信息 Microsoft Graph
【发布时间】:2018-01-12 02:23:48
【问题描述】:

在一个旧应用程序中,我公司中的一些人无需登录用户即可从 Microsoft Graph 获取信息。我尝试复制此操作,但在尝试获取用户时未获得授权。我认为图表可能已经改变,或者我在注册我的应用程序时在 Azure 中做错了。

因此,我在 Azure 门户中注册了一个应用程序(网络应用程序),并授予它 Azure 广告和 Microsoft graph 读取所有用户完整配置文件的权限。

然后我做一个请求

var client = new RestClient(string.Format("https://login.microsoftonline.com/{0}/oauth2/token", _tenant));

var request = new RestRequest();
request.Method = Method.POST;

request.AddParameter("tenant", _tenant);
request.AddParameter("client_id", _clientId);
request.AddParameter("client_secret", _secret);
request.AddParameter("grant_type", "client_credentials");
request.AddParameter("resource", "https://graph.microsoft.com");
request.AddParameter("scope", "Directory.Read.All"); 

我在测试时添加了最后一行(范围)。没有这个我仍然得到一个令牌,但有或没有它的结果都是一样的。

获得令牌后,我将其保存并执行此请求:

var testClient = new RestClient(string.Format("https://graph.microsoft.com/v1.0/users/{0}", "test@test.onmicrosoft.com")); //I use a real user here in my code ofc.
testRequest = new RestRequest();
testRequest.Method = Method.GET;
testRequest.AddParameter("Authorization", _token.Token);
var testResponse = testClient.Execute(testRequest);

但是现在我收到一条错误消息,提示未经授权,承载访问令牌为空。 这些错误指向我让用户登录并执行请求,但是我不想让用户登录。据我所知,这在以前是可能的。 Microsoft 是否已将其更改为不允许匿名请求?

如果是这样,是否可以不将用户重定向到同意页面?用户已经通过 Owin 登录。但是,用户可能有不同的访问权限,我希望这个应用程序能够访问 azure 广告中的所有内容,无论用户是否登录。如今如何正确执行此操作?

或者我只是遗漏了一些明显的东西?该应用已获得 azure 和 microsoft graph 的访问权限,并且管理员已授予该应用的权限。

编辑:为了澄清,我尝试了“Authorization”、“bearer” + _token.Token 和 _token.Token,就像在 sn-p 中一样。

【问题讨论】:

    标签: azure azure-active-directory microsoft-graph-api


    【解决方案1】:

    是的,仍然可以在没有用户在场的情况下使用 application permissions 向 Graph 发出请求。您需要征得租户管理员的同意并批准您的申请。

    编辑/回答:添加“授权”作为标题而不是参数就可以了。它既适用于 'bearer token' 也适用于 'token'

    【讨论】:

    • 我应该澄清一下我都尝试过。我尝试了“不记名token”并且只是令牌。我将进行编辑以使其清楚。我需要什么权限?我授予权限(并以管理员身份同意)阅读所有用户个人资料,完整的和基本的。我还需要什么?
    • 我认为这些范围就足够了。您是否尝试过将令牌作为 HTTP 标头发送而不是序列化参数?
    • 成功了,我编辑了您的答案并将其添加到那里。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-29
    • 1970-01-01
    • 2021-01-10
    • 2023-01-12
    • 1970-01-01
    • 2018-04-06
    • 1970-01-01
    相关资源
    最近更新 更多