【问题标题】:onedrive for business authentication client credentials flow oAuth 2.0onedrive 用于业务身份验证客户端凭据流 oAuth 2.0
【发布时间】:2016-07-02 07:07:40
【问题描述】:

我正在为业务开发 onderive,并且需要客户端凭据流才能通过 java 访问它。任何人都可以为我提供上述来源的身份验证示例,以便我可以处理它!

我正在尝试遵循这个流程,但我错过了一些让我无法完成部分工作的上下文。

我成功创建证书并上传到清单。却无法更进一步。您能否帮助我了解如何根据此 X.509 证书进行身份验证。

【问题讨论】:

  • 我已经使用客户端凭据流成功获得了访问令牌,但它的应用程序仅令牌。我已经关注了这个doc 并成功获得了应用程序唯一的访问令牌。正如作者 (Matthias Leibmann) 所提到的,只有一个应用程序支持已添加到一个业务驱动器中。但我迷失了方向。我一直在尝试所有资源但失败了。
  • 对于资源 (https://{tenant}-my.sharepoint.com/_api/v2.0) 响应甚至没有提供访问令牌。我是否错过了访问一个驱动器所需的任何权限,或者用于业务的一个驱动器的资源是错误的。谁来帮帮我!!

标签: java azure oauth-2.0 authorization onedrive


【解决方案1】:

看来你需要Use a SAML 2.0 identity provider to implement single sign-on

但我认为使用 OAuth2 进行身份验证是推荐的方式。

GitHub 上有一个sample project for OneDrive in Java,我认为您可以参考并使用 OneDrive for Business 的 url 而不是 OneDrive 的 url。

例如,要获取授权码,请使用 OneDrive for Business 的 URL https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id={client_id}&redirect_uri={redirect_uri} 而不是 OneDrive 的 URL https://login.live.com/oauth20_authorize.srf?client_id={client_id}&scope={scope}&response_type=code&redirect_uri={redirect_uri}

在示例项目中,OneDriveAuthorisationProvider.java 实现了身份验证过程,您可以更改代码以与 OneDrive for Business 兼容。

作为参考,请参阅下面的文档。

  1. OneDrive 身份验证和登录https://dev.onedrive.com/auth/msa_oauth.htm
  2. OneDrive for Business 身份验证和登录https://dev.onedrive.com/auth/aad_oauth.htm

希望对你有帮助。

【讨论】:

  • 嗨@peterPan,感谢这个决议。我找到了一种通过 oAuth 2.0 进行身份验证的方法。有一个doc specified by microsoft for Graph api,在其中我们可以在获得用户同意的情况下对用户进行身份验证。与客户端凭据流相比,我发现这很有用。
猜你喜欢
  • 2020-03-01
  • 2016-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-26
  • 1970-01-01
相关资源
最近更新 更多