我正在从https://login.microsoftonline.com/common/oauth2/v2.0/authorize
请求OAuth2.0令牌。我正在请求以下范围:
[
'https://graph.microsoft.com/User.Read',
'https://graph.microsoft.com/Calendars.Read.Shared',
'offline_access',
'profile',
'email',
'https://outlook.office.com/mail.read'
]
我正在尝试同时获得Microsoft Graph范围和Office 365范围,但它给了我:
AADSTS70011:为输入参数“scope”提供的值无效。范围https://graph.microsoft.com/User.Read https://graph.microsoft.com/Calendars.Read.Shared脱机访问配置文件电子邮件https://outlook.office.com/mail.read无效
如果我取出 outlook.office.com
范围或两个 graph.microsoft.com
范围,那么它可以工作。
有没有办法同时访问两者?
这是一种不同的方法,它允许您仅使用一个登录请求(但访问令牌不同)访问多个资源。
根据使用的流,应该向您返回一个刷新令牌,这可以为您获得不同资源的访问令牌。
A
(以及刷新令牌)。B
(Office 365)在您的情况下,令牌刷新原始 HTTP 请求如下所示(身份验证代码流):
POST /common/oauth2/v2.0/token HTTP/1.1
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
client_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
&scope=https://outlook.office.com/mail.read
&refresh_token=...
&grant_type=refresh_token
&client_secret=...
上面的注意:为了易读性,在正文中添加了换行符。范围
应该是url编码的。
您现在有两个令牌:< code>A适用于Graph,而< code>B适用于Office 365。
只能使用多资源刷新令牌。您可以在openid-configuration中检查支持。要显示特定于租户的配置,请将url中的< code>common替换为租户域。
microsoft_multi_refresh_token:可选。一个布尔值,指示OpenID提供程序是否支持多资源刷新令牌,这些刷新令牌可以兑换为在AD FS服务器上注册的任何资源的访问令牌。
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-oidce/586de7dd-3385-47c7-93a2-935d9e90441c
v2.0身份验证模型不支持在同一个请求中请求两个资源的权限,请尝试分离请求,只要您为每个资源受众获取访问令牌,您就可以访问这两个API。
更改TestResource 并向QueryFactory添加 我理解使用请求范围需要。然而,当我运行它时,我得到一个异常,它告诉我 我看不出哪里出了问题。你能给我指出这个配置应该如何正确地完成吗?
在我的Play(Java)框架项目中,我正在使用Guice进行依赖项注入,并且正在努力理解如何最好地将“会话”的概念与Guice和Play结合使用? 我知道Play是无状态的,除了可以在cookie中存储值之外,实际上没有会话的概念。我对Guice和Play的理解是,虽然Guice文档描述了支持不同的作用域(单例、会话、请求、无作用域),但因为我们正在用每个请求实例化一个新的注入器,所以仅适用于P
我们正在使用OAuth2。0表示安全性。我在网上浏览了很多资源,每个人都在使用客户id、客户机密以及用户名和密码。但是我只想要client_id和client_secret,并且获得不带用户名和密码的访问令牌。 任何帮助将高度赞赏。
虽然不是EAS 16.1的一部分,但我们还希望注意到Office 365和Outlook.com客户现在都可以通过EAS使用OAuth 2.0协议进行授权。 我的问题是:我应该在oauth请求中使用哪个范围? 有没有一个例子,也许是完整的请求?
我有一个web应用程序,它有一个Spring集成逻辑,在一个单独的线程中运行。问题是,在某个时候,我的Spring集成逻辑尝试使用请求范围的bean,然后我得到以下错误: 我有ContextLoaderListener设置: 我的作用域Bean是这样注释的(因为我听说代理我的Bean会有帮助): 我所做的可能吗?如果是,我在这里遗漏了什么?如果没有,关于我如何实现这一目标,还有其他建议吗?
基于CGLIB的请求范围bean的堆栈跟踪() 基于JDK-Dynamic-Proxy-Interface的请求范围bean的堆栈跟踪()