我们已经在我的公司实现了几个 Intranet Web 应用程序。他们都:
- 由 ASP.NET MVC 3 构建
- 使用 CAS(cookie 策略中的票证)和共享 LADP 服务器进行单点登录
- 根据当前登录用户具有基于角色的访问控制逻辑
- 为页面的 ajax 使用公开许多 RESTful(like) web api
现在我们发现这些用于 ajax 请求的 Web api 可以用作其他 Web 应用程序的服务(如员工信息、客户信息等)。这意味着我们需要在后端访问这些 api(使用 C# 代码)。问题是身份验证和授权。
我不知道如何使用现有的身份验证模式来访问那些 web api。我只能想到一种在后端服务器之间使用共享服务凭证的方法,但这意味着该凭证必须具有完全访问权限。是否存在安全风险?正如我所提到的,我们在 CAS 的 cookie 策略中使用票证。这对于浏览器来说是可以的,但对于 C# 代码来说似乎很难。如何从后端使用带有 CAS 的凭证?使用 WebClient 并手动处理 302?
有没有人遇到过类似的情况并对此有一些好的经验?请给我一些建议。非常感谢。