从javascript访问ACS保护的WCF服务

时间:2012-04-24 11:56:36

标签: wcf appcelerator-mobile acs

我希望创建一个位于我们现有代码之上的WCF(可能是WebApi)Web服务。最终这项服务将由外部客户使用,但我们将开始在我们自己的移动应用程序中使用它。

由于某些客户希望使用Gmail和ADFS身份验证,因此使用Azure ACS似乎是有意义的(这是托管我们的Web服务的地方)。但是,我们暂时不需要多个提供程序,我们将首先使用自定义STS来根据我们现有的身份验证逻辑对用户进行身份验证。

我们已经使用充当客户端的MVC Web应用程序进行了上述工作的粗略原型。

我的问题是如何将其与移动应用程序集成?看起来好像移动应用程序将使用AppCelerator编写,这意味着我需要使用javascript进行身份验证。我们只希望用户对我们的自定义STS进行身份验证,那么我是否需要使用主动身份验证?即。

  • 要求用户输入用户名和密码
  • 使用自定义STS直接进行身份验证并检索令牌
  • 将STS令牌传递给ACS并检索ACS令牌
  • 为每个请求将ACS令牌传递给wcf服务。

我想我的问题是:我是否在正确的轨道上,如果是这样,我将如何在JavaScript中实现这一目标?

2 个答案:

答案 0 :(得分:0)

我认为可以通过Https请求发出SAML。作为起点,我建议看看Dominick Baier的Thinktecture IdentityServer资源。这将有助于理解不同的策略以及如何使用em(在Github上也有一些WebApi的好东西): http://identityserver.codeplex.com/

答案 1 :(得分:0)

如果您想支持移动设备,建议您在STS中提供基于Web的登录界面。在大多数情况下,移动设备将在Web浏览器中导航到STS的登录页面。在STS对用户进行身份验证后,它会向ACS发送声明。 ACS依次使用JavaScript通知来通知主机应用程序。 您可以参考http://msdn.microsoft.com/en-us/WAZPlatformTrainingCourse_ACSAndWindowsPhone7获取有关在Windows Phone中使用ACS的教程。类似的过程可以用于其他移动设备。 希望这会有所帮助。