Using External Authentication with OpenStack Identity
When Keystone is executed in apache-httpd
it is possible to use external authentication methods different
from the authentication provided by the identity store backend.
For example, this makes possible to use a SQL identity backend
together with X.509 authentication, Kerberos, etc. instead of using
the username/password combination.
Using HTTPD authentication
Webservers like Apache HTTP support many methods of
authentication. Keystone can profit from this feature and let the
authentication be done in the webserver, that will pass down the
authenticated user to Keystone using the REMOTE_USER
environment variable. This user must exist in advance in the identity
backend so as to get a token from the controller. To use this method,
OpenStack Identity should be running on apache-httpd.
Using X.509
The following snippet for the Apache conf will authenticate
the user based on a valid X.509 certificate from a known CA:
<VirtualHost _default_:5000>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl.cert
SSLCertificateKeyFile /etc/ssl/private/ssl.key
SSLCACertificatePath /etc/ssl/allowed_cas
SSLCARevocationPath /etc/ssl/allowed_cas
SSLUserName SSL_CLIENT_S_DN_CN
SSLVerifyClient require
SSLVerifyDepth 10
(...)
</VirtualHost>