REST API 中的 CAS

Posted

技术标签:

【中文标题】REST API 中的 CAS【英文标题】:CAS in Rest API 【发布时间】:2015-09-08 08:59:39 【问题描述】:

我正在基于外部 CAS 服务构建自己的应用程序。我想先使用外部 CAS 对用户进行身份验证,然后允许他们使用我的应用程序。

但是,我正在阅读关于 phpCAS 的文档,但我不确定如何以一种安宁的方式完成它。

我需要一些令牌来提供给我的前端 javascript,每次用户发出请求时,我都会根据 CAS 检查该令牌以确保用户已通过身份验证。有没有办法做到这一点?

我已经阅读了有关票证和代理的信息,但我不明白...对不起我的新手希望你不介意。

【问题讨论】:

【参考方案1】:

有几种不同的方法可以做到这一点。一种方法是使用 Oauth2 用户凭据授权:

例如https://bshaffer.github.io/oauth2-server-php-docs/grant-types/user-credentials/

一般流程是: 1. 您的应用程序向 CAS 发送一个 post 请求。这包含发出请求的用户的用户名/密码凭据。 2. CAS 验证这些凭证并创建不记名令牌(具有与该用户相同的权限)。然后它会将此令牌返回给您的应用程序。 3. 您的应用在所有未来请求中(在授权标头中)使用该不记名令牌。

该令牌有到期日。当它过期时,您的应用将需要再次发出授权请求以获取新令牌。或者使用刷新令牌。

不幸的是,理解这一切并没有真正的捷径。我建议研究 Oauth2 用户凭据授予或 Oauth2 客户端凭据授予(使用谷歌图像查看每个的流程)。然后查看您的 CAS 系统适用于哪个系统。

【讨论】:

我猜关键是CAS返回一个不记名令牌以供将来访问。我想知道那个令牌是从哪里来的。我阅读了文档并返回了 ticket id,但我不知道我应该如何将其用于将来的访问。

以上是关于REST API 中的 CAS的主要内容,如果未能解决你的问题,请参考以下文章

如何将cas restful api 获取到用户信息后

CAS 6.2.2 中的 WebFlow

REST API 中的分层系统约束

如何处理 REST api 中的关系

Python / Django 中的 REST API

Azure Rest API 中的授权令牌格式