我正在开发一个项目,用户将从内部网站重定向到Jenkins。 jenkins配置为LDAP身份验证。内部网站已经对用户进行了身份验证。我的目标是在没有要求凭据的情况下冒充Jenkins中的用户。
可能的方法及其问题:
我不想使用Kerberos SSO
Jenkins通过用户的API令牌支持身份验证。对于此方法,Jenkins期望AUthorization标头具有用户名:ApiToken(Base64编码)。但是,由于我将用户从内部网站重定向到Jenkins,我无法设置该标头。不知怎的,在重定向之前,我无法通过javascript找到任何设置标题的方法。
我在Jenkins中写了一个过滤器,在请求中添加了Authorization标头。我尝试通过GET参数将身份验证凭据传递给Jenkins。我的过滤器将此GET参数转换为HTTPServletRequest中的Authorization标头。 但那并没有奏效。詹金斯没有对该用户进行身份验证。
可能的根本原因: 我查找了Jenkins的源代码,找到了BasicProcessingFilter,BasicAuthenticationFilter。我认为在我的Filter之前调用了这些过滤器。所以,实质上我试图在身份验证过滤器之后添加授权标头。所以,我的尝试失败了。
目前,我被封锁了,无法想出办法。
注意:我可以访问Jenkins中用户的API令牌。
请帮忙。