我正在尝试在IOS应用程序中实现OAuth2隐式授权流程.在这种情况下,它需要令牌请求而不是代码请求,因为您无法安全地在本机应用程序中共享客户机密钥.
所以这样的请求会产生一个登录表单:
https://login.windows.net/<tenantid>/oauth2/authorize?api-version=1.0&client_id=<client id>&response_type=token&redirect_uri=shp-apps://localhost:44300/?ReturnUrl=%2F&resource=https://graph.windows.net
#error=unsupported_response_type&error_description=AADSTS70005: response_type 'token' is not supported for the application Trace+ID: 9008e580-2798-4b6c-a6bf-2bf614b61f64 Correlation+ID: ceb9bb4b-34a4-4441-801f-377f534543b1 Timestamp: 2014-08-26+16%3a24%3a24Z
这实际上是否正确,不支持令牌request_type?还是还有其他我需要做的事情?该应用程序设置为本机应用程序.我已经能够在同一个活动目录中的不同应用程序中执行“code”response_type.
解决方法
Azure AD确实不支持隐式授权流.对于您的iOS应用程序,请使用具有刷新令牌支持的授权代码授予流程.您不需要自己编写OAuth流程 – 请改用我们的iOS / OSX SDK:
https://github.com/AzureAD/azure-activedirectory-library-for-objc
菲利普,请继续关注隐含的赠款流程 – 它在我们的雷达上.
希望这可以帮助.
更新:Azure AD现在支持隐式授权OAuth流.见:https://github.com/AzureADSamples/SinglePageApp-AngularJS-DotNet