小编mar*_*eig的帖子

多个应用程序上的SSO和REST Api身份验证

在我们公司,我们部署了多个使用CAS服务器通过SSO保护的Web应用程序.用户请求应用程序的URL,如果尚未经过身份验证,则会重定向到CAS服务器登录页面.在成功验证的情况下,用户将被重定向回最初请求的URL.常见的工作流程,完美运作

但是,我们还希望使用CAS Server保护我们的REST Apis.我们的首选流程如下:

  • 用户为应用程序REST Api创建令牌
  • 使用此令牌,用户可以请求临时访问令牌(如CAS令牌)
  • 在对REST Api的每个请求中,用户将临时访问令牌包括为HTTP头或请求参数
  • REST Api应用程序检查提供的临时令牌对CAS服务器的有效性

听起来像OA服务器,CAS服务器确实支持,除了不要求用户随时提供凭据,但我们也想为服务提供身份验证,即调用我们的API的其他应用程序:

  • 开发人员要求提供REST Api令牌(与CAS用户关联)
  • 应用程序使用Api令牌请求临时访问令牌
  • 对Api的进一步请求包括临时访问令牌,作为HTTP头或请求参数
  • REST Api应用程序针对CAS服务器检查临时访问令牌的有效性

我们希望我们的REST Api应用程序对用户凭据一无所知,甚至无法访问用户数据库,这对于使用该应用程序的人来说效果很好(重定向到CAS登录页面).

我不知道如何在不必大量定制CAS服务器的情况下实现此流程并自行实现此行为.

谷歌使用JWT for OAuth 2.0用于服务器到服务器应用程序,这似乎是要走的路.

如果有人能提供一些提示或替代方案(对CAS服务器),我将不胜感激.也许有人已经使用CAS服务器实现了这种模式,并且可以提供有关此问题的一些信息.

最诚挚的问候,Marco

spring cas oauth-2.0 jwt rest-security

9
推荐指数
1
解决办法
1万
查看次数

如何在REST Api中表示只读属性

如果你有一个REST APIhypermedia-driven(HATEOAS),你可以很容易地通过包括或省略响应链接更改客户端的行为(_links).这使客户端能够完全忘记测试当前状态resource(可存在或不存在操作的链接)的操作权限.

此外,如果当前用户没有查看权限,您可以在响应中省略属性.

这样,授权完全在服务器上完成(并控制有资格执行/查看的操作和属性).

但是,如果我想拥有一个read-only房产怎么办?REST API如果属性存在于请求(_POST_OR _PUT_)中,则忽略该属性是没有问题的.它不会得到保存.但客户端如何区分写入只读属性以向用户显示适当的控件(如禁用的输入字段HTML)?

目标是永远不会拥有client request用户的权限,而是拥有完全由资源驱动的权限client/frontend.

任何帮助是极大的赞赏 :-)

rest spring-mvc hateoas hypermedia spring-hateoas

7
推荐指数
1
解决办法
1215
查看次数