1

我已按照此链接https://msdn.microsoft.com/en-us/office/office365/howto/building-service-apps-in-office-365将守护程序或服务器应用程序设置为 Web API 身份验证方法在 Office365 中获取访问令牌。

示例访问令牌请求如下所示

POST https://login.microsoftonline.com/{tenant-id}/oauth2/token
grant_type : client_credentials
client_id : {clientId}
client_secret : {clientSecret}
resource : https://{tenant}.sharepoint.com

例如:

https://login.microsoftonline.com/cae788bd-7a55-4fb5-9d1f-3aa5365e14a/oauth2/token
grant_type : client_credentials
client_id : 1dd0a211-06f1-4f6a-a232-b3a8dcab829b
client_secret : ZWtkWm9M5Ucx5j29UoXPy7GKG+Hu0eNdVFYO+lH761w=
resource : https://{tenant}.sharepoint.com

从上面的 api 请求中,我得到了一个访问令牌,当我尝试从上面的访问令牌创建文件夹或访问任何其他 api 时,它显示错误为“不支持的应用程序唯一令牌”。我试图调用这个网络服务来得到这个错误:

PUT https://{tenant}.sharepoint.com/_api/v1.0/Files/{parent-id}/children/{folder-name}
Authorization : BearerBearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik1uQ19WWmNBVGZNNXBPWWlKSE
Content-Type : application/json
Accept : application/json

但之前我们在 Office365 中使用相同的守护程序或服务器应用程序到 Web API 身份验证方法来获取访问令牌,并且工作正常。

我们已经使用 accesstoken 访问了 office 365 API,但现在它显示错误为“Unsupported app only token”。

4

1 回答 1

2

马诺伊,

我在邮件 API 的 WPF 应用程序中获得了仅应用程序,您是否设置了证书?根据你提到的博客

由于这些类型的应用程序享有广泛的访问权限,因此应用程序还需要成功获取访问令牌。应用程序必须使用带有公钥/私钥对的 X.509 证书,而不是使用客户端 ID 和客户端密码。

请参阅此链接如何进行设置: 通过 Azure AD 在 SharePoint Online 上执行仅限应用程序的操作

于 2015-08-15T21:15:59.853 回答