我使用当前Azure Mobile Apps SDK为JavaScript
客户端和使用以下tutorial。我已经在Azure
中注册了所有主要提供商,他们都包含正确配置的应用ID和密码。我使用SDK中的样板代码调用Azure Mobile Apps
,提供者登录(Twitter,Google,MSFT,FB)会在我的Web应用程序中弹出一个窗口并允许登录进行身份验证。认证工程。Azure移动应用身份验证403在回调
问题是回到我的原始web应用程序的回调过程。我收到一个403 (Forbidden)
错误,并且以下内容显示在浏览器窗口中:
您没有权限查看此目录或页面。
下面是一些示例回调网址(为简便起见混淆值)
https://myservice.azurewebsites.net/.auth/login/facebook/callback?code=AQB123&state=nonce%3D3
https://myservice.azurewebsites.net/.auth/login/twitter/callback?oauth_token=FhGv&oauth_verifier=abc123
https://myservice.azurewebsites.net/.auth/login/google/callback?state=nonce%3Dc&authuser=0&session_state=4cf501&prompt=none#
的事情是,如果我采取任何完整的网址,上面并粘贴到一个新的浏览器窗口并拨打电话我在浏览器中收到以下Azure消息:
您已经
OK成功签约所以工作,但它似乎回调到应用程序的登录和认证与403 forbidden
失败。下面是我试过的东西:
- 允许在服务器上的“*”的起源为
CORS
在Azure中配置我的Azure Mobile Apps
例如 - 允许“*”为
CORS
起源于我ASP.NET Core
Web应用程序 - 设置一个超级非限制性
Content-Security-Policy
在index.html
<meta http-equiv ="Content-Security-Policy" content="default-src * 'unsafe-inline'; script-src * 'unsafe-inline'; connect-src *; img-src *; style-src * 'unsafe-inline'">
这个过程和代码对我来说并不陌生。这一切都用于在旧Azure Mobile Services
实例中工作,该实例现在已经退役,支持Azure Mobile Apps
(上面没有提到content-security-policy
;我以前从未需要)。我不认为这是我的一个JavaScript
代码问题,或者是因为在调用WindowsAzure.MobileServiceClient
时,甚至不会从此进程返回承诺。
有没有人知道什么阻止了完整的进程,并在验证成功后从提供程序登录窗口中导致此403 forbidden
?
更新:我创建了这个博客中,帮助他人,并提供详尽的解释:Configure Azure Mobile App Authentication Server-Side for Use With JavaScript Clients
我能找到的唯一的东西(你可能已经看到了)在官方文档中是这样的:https://azure.microsoft.com/en-gb/documentation/articles/app-service-mobile-html-如何使用客户端库/#认证 –
@MartynC - 你知道我一直在使用那个确切的链接,但有一个部分在Azure门户中没有工作。有指示可以进入**资源管理器**并修改配置以允许重定向URL。我有一天尝试去那里,Azure永远不会打开页面;它只是空着。 ......我从未回去再试。猜猜看,这是行得通的!因此,如果您提供的答案详细介绍了该链接中名为“如何为您的移动应用服务配置外部重定向网址”的部分中的要求,我会给您奖励 – atconway
当然,感谢您让我发布 –