WebSSO CLI support for OpenStack keystoneauth library
Project description
OpenID Connect support for OpenStack clients
Quick Reference
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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file keystoneauth_websso-0.2.5.tar.gz.
File metadata
- Download URL: keystoneauth_websso-0.2.5.tar.gz
- Upload date:
- Size: 9.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a30289dd4ae70ba56387bb8defe8da6e3eb7f9e6d289692d3cb5b0c7460b071c
|
|
| MD5 |
972d6b9826764b3f50b1d365be00181e
|
|
| BLAKE2b-256 |
59876362ba7b9e48926aa0d81733af3b604ac2063a32a86594ea69ea3743e496
|
Provenance
The following attestation bundles were made for keystoneauth_websso-0.2.5.tar.gz:
Publisher:
release.yml on vexxhost/keystoneauth-websso
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
keystoneauth_websso-0.2.5.tar.gz -
Subject digest:
a30289dd4ae70ba56387bb8defe8da6e3eb7f9e6d289692d3cb5b0c7460b071c - Sigstore transparency entry: 417810426
- Sigstore integration time:
-
Permalink:
vexxhost/keystoneauth-websso@bf068c0597098e0ed998776d439a1819112a7029 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/vexxhost
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@bf068c0597098e0ed998776d439a1819112a7029 -
Trigger Event:
push
-
Statement type:
File details
Details for the file keystoneauth_websso-0.2.5-py3-none-any.whl.
File metadata
- Download URL: keystoneauth_websso-0.2.5-py3-none-any.whl
- Upload date:
- Size: 12.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aac9f193546ca462b69025a6fcbca494630000d372608b5da0b345db5f8a5b5a
|
|
| MD5 |
46f316f23849933eca67a46b7a2ae860
|
|
| BLAKE2b-256 |
25f9a97ba7d7c658f2216f378d1c9b8c093dd3bf0a53edf959051089a271192a
|
Provenance
The following attestation bundles were made for keystoneauth_websso-0.2.5-py3-none-any.whl:
Publisher:
release.yml on vexxhost/keystoneauth-websso
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
keystoneauth_websso-0.2.5-py3-none-any.whl -
Subject digest:
aac9f193546ca462b69025a6fcbca494630000d372608b5da0b345db5f8a5b5a - Sigstore transparency entry: 417810445
- Sigstore integration time:
-
Permalink:
vexxhost/keystoneauth-websso@bf068c0597098e0ed998776d439a1819112a7029 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/vexxhost
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@bf068c0597098e0ed998776d439a1819112a7029 -
Trigger Event:
push
-
Statement type: