请教 Casdoor 的几个问题

2022-05-13 16:06:10 +08:00
 wangxiaoaer
前阵子看到 Casdoor 这个产品在 V2 推广,就试了试,中间有些疑问,本来想去 github 的 issue 提问的,但是看了下目前 open 的 issue 基本都是机器人回复,感觉意义不大,所以发到这里。

1 CAS 自身的登陆页面(应该算是 app-built-in 这个应用)按照文档所说默认属于 built-in 组织,通过这种途径进去的用户都具备管理员权限,是否意味着如果这个 app-built-in 这个应用启用了第三方登录,那任意第三方登陆进来的用户都是管理员?

2 针对多个应用,假设名字 A 和 B ,二者都启用了 github 登录,并且开启了会话保持。应用 A 和 B 有各自的登录页,通过 clientID 区分( https://casdoor.org/zh/docs/basic/core-concepts#%E7%99%BB%E5%BD%95-url )。经测试,每次访问应用的登录页都会重新跟 GitHub 进行一次完整的 OAuth2 交互。
大体是这个流程:

应用 A----应用 A 登录页----GitHub 登录---调用 Casdoor 回调----调用应用 A 回调
应用 B----应用 B 登录页----GitHub 登录---调用 Casdoor 回调----调用应用 B 回调

这个按照个人理解,第一次登陆后应该保存用户状态,后面再访问,直接跳回对应的应用就行了。类似这样:

应用 A----应用 A 登录页----GitHub 登录---调用 Casdoor 回调----调用应用 A 回调
应用 B----应用 B 登录页----(检测到已登录)----调用应用 B 回调

不知道这个是基于什么考虑?因为按照目前的流程,假如由于某些原因,github 用户状态丢失,那么用户在已经通过应用 A 登陆了 casdoor 的情况下,再访问应用 B 的时候还需要跳转到 GitHub 输入用户名密码,感觉这脱离了 SSO 的原意。


有没有用过的?
1380 次点击
所在节点    问与答
8 条回复
wangxiaoaer
2022-05-13 16:06:33 +08:00
Casbin
2022-05-23 21:59:54 +08:00
@wangxiaoaer

1. 可以把 app-built-in 的注册关闭,这样其他用户就注册不进来了,不论什么途径;

2. 可以设置应用打开“保持会话”,这样同一个组织下的应用(比如 A 和 B ),在 A 登录后,Casdoor 保留会话,在 B 应用登录时会自动显示要不要通过已有会话快速登录。
wangxiaoaer
2022-05-25 16:15:31 +08:00
@Casbin 1 说的是登录,不是说注册,即使关闭了 built 应用的注册,但是仍然可以登录啊。
Casbin
2022-05-25 19:52:29 +08:00
@wangxiaoaer OAuth 登录的时候,如果账号不存在,则尝试自动注册,注册时应该会过是否可以注册的检测,如果这里有 bug ,可以报到 github
ackfin01
2022-09-08 11:50:09 +08:00
@Casbin 关于 casdoor 的使用有一点小疑问:

有两个子应用 A 和 B ,各自有用户系统,现在想整合到 casdoor 。但是有以下问题:

- A 和 B 应用的密码加密算法可能不同
- A 和 B 应用有重名用户
- B 应用的登录方式可能有所不同,存在父账号,子账号比较复杂的情况

现在想问一下 casdoor 是否支持将用户分成不同的域,在不同的域上实现不同的密码加密算法,使用域来区分重名用户和登录方式的差异?

或者有其他更好的方式吗?
wangxiaoaer
2022-09-08 13:53:45 +08:00
@ackfin01 如果 A 和 B 都接入到了 casdoor 的话,那么 A 和 B 不再需要验证密码,因为验证密码属于“用户名密码”方式,验证这个动作已经由 casdoord 接管了,至于 casdoor 能否使用现成的用户表并基于对应表里用户密码加密算法进行验证,就不确定了。但我不估计不太乐观。
ackfin01
2022-09-08 14:04:25 +08:00
@wangxiaoaer 针对已有应用接入 sso 系统,用户这块是一般是怎么处理的
wangxiaoaer
2022-09-08 14:24:29 +08:00
@ackfin01 一般情况下接入 SSO 后跳转到 A 和 B 后,跳转到 A 和 B 后需要验证用户名密码绑定下原有用户,绑定成功后,A 和 B 原系统的用户、密码有关的信息就可以删掉了。

有的 SSO 自带用户,比如微信、QQ 等。 有的 SSO 不带用户,比如自建的 casdoor 这种,所以可能要用户 A 和 B 的用户先到 CASdoor 重新注册下。不过也可以考虑把 A 或者 B 的用户名密码直接导入到 casdoor ,如果其中某一个的密码加密方式跟 casdoor 一致的话。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/852655

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX