我在我的Xamarin.iOS应用程序中创建了一个新的移动应用程序 . 我的应用程序没有任何注册用户,我只需要在我的ios应用程序中安全地访问移动应用程序服务api .
经过10个小时的尝试,我仍然无法想办法让他上班 .
我创建了一个新的移动应用程序,在设置(Azure门户)中启用了身份验证/授权,并创建了一个新的Azure Active目录应用程序 .
我用[Authorize]标签保护了我的[MobileAppController] .
为了测试我已经请求了一个令牌
Method :POST
URL :https://login.microsoftonline.com/mytenant.onmicrosoft.com/oauth2/token
grant_type :client_credentials
client_id :{来自应用的广告部分的一个}
client_secret :{来自应用的广告部分的一个}
我收到了一个令牌,但用它来访问(POSTMAN app)
https://mytestmobileapp.azurewebsites.net/api/values带 Headers
Authorization :Bearer
给我一个
"message": "Authorization has been denied for this request."
任何帮助,将不胜感激 .
谢谢 ...
3 回答
我在我的博客文章中回答,但我也把它放在这里供任何人看 .
为什么要直接调用 endpoints ? SDK客户端应该处理所有这些(如他们的教程所示:https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-xamarin-ios-get-started-users/)
我不认为通过直接调用AD来重新实现轮子是个好主意 . 有一个回调机制,服务器从AD获取该令牌,我认为这是这里缺少的 .
您是否查看了GitHub上针对ObjectiveC的Azure ActiveDirectory库的示例? https://github.com/AzureAD/azure-activedirectory-library-for-objc
这里有一些很好的例子和资源可以帮助你:)
好吧,经过几个小时的可怕挫折,我找到了答案 . 感谢评论@ https://github.com/Azure/azure-mobile-apps-ios-client/issues/14
我已经设置了流媒体日志和详细的错误消息来弄清楚发生了什么,我发现这是错误 .
然后我意识到我必须在请求令牌时传入资源 .
我的新令牌请求
然后我从上面的方法收到的令牌工作正常没有任何问题 . Azure流日志非常棒 .
UPDATE
我已经创建了一个新问题,答案是逐步解释的 . How to add simple authentication to azure mobile/web apps with Azure Active Directory?