Azure REST API:已授予oAuth2身份验证但请求时无效令牌

时间:2016-10-25 12:20:44

标签: rest api azure push guzzle

我有一个关于验证azure移动管理API,将推送信息发送到API的问题。

我很好地设法验证并接收与提供的数据匹配的令牌承载(租户ID,客户端ID,客户端密码......),但是当我尝试创建广告系列时,我收到以下响应:

[2016-10-25 11:45:51] (::1) fail to send send request https://management.azure.com/subscriptions/fb8226dc-194f-4562-9dc9-c72f56bd728a/resourcegroups/MobileEngagement/providers/Microsoft.MobileEngagement/appcollections/XX-Collection/apps/XX-TEST-android/campaigns/announcements?api-version=2014-12-01
     

{" name":" Evian Championship 20 ... - 2016年10月25日   11:45:50""类型":" only_notif""交货期":"任何"" pushMode& #34;:"单触发"" notificationTickerIcon":真," notificationIcon":真," notificationCloseable":真,&# 34; notificationSound":真," notificationVibrate":假," notificationTitle":"索契\ u00e9t \ u00e9   G \ u00e9n \ u00e9rale"," notificationMessage":" Evian Championship   2016"" actionUrl":"://webviews/main/build/events.html"," notificationType":"系统&#34 ;}   | " HTTP / 1.1 401未经授权       缓存控制:无缓存       Pragma:没有缓存       Content-Type:application / json;字符集= utf-8的       到期:-1       x-ms-failure-cause:网关       x-ms-request-id:40e30675-2144-452a-9ab9-632a393d8783       x-ms-correlation-request-id:40e30675-2144-452a-9ab9-632a393d8783       x-ms-routing-request-id:WESTEUROPE:20161025T094550Z:40e30675-2144-452a-9ab9-632a393d8783       严格运输安全:max-age = 31536000; includeSubDomains       日期:2016年10月25日星期二09:45:49 GMT       连接:关闭       内容长度:281       {"错误":{"代码":" InvalidAuthenticationToken","消息":"收到的访问令牌无效:至少有一项权利要求' puid'   或者' altsecid'或者' oid'应该在场。如果您正在访问   应用程序请确保正确创建服务主体   租客。"}}"被退回

以下是请求:

  

POST   /subscriptions/fb8226dc-194f-4562-9dc9-c72f56bd728a/resourcegroups/MobileEngagement/providers/Microsoft.MobileEngagement/appcollections/XX-Collection/apps/XX-TEST-android/campaigns/announcements?api-version=2014-12-01   HTTP / 1.1主机:management.azure.com授权:bearer   eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ikk2b0J3NFZ6QkhPcWxlR3JWMkFKZEE1RW1YYyIsImtpZCI6Ikk2b0J3NFZ6QkhPcWxlR3JWMkFKZEE1RW1YYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuYXp1cmUuY29tLyIsImlzcyI6Imh0dHBzOi8vc3RzLndpbmRvd3MubmV0LzRmNGFkYjA3LWU5OWQtNDg5NC04OGZjLTZkYzc4ODAzNDI3Zi8iLCJpYXQiOjE0NzczOTUxNzEsIm5iZiI6MTQ3NzM5NTE3MSwiZXhwIjoxNDc3Mzk5MDcxLCJhcHBpZCI6IjUzNzMyOTAwLTU2NGMtNGI2OS1hNGRhLTU0OTQ0ODVkYTFhNiIsImFwcGlkYWNyIjoiMSIsImlkcCI6Imh0dHBzOi8vc3RzLndpbmRvd3MubmV0LzRmNGFkYjA3LWU5OWQtNDg5NC04OGZjLTZkYzc4ODAzNDI3Zi8iLCJ0aWQiOiI0ZjRhZGIwNy1lOTlkLTQ4OTQtODhmYy02ZGM3ODgwMzQyN2YiLCJ2ZXIiOiIxLjAifQ.WvWXETt9IFy_eX2Q8LlguTec9KA2TLgILUs10QULNMYgf1sHUpXdnRhDBqq5Foo_gwF_u2zl1NNYRLmdN3Q0IR3LPspiutAhC_KXvGXmJH2TtxTi9U2bt1Zvf5BsafHkxDdlDG6vymu-3O4cK9HQMu7l0XtPqzcEHcQny94xAq66_TSNa3FhZclwEBnaTI81B5g9NzvET10C0j8ZW0OsRNzc0-czS8RqtXulp1rkIEQc7VhTTDx9feSPi3BJlyhiKxUzfnEn8xUkfqlUEQuqyerqUoRIlbFvhhOT7Gjo6_WJN21Wn-23gcEchaRETWzYh-nTJSeKFzwA-mROOdmUzw   User-Agent:Guzzle / 5.3.1 curl / 7.50.0 PHP / 5.6.25 Content-Length:455

(注意:出于安全原因,我在此显示的持票人中更改了一些字符)

使用此正文获取(真实)承载,请求https://login.microsoftonline.com/ {TENANT_ID} / oauth2 / token:

grant_type = client_credentials&安培; CLIENT_ID = {CLIENT_ID}&安培; client_secret = {CLIENT_SECRET}&安培;资源= https://management.azure.com/

您是否知道API返回此消息的原因?

非常感谢!

1 个答案:

答案 0 :(得分:-1)

  

收到的访问令牌无效:至少应有一个声明'puid'或'altsecid'或'oid'。如果您作为应用程序访问,请确保在租户中正确创建服务主体

您的访问令牌似乎无效。我建议您按照this article进行操作以获取新令牌,然后重试。

相关问题