How to integrate gitlab with our private sso sever?

Hi,
We are planning to setup Gitlab Enterprise Edition.
But we need your help to provide a solution about how to customize the user login function to implement the single sign-on through our company’s authentication server.
i.e how to rewrite the login function?

notice: our company’s authentication server is not Oauth server.
thanks in advance!

Best Regards,
steven

Hello Steven, are you already an Enterprise customer? If so, could you please open a support ticket about that over at https://support.gitlab.com? We’d love to help you out.

Here’s the list of external authentication and authorization providers https://docs.gitlab.com/ee/administration/auth/

Hi, Thank u for your reply.
We are not getting the enterprise version. we are in the investigation stage, so we need find a better solution to integrate with our private sso service.

i have checked the url: https://docs.gitlab.com/ee/administration/auth/.
but we haven’t found the REST API solution, this means:
it’s not workable to re-write the login function or invoke some restful api of gitlab to finish the user authentication. nobody in our team is able to use ruby, so we want to use restful api or hook solution.

now,

we are trying to use the solution(https://github.com/mbleigh/omniauth-jwt#usage
) to implement our private authentication. but we are not sure:

  1. is “auth_url” the authentication service that we need implement
  2. after finished the user authentication, if redirect to our gitlab server like this(“http://gitlab.ourdomain.com/auth/jwt/callback?jwt=#{payload}”)

hope to get your direction!
Thanks in advance!

BR,
steven

Finally, Our team make it done. the key points:

  1. “auth_url” pointed to our oauth server.
  2. there is no exact information about the redirect url(/users/auth/jwt/callback?jwt=“token”) in online document.
    oauth server core code:
    public void get(@RequestParam String userInfo58914) throws IOException {
    Algorithm al = Algorithm.HMAC256(“DdjfkI387LS3”);
    UserInfo usr = getUser(userInfo58914);
    String token = JWT.create()
    .withClaim(“userId”, usr.getID.asString())
    .withClaim(“email”, usr.getEmail.asString())
    .withClaim(“iat”, new Date())
    .sign(al);
    response.sendRedirect(“http://gitlab server ip:port/users/auth/jwt/callback?jwt=” + token);
    //key point: there is no exact information about the redirect url(/users/auth/jwt/callback?jwt=“token”) in online document.
    }