【问题标题】:Sharepoint Online API connection from Java来自 Java 的 Sharepoint Online API 连接
【发布时间】:2018-02-22 14:43:24
【问题描述】:

我在 Azure 门户中注册了一个应用程序,并向其中添加了 2 个 API:Azure Active Directory 和具有一些权限的 Microsoft Sharepoint Online。 我按照以下步骤操作:https://docs.microsoft.com/en-us/outlook/rest/java-tutorial#register-the-app

问题是,当我使用 Bearer 令牌向 Sharepoint API 发出请求时,它给了我一个未经授权的错误:401

401 未经授权 x-ms-diagnostics: 3000006;reason="令牌包含无效签名。";category="invalid_client" {"error_description":"无效的发行者或签名。"}

但是当我得到访问令牌时,我有这些范围:

"token_type":"Bearer","scope":"AllSites.Manage AllSites.Read AllSites.Write Mail.Read MyFiles.Read MyFiles.Write User.Read"

有什么想法吗?

【问题讨论】:

    标签: java sharepoint token office365api azureportal


    【解决方案1】:

    您可以查看我制作的这个项目,该项目包含一些您可以使用 Sharepoint Rest API 执行的常见操作。它也是一个非常易于使用的 API

    https://github.com/kikovalle/PLGSharepointRestAPI-java

    【讨论】:

      【解决方案2】:

      要获取SharePoint List数据,我们可以使用Office 365 SDKs for Java来实现。

      或者您可以查看下面的文章以通过身份验证。

      SharePoint REST API Authentication from Java

      【讨论】:

        【解决方案3】:

        Francisco Valle 的回答不包括用户使用联合帐户的情况。当用户使用联邦帐户时,无论尝试什么结果都是一样的:

        Authentication Failure
        <psf:error xmlns:psf="http://schemas.microsoft.com/Passport/SoapServices/SOAPFault">
        <psf:value>0x80048821</psf:value>
        <psf:internalerror><psf:code>0x80048821</psf:code>
        <psf:text>AADSTS50126: Error validating credentials due to invalid username or password
        

        这是因为当用户使用浏览器登录 SharePoint 时,总是会重定向到登录页面(类似这样:

        https://adfs.your_domain.com/adfs/ls/?username=your_user_name&wa=wsignin1.0&wtrealm=urn%3afederation%3aMicrosoftOnline&wctx=)

        我还没有找到如何在 JAVA 中克服这种重定向的方法,只需生成令牌/或 cookie 并在使用 REST API 时传递它。

        【讨论】:

          猜你喜欢
          • 2017-12-23
          • 1970-01-01
          • 2018-12-05
          • 2021-01-12
          • 1970-01-01
          • 2012-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多