我正在编写一个相当大的应用程序,使用
HTML / CSS / JS前端,使用AngularJS和ASP.NET MVC Web API作为后端.
我希望用户能够进行身份验证,我已在单独的计算机上安装了ThinkTecture AuthorizationServer,并且在域控制器上运行了一个ADFS实例.目前,我正在使用随ADFS提供的网页进行登录,但如果我可以使用我自己的页面,这将是很好的,这将要求用户名/密码组合,将其传递给AuthorizationServer / ADFS,然后只需使用之后的身份验证令牌.
有没有人做过类似的事情?
问候,
丹尼尔
解决方法
事实上,您的用户将登录您的SPA,然后您有一个服务器端(
Java或.NET或*)来获取此请求.
服务器请求令牌到ADFS,ADFS发送令牌,您的服务器通过cookie将令牌传递给响应中的AngularJS.
在Angular方面没什么可做的,希望http拦截器检查响应的状态(401,403)……
如果你想知道如何在AngularJS上实现一个htppInterceptor,那么每个请求中的AngularJS会自动重新发送cookie:
AngularJs -.net MVC WebApi Authentication example
在这个线程中,我解释了如何实现这一步骤.
无论如何:你的SPA是一个RIA确定,但仍然是webapp的客户端部分.我不认为让客户部分直接联系ADFS真的很好(我认为真的很糟糕)……如果你这样做,如何防止中间人?