我有一个使用Azure ACS,Windows身份和被动重定向保护的组合Web API和MVC应用程序。这很好用。现在我正在使用PhoneGap添加移动应用程序,该应用程序调用现有应用程序的API。我无法弄清楚如何在移动客户端上实现身份验证。我得到它主要工作,但由于ACS中的返回URL设置,我无法将令牌送到客户端。场景是:
例如,如果我在localhost:63327上运行客户端应用程序,则会将令牌发送到localhost:58392,因为这是ACS配置中的返回URL。
如何将令牌送到我的移动客户端?
答案 0 :(得分:2)
我看到人们并不真正理解你的问题。
此解决方案可能有效。
简而言之,就是添加一个新协议以从服务器向应用客户端获取身份验证令牌。
PG App调用向Auth注册请求的Web方法:
POST BeginGethAuthToken id =皮卡Guid pswd =提取密码
BeginGetAuthToken可以是登录页面中的Web方法。
服务器将拾取器guid与拾取密码相关联
PG Apps通过使用InAppBroser打开登录页面来启动身份验证流程
mywebapp.com/AppLogin.aspx?id= {pickup guid}
将提取guid设置为您的webapp域的cookie。
用户使用InAppBrowser完成身份验证。
成功身份验证时,AppLogin.aspx将提取guid与身份验证令牌相关联,并要求用户关闭浏览器以返回应用
PG App通过提供取件密码来获取身份验证令牌。
请注意,为了安全起见,服务器需要添加提货指南的过期策略,这样一次只有一个应用程序可以使用guid,并在发生冲突时重新启动该进程。
答案 1 :(得分:0)