Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenID Connect (oidc) 兼容性问题 #2549

Open
eastpiger opened this Issue Mar 27, 2019 · 1 comment

Comments

Projects
None yet
2 participants
@eastpiger
Copy link

commented Mar 27, 2019

你好,我们团队最近在尝试使用oidc来登陆jumpserver,很感谢最近几个月对这个功能的支持。但是使用过程中有很多问题在这里反馈一下

  1. 没有文档

如果不是读了一下代码,真没注意还有oidc的支持

  1. keyclack和keyclack-client硬编码url导致兼容性问题

对于Django而言,有很多不错的oidc client实现,Python环境下类似的轮子也很多。我不是很清楚为什么开发者团队会选择keyclack,这两个库均试用了大量硬编码URL路径,而其值并不合适。
比如,对于所有oidc请求路径,keyclack的处理是这样的

realms/{realm_name}/.well–known........

并且将realm name作为一个参数处理。

然而事实上,oidc并没有要求url必须以这样的规则编码,很多oidc提供商按要求提供的是/.well-known.....这样的地址(比如Microsoft Azure AD OpenID and OAuth)。这种写法在常用的Django oidc client里也是十分罕见地。这样就导致了所有url不是realms开头的服务无法接入。

事实上,我们的团队最终只得选择自己维护了上述两个库的fork版本,确保应用的连接。

  1. jumpserver对scope硬编码为code

这个问题很显然了,对于不同的提供者,scope是不同的。大多数oidc client的常规操作应当是将其设为选项,而非硬编码进来。

以Azure为例,这里要求的scope就是openid了。

很感谢你们提供这么好的项目。

如果后面有时间,我们可能会push过来我们团队的修改(不过目前还没work)

使用版本

master最新

问题复现步骤

使用Azure AD OIDC连接可复现上述所有问题

具体表现[截图可能会更好些,最好能截全]
其他

[注:] 完成后请关闭 issue

@wojiushixiaobai

This comment has been minimized.

Copy link
Collaborator

commented Apr 8, 2019

@eastpiger 需求已经反馈到团队,感谢您的建议

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.