从Web应用和用户访问oneDrive业务。可能吗?

时间:2017-03-26 21:01:35

标签: php microsoft-graph onedrive

我有一个微软的商业帐户,并希望在其中存储上传的用户文件。 我的目标是我的PHP应用程序的用户可以管理文件,上传文件,创建文件夹等到oneDrive for business。它可能吗?

我已经使用de microsoft商业帐户注册了php应用程序,并且我拥有客户端ID和密码。

例如:client_id:'XXXX'

现在我正在使用我的个人帐户进行测试。我使用企业帐户的密码和客户端ID获取访问令牌,并使用我的个人微软帐户进行身份验证。

我用于验证的步骤是:

GET https://login.microsoftonline.com/common/oauth2/v2.0/authorize?
state=YYYY
&scope=openid+profile+directory.readwrite.all+files.readwrite.all
&response_type=code
&approval_prompt=auto
&client_id=XXXX
&redirect_uri=http%3A%2F%2Flocalhost%2Ftest

此时Microsoft提示用户登录表单,我使用我的个人帐户进行了身份验证。

在重定向uri中,我得到de代码并发送POST请求以获取访问令牌。

现在,在这一点上,使用访问令牌,用户(在本例中为我)可以访问onedrive以获取业务文件/文件夹等等吗?怎么样?我必须使用哪个端点?

例如,用于访问驱动器:

https://graph.microsoft.com/v1.0/me/drive/root/children

me 参数是个人帐户还是商务帐户?

我正在使用这些库来实现我的目标:

  1. 将用户帐户连接到Microsoft Graph Auth2 => https://github.com/microsoftgraph/php-connect-rest-sample

  2. 请求api资源 https://github.com/microsoftgraph/msgraph-sdk-php/wiki/Example-calls

1 个答案:

答案 0 :(得分:0)

https://graph.microsoft.com/v1.0/me端点将为您提供已登录用户的详细信息。它应该为您提供Azure对象ID和UPN等信息。 / drive指向个人或业务驱动器,具体取决于您在身份验证期间使用哪个帐户来获取访问令牌。如果你打电话给/ drive,它也会告诉你你要查询的驱动器类型。因此,OneDrive for business将拥有driveType =" business"和OneDrive个人会说driveType =" personal"。我很高兴看到您正在使用AAD v2.0端点,因为它支持MSA和AAD的身份验证。如果你还没有,你可以在这里阅读更多相关信息:

https://developer.microsoft.com/en-us/graph/docs/authorization/auth_overview

特别是对于v2.0身份验证,请尝试以下文章:

https://developer.microsoft.com/en-us/graph/docs/authorization/converged_auth