8

我正在编写一个相当大的应用程序,带有 HTML/CSS/JS 前端,使用 AngularJS 和 ASP.NET MVC Web API 作为后端。

我希望用户能够进行身份验证,我已经在单独的机器上安装了 ThinkTecture AuthorizationServer,并且在域控制器上运行了一个 ADFS 实例。目前,我正在使用 ADFS 提供的网页进行登录,但如果我可以使用我自己的页面会很好,它会要求输入用户名/密码组合,将其传递给 AuthorizationServer/ADFS,然后只需使用之后的身份验证令牌。

有没有人做过类似的事情?

问候,丹尼尔

4

1 回答 1

3

事实上,您的用户将登录您的 SPA,然后您有一个服务器端(Java 或 .NET 或 *)来获取此请求。

服务器向 ADFS 请求令牌,ADFS 发送令牌,您的服务器通过 cookie 在响应中将令牌传递给 AngularJS。

在 Angular 方面无事可做,期望 http 拦截器检查响应的状态 (401,403) ...

如果您想知道如何在 AngularJS 上实现 htppInterceptor,AngularJS 将在每​​个请求中自动重新发送 cookie,只需检查:

AngularJs -.net MVC WebApi 身份验证示例

在这个线程中,我解释了如何实现这一步。

无论如何:你的 SPA 是一个 RIA 好的,但仍然是 webapp 的客户端部分。我不认为让客户部分直接联系 ADFS 真的很好(我认为这真的很糟糕)......如果你这样做,如何防止中间人?

于 2013-09-25T14:58:26.613 回答