问题描述
这是我的环境:
- 后端:网络核心Web API
- 前端:角度
- Cas身份验证
我下面的所有测试均来自带有https的localhost开发(Visual Studio代码+ VS 2019),但在线托管的CAS服务器身份验证除外。
我需要对应用程序进行身份验证,因此用户必须登录才能请求Web api资源。
我目前所做的,但是不确定这是正确的解决方案:
- net core Web api具有cas身份验证中间件(https://github.com/IUCrimson/AspNet.Security.CAS)。
- Angular应用尝试通过http请求获取具有
[authorize]
属性的Web api资源。如果用户从未登录(没有cookie身份验证),则返回401未经授权。 - http拦截器在角度捕获到此,并重定向到cas登录页面。用户登录并使用URL中的ST(服务票证)返回角度应用程序。
- 角度调用Web api控制器
/signin-cas?ticket=
(来自cas客户端中间件)。 Web api获取对http:// my-cas / servicevalidate的请求进行验证的票证,从响应中获取用户信息,然后生成身份验证cookie。 现在我的角度应用程序已通过Cookie进行了身份验证,并且用户可以使用[authorize]
属性访问api资源。
我不知道我是否一切正常-我还在寻求帮助。
我不确定流程,是我通过Web API还是通过请求my-cas / servicevalidate来验证票证的角度?
我尝试从http.get的角度进行尝试,但没有成功(总是出现CORS错误),但这是通过Web api进行的...
致谢,杰里
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)