Oauth Office 365 REST API的身份验证

Oauth Office 365 REST API的身份验证,oauth,oauth-2.0,office365,Oauth,Oauth 2.0,Office365,我尝试使用Office365 REST API列出用户的文件(OneDrive for Business或SharePoint Online),它可以访问Office365管理员帐户 但是,当我尝试访问其他正常活动用户(由Office365管理中心中的adminstrator帐户创建)时,它无法登录,OAuth页面显示“抱歉,但我们无法让您登录。我们收到了错误的请求。” 请求标头: POST https://login.microsoftonline.com/common/login HTTP/

我尝试使用Office365 REST API列出用户的文件(OneDrive for Business或SharePoint Online),它可以访问Office365管理员帐户

但是,当我尝试访问其他正常活动用户(由Office365管理中心中的adminstrator帐户创建)时,它无法登录,OAuth页面显示“抱歉,但我们无法让您登录。我们收到了错误的请求。

请求标头:

POST https://login.microsoftonline.com/common/login HTTP/1.1
Accept: */*
Cookie: flight-uxoptin=true; stsservicecookie=ests; x-ms-gateway-slice=productiona
Referer: https://login.microsoftonline.com/common/oauth2/authorize?client_id=2d4d11a2-f814-46a7-890a-274a72a7309e&response_type=code&redirect_uri=https%3A%2F%2Fwww.contoso.com%2Fcontoso.htm&resource=https%3A%2F%2Fapi.office.com%2Fdiscovery%2F
Accept-Language: en-US
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Host: login.microsoftonline.com
Content-Length: 1032
Connection: Keep-Alive
Cache-Control: no-cache

login=example@contoso.onmicrosoft.com&passwd=contoso&ctx=rQIIAdNiNtQztFIxNjY3S00yT9NNTLM01zUxMzLWTUoBcpMMTBOTTZMMTdOSE4uEuAT6rjdUsz8977Uh-YA6807eOasYNTJKSgqKrfT1y8vL9coz86oyC_SS83P1k3PyS1OKU4vKMpNTi_UySnJ3MDJeYGR8wch4i4nf37G0JMMIROQXZValPsIQmcTMn58IEtEDkcn5KamrmBVhNiUWZOrlp6UBDQbblJJZnJxfllpUqb-JmQ0okJuft4tZxSTJ2MTI2NxI18DQwkjXxNI8WdcyOTlR19jCxNLA0Nw4MTEl5QYz4wUWxl2cRPsBAA2&flowToken=AAABAAEAiL9Kn2Z27UubvWFPbm0gLRx6Haiauf3FLxlg3g9UORjSbd3XCCl2tfMhe0xEbC2UOYMMPyfYW9aXLIkJZC5nAK7l4G0_2DB-BItK0rx9ueogAA&n1=109320&n2=-1442391510000&n3=-1442391510000&n4=109320&n5=109320&n6=109320&n7=109320&n8=NaN&n9=109320&n10=110226&n11=111404&n12=111404&n13=111406&n14=113261&n15=27&n16=113500&n17=113502&n18=113511&n19=1235&n20=1&n21=0&n22=0&n23=0&n24=0&n25=0&n26=0&n27=0&n28=0&n29=-1442391623258&n30=-1442391623258&n31=0&n32=0&n33=0&n34=0&n35=0&n36=0&n37=0&n38=0&n39=0&n40=0&n41=0&n42=1442391623292&n43=1442391623511&type=11&LoginOptions=3&NewUser=1&idsbho=1&PwdPad=&sso=&vv=&uiver=1&i12=1&i13=MSIE&i14=9.0&i15=520&i16=770&i20=
响应标题:

HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Expires: -1
Vary: Accept-Encoding
Server: Microsoft-IIS/8.5
x-ms-request-id: ab3393a8-0cde-4767-bd12-a2f4cd0be32c
client-request-id: 7b80d78e-e507-4acf-b063-c02703b90d9c
x-ms-gateway-service-instanceid: ESTSFE_IN_164
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains
P3P: CP="DSP CUR OTPi IND OTRi ONL FIN"
Set-Cookie: x-ms-gateway-slice=productiona; path=/; secure; HttpOnly
Set-Cookie: stsservicecookie=ests; path=/
X-Powered-By: ASP.NET
Date: Wed, 16 Sep 2015 08:20:32 GMT
Content-Length: 2206
我遵循下面的OAuth流程


你知道问题是什么,如何解决吗?我真的很感激有人能帮我。非常感谢

最后,我在blow链接中找到了一个解决方案

顺便说一句,
很难理解为什么在OAuth页面中显示“错误请求”消息而没有任何其他错误消息。

最后,我在blow链接中找到了解决方案

顺便说一句,
很难理解为什么在OAuth页面中显示“Bad Request”消息而没有任何其他错误消息。

在我的例子中,是范围参数丢失导致了此问题。看起来在发送授权请求时必须包含作用域。

在我的例子中,是作用域参数丢失导致了此问题。在发送授权请求时,似乎必须包含作用域。

能否共享您正在使用的平台和身份验证代码?你发布的那些登录值只是占位符,对吗?你不是真的在发送example@contoso.onmicrosft.com?您能分享您正在使用的平台和身份验证代码吗?你发布的那些登录值只是占位符,对吗?你不是真的在发送example@contoso.onmicrosft.com?