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

Implement a custom auth backend or a custom proxy with auth logic #1

Open
cgcgbcbc opened this issue Apr 15, 2015 · 1 comment
Open
Milestone

Comments

@cgcgbcbc
Copy link
Member

Requirements:

  1. Support query for anonymous or login user. (Configurable is better)
  2. Support pull for anonymous or login user.(Configurable is better)
  3. Support push,delete for login user. Restricted to path under the user name.
  4. Support push,delete for /library and any path for administrator.
  5. Support docker-cli login logout method.

Implement notes:

There are two approach: A custom auth backend behind nginx; A custom proxy with auth logic.

For the first one, http://antoineroygobeil.com/blog/2014/2/6/nginx-ruby-auth/ can be a reference.
Another idea is to use LDAP behind nginx, references are: https://github.com/presbrey/nginx-auth-request-ldap https://registry.hub.docker.com/u/h3nrik/nginx-ldap/

For the second one, references are https://github.com/nodejitsu/node-http-proxy https://golang.org/src/net/http/httputil/reverseproxy.go https://github.com/azer/boxcars

Benefits:

Now the registry is running behind vpn, without auth. There are two issues:

  1. We cannot prevent users who has a vpn access modify images that we do not want.
  2. Users running docker behind boot2docker now will get stuck since modify are needed to let vm use host's vpn network, which need study and is not easy to use.

When we have a auth backend, we can bind the registry on public interface and thus solve the 2 issues

@cgcgbcbc cgcgbcbc modified the milestone: 0.1 Apr 15, 2015
@cgcgbcbc
Copy link
Member Author

cgcgbcbc commented May 1, 2015

Something like ralasafe may be helpful. But ralasafe itself has turned to an close sourse commercial product, and the open source version has been inactive since last year.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant