Skip to main content

OpenID Connect support for OpenStack clients

GitHub issues GitHub license

Quick Reference

  1. Installation
  2. Usage-CLI
  3. Usage-stackrc file
  4. Usage-clouds.yml
  5. Keystone server configuration

This is an authentication plugin for OpenStack clients (namely for the keystoneauth1 library) which provides client support for authentication against an OpenStack Keystone server configured to support OpenID Connect using Apache's mod_auth_openidc, as described below.

Description

v3websso plugin

This plugin will allow you to authenitcate with a keystone server that is configured to use openid as an auth option on /etc/keystone/keystone.conf

Installation

Install it via pip:

pip install keystoneauth-websso

Or clone the repo and install it:

git clone https://github.com/vexxhost/keystoneauth-websso
cd keystoneauth-websso
pip install .

Usage

v3websso plugin

The <identity-provider> and <protocol> must be provided by the OpenStack cloud provider.

1. Pass as command line option

  • Unscoped token:

      openstack --os-auth-url https://keystone.example.org:5000/v3 \
          --os-auth-type v3websso \
          --os-identity-provider <identity-provider> \
          --os-protocol <protocol> \
          --os-identity-api-version 3 \
          token issue
    
  • Scoped token:

      openstack --os-auth-url https://keystone.example.org:5000/v3 \
          --os-auth-type v3websso \
          --os-identity-provider <identity-provider> \
          --os-protocol <protocol> \
          --os-project-name <project> \
          --os-project-domain-name <project-domain> \
          --os-identity-api-version 3 \
          --os-openid-scope "openid profile email" \
          token issue
    

2. Add to stackrc file

export OS_AUTH_TYPE=v3websso
export OS_AUTH_URL=https://keystone.example.org:5000/v3
export OS_IDENTITY_PROVIDER='<keystone-identity-provider>'
export OS_PROTOCOL=openid

3. Add to clouds.yml

  • Unscoped token:

    clouds:
        my_cloud:
            auth_type: v3websso
            auth_url: https://keystone.example.org:5000/v3
            identity_provider: <keystone-identity-provider>
            protocol: openid
    
  • Scoped token:

    clouds:
        my_cloud:
            auth_type: v3websso
            auth_url: https://keystone.example.org:5000/v3
            identity_provider: <keystone-identity-provider>
            protocol: openid
            auth:
                project_name: <project-name>
                project_domain_name: <domain-name>
    

invoke using

OS_CLOUD=my_cloud openstack token issue

Keystone Server config

keystone configuration consists of the keystone.conf (as well as any domain-specific configs) and the Apache2 wsgi configuration.

Configure /etc/keystone/keystone.conf

http://localhost:9990/auth/websso/ needs to be added as a "Trusted Dashboard"

[federation]
trusted_dashboard=http://your-horizon-dashboard/auth/websso/
trusted_dashboard=http://localhost:9990/auth/websso/

Configure wsgi-keystone.conf

There are 2 required "protected" Locations that need to be created.

  • 1 Global redirect URL

    <Location /v3/auth/OS-FEDERATION/identity_providers/redirect>
        AuthType openid-connect
        Require valid-user
    </Location>
    
  • 1 Location that is used for websso authentication. This is specific to the target OpenStack Keystone Identity Provider. See callback_template for more information

    <Location /v3/auth/OS-FEDERATION/identity_providers/<IDP-name>/protocols/openid/websso>
        Require valid-user
        AuthType openid-connect
        OIDCDiscoverURL http://localhost:15000/v3/auth/OS-FEDERATION/identity_providers/redirect?iss=<url-encoded-issuer>
    </Location>
    

For detailed configuration of mod_auth_oidc with Keycloak, see: https://github.com/OpenIDC/mod_auth_openidc/wiki/Keycloak

Metadata

Release files for keystoneauth-websso 0.2.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for keystoneauth-websso 0.2.5
File Size Uploaded
keystoneauth_websso-0.2.5.tar.gz 9.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for keystoneauth-websso 0.2.5
File Interpreter ABI Platform
keystoneauth_websso-0.2.5-py3-none-any.whl Python 3 none any Details

Total release size: 22.0 kB

Release files / keystoneauth_websso-0.2.5.tar.gz

Download URL keystoneauth_websso-0.2.5.tar.gz
Size 9.8 kB
Tags Source
SHA-256 checksum
How to use checksums
a30289dd4ae70ba56387bb8defe8da6e3eb7f9e6d289692d3cb5b0c7460b071c
BLAKE2b-256 checksum
How to use checksums
59876362ba7b9e48926aa0d81733af3b604ac2063a32a86594ea69ea3743e496
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 21, 2025.

Transparency log

Release files / keystoneauth_websso-0.2.5-py3-none-any.whl

Download URL keystoneauth_websso-0.2.5-py3-none-any.whl
Size 12.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
aac9f193546ca462b69025a6fcbca494630000d372608b5da0b345db5f8a5b5a
BLAKE2b-256 checksum
How to use checksums
25f9a97ba7d7c658f2216f378d1c9b8c093dd3bf0a53edf959051089a271192a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 21, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.5 This release

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page