WebSSO support for Horizon

Change-Id: I47619663c107011a9dc30eba6bf554b7ce63d69a
This commit is contained in:
Alexander Noskov 2016-12-07 13:00:49 +04:00
parent 56db0f6a9e
commit 787a812f73
8 changed files with 56 additions and 2 deletions

View File

@ -352,6 +352,20 @@ Control dashboard behaviour
address: https://github.com/openstack/horizon.git
rev: stable/juno
Enable WebSSO feature
.. code-block:: yaml
horizon:
server:
enabled: true
websso:
login_url: "WEBROOT + 'auth/login/'"
logout_url: "WEBROOT + 'auth/logout/'"
websso_choices:
- saml2
- oidc
Read more
=========

View File

@ -0,0 +1,24 @@
{%- from "horizon/map.jinja" import server with context %}
{%- if server.websso is defined %}
{%- if server.websso.login_url is defined %}
LOGIN_URL = {{ server.websso.login_url }}
{%- endif %}
{%- if server.websso.logout_url is defined %}
LOGOUT_URL = {{ server.websso.logout_url }}
{%- endif %}
WEBSSO_ENABLED = True
WEBSSO_CHOICES = (
("credentials", _("Keystone Credentials")),
{%- if 'oidc' in server.websso.websso_choices %}
("oidc", _("OpenID Connect")),
{%- endif %}
{%- if 'saml2' in server.websso.websso_choices %}
("saml2", _("Security Assertion Markup Language")),
{%- endif %}
)
WEBSSO_INITIAL_CHOICE = "credentials"
{%- endif %}

View File

@ -75,3 +75,4 @@ INSTALLED_APPS = (
{% include "horizon/files/horizon_settings/_nova_settings.py" %}
{% include "horizon/files/horizon_settings/_glance_settings.py" %}
{% include "horizon/files/horizon_settings/_neutron_settings.py" %}
{% include "horizon/files/horizon_settings/_websso_settings.py" %}

View File

@ -57,3 +57,4 @@ INSTALLED_APPS = (
{% include "horizon/files/horizon_settings/_nova_settings.py" %}
{% include "horizon/files/horizon_settings/_glance_settings.py" %}
{% include "horizon/files/horizon_settings/_neutron_settings.py" %}
{% include "horizon/files/horizon_settings/_websso_settings.py" %}

View File

@ -62,3 +62,4 @@ INSTALLED_APPS = (
{% include "horizon/files/horizon_settings/_nova_settings.py" %}
{% include "horizon/files/horizon_settings/_glance_settings.py" %}
{% include "horizon/files/horizon_settings/_neutron_settings.py" %}
{% include "horizon/files/horizon_settings/_websso_settings.py" %}

View File

@ -62,3 +62,4 @@ INSTALLED_APPS = (
{% include "horizon/files/horizon_settings/_nova_settings.py" %}
{% include "horizon/files/horizon_settings/_glance_settings.py" %}
{% include "horizon/files/horizon_settings/_neutron_settings.py" %}
{% include "horizon/files/horizon_settings/_websso_settings.py" %}

View File

@ -25,6 +25,12 @@ horizon:
host: 127.0.0.1
port: 5000
api_version: 2
websso:
login_url: "WEBROOT + 'auth/login/'"
logout_url: "WEBROOT + 'auth/logout/'"
websso_choices:
- saml2
- oidc
haproxy:
proxy:
listens:
@ -45,4 +51,4 @@ haproxy:
- name: ctl03
host: 127.0.0.1
port: 80
params: cookie ctl03 check inter 2000 fall 3
params: cookie ctl03 check inter 2000 fall 3

View File

@ -23,4 +23,10 @@ horizon:
port: 5000
host: 127.0.0.1
encryption: encryption
api_version: 2
api_version: 2
websso:
login_url: "WEBROOT + 'auth/login/'"
logout_url: "WEBROOT + 'auth/logout/'"
websso_choices:
- saml2
- oidc