当前位置: 首页 > 面试题库 >

无法检索Office 365的仅应用程序令牌

岳嘉悦
2023-03-14
问题内容

我跟随博客开发了一个无需用户登录即可读取用户邮件的应用程序:http :
//blogs.msdn.com/b/exchangedev/archive/2015/01/21/building-demon-or-service-
apps与办公室365邮件日历和联系人apis-oauth2-client-credential-flow.aspx?CommentPosted =
true#commentmessage

我获得了ID令牌并获得了租户ID。当我尝试获取访问令牌时,它将引发错误:

{"error":"invalid_client","error_description":"AADSTS70002: Error validating cre
dentials. AADSTS50012: Client assertion contains an invalid signature.\r\nTrace
ID: 9646a93b-0094-4736-8d21-aed08f04b06e\r\nCorrelation ID: 8dd562af-556d-4d90-9
f71-a60f5a232215\r\nTimestamp: 2015-03-03 10:47:25Z","error_codes":[70002,50012]
,"timestamp":"2015-03-03 10:47:25Z","trace_id":"9646a93b-0094-4736-8d21-aed08f04
b06e","correlation_id":"8dd562af-556d-4d90-9f71-a60f5a232215","submit_url":null,
"context":null}

但是我按照说明创建了证书。我没有使用ADAL库。我正在使用围棋语言。

我使用HMAC base64对字符串进行了签名,然后对其进行了URL编码,然后按照上述文章中的说明将其附加到字符串上。这是我的客户主张

eyJhbGciOiJSUzI1NiIsIng1dCI6IjZlLzEra01scHhuTHArZFJ4d1BqS21EdmZCQT0ifQ.eyJhdWQiOiJodHRwczovL2xvZ2luLndpbmRvd3MubmV0L2ZmNjQxNTFmLTIwM2EtNGM0MC1hZDcxLTExOTE2YjY2Yzg3My9vYXV0aDIvdG9rZW4iLCJleHAiOjE0MjU3Mzc2MDEsImlzcyI6Ijk3MjhiOGFiLTVhOGUtNGM0OC05YTZkLTZmMzFjMWYyZTdkYyIsImp0aSI6IjMyMDZiYWI5LTVmYmUtNDA3ZS02OWY2LTJlNGRjNDQ3NzQxYSIsIm5iZiI6MTQyNTc0MjYwMSwic3ViIjoiOTcyOGI4YWItNWE4ZS00YzQ4LTlhNmQtNmYzMWMxZjJlN2RjIn0.pG4okCzcgXZbS067U9BkGWid6Z6ExU7pbPYOlm2mSAg

我要去哪里错了?


问题答案:

该错误表明您的签名有问题。与工作的相比,它要短得多。确保使用RSA SHA-256哈希对字符串进行签名。使用HMAC可能是造成此问题的原因。



 类似资料:
  • 我无法从Spotify获得Android应用的访问令牌,因为我可以连接到endpoint。 我需要我的Android应用程序的访问令牌,我尝试了以下方法:1)Spotify Android auth library。我找不到spotify auth版本。他们谈论的aar。2) 手动生成url。下面是一个例子: 当我尝试连接时,我得到了各种可能的错误:“缺少所需的参数:client_id”、“INV

  • 你能告诉我Office365 REST API和EWS Java API之间的区别吗? 我为REST API搜索Java库,但没有可用的库。 两个月前,我在ews java api中提出了一个问题,但仍然没有得到他们的任何回应。 您能否建议任何可靠的解决方案来使用office365 API从Java应用程序。 使用我们需要注册我们的应用程序与Azure,我们可以重新Giter是免费的还是付费的。如

  • 我有一个android应用程序,它打开一个webview进行登录。我需要为用户名和密码插入文本,但appium无法在webview上找到元素。Appium inspector也无法检查屏幕上的元素。这是android webview的问题吗? Xpath正在显示:/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/an

  • 我想在我的Android Flatter应用程序中包括Firebase应用程序检查Firebase存储。因此,我遵循官方文件:https://firebase.flutter.dev/docs/app-check/usage. 这是我的静态编程语言Main Active: 这是我的主要观点: 我还将其添加到我的应用程序/构建中。格拉德尔 当我向firebase storage发出请求时,我希望在我

  • 如何执行一个完整的应用程序与根权限(不只是几个命令)? 我正在一个根深蒂固的Android设备上工作。 在android应用程序中,我需要播放通过接收的H.264流。我需要root权限才能打开(原始打开)。 相应的代码在JNI中。由于JNI代码和Java代码之间需要交换大量缓冲区,因此可执行方式()非常不方便。 JNI代码在与Java代码相同的进程上下文中执行。因此,向我的android进程授予r

  • 我想从给定客户的应用程序列表中删除一个服务主体(Azure AD应用程序),因此我使用https://graph.microsoft.com/beta/servicePrincipials查询租户中的服务主体列表 问题是,我可以看到很多应用程序,但不是我们正在工作的一个。该应用程序不是通过Azure门户手动添加的,而是通过显示给客户的管理同意对话框添加的,以便向我们的应用程序授予访问Azure A