OpenID Connect plugin for Keystone authentication
This repository contains an OpenID Connect Implementation for the OpenStack Identity service (Keystone).
Installation
Install it via pip:
pip install keystone_oidc_auth_plugin
Configuration
In order to configure it you must enable it on the authentication methods in
keystone.conf, and then specify to use the ifca plugin, for instance:
[auth]
# Allowed authentication methods. Note: You should disable the `external` auth
# method if you are currently using federation. External auth and federation
# both use the REMOTE_USER variable. Since both the mapped and external plugin
# are being invoked to validate attributes in the request environment, it can
# cause conflicts. (list value)
methods = password,token,openid
openid = ifca
Then, you can configure the global OpenID Connect specific options as follows:
[openid]
# The prefix to use when setting claims in the HTTP headers/environment
# variables. (string value)
#claim_prefix = OIDC_
# Value to be used to obtain the entity ID of the Identity Provider from the
# environment. Defaults to OIDC_iss. (string value)
#remote_id_attribute = OIDC_iss
# Default duration in seconds after which retrieved JWS should be refreshed.
# (integer value)
#jws_refresh_interval = 3600
Finally, you need to add a section for each of the Identity Providers (IdP)
that you want to support. In order to do so, the plugin looks for IdP entries
that are prefixed by openid_. The IdP name that you use for each of these
entries must match the identity provider's name configured in Keystone,
therefore if you have defined an IdP named idp-name, you must add an entry as
follows:
[openid_idp-name]
# OpenID connect issuer URL. We will use this to build all the required options
# asking the discovery url (i.e. querying the $issuer/.well-known/openid-
# configuration endpoint. This has to correspond to the 'remote-id' parameter
# that is set in the federated identity provider configuration that is
# configured in Keystone. (string value)
#issuer = <None>
# Client identifier used in calls to the OpenID Connect Provider (string value)
#client_id = <None>
# OpenID connect issuer URL. We will use this to build all the in Keystone.
# (string value)
#authorization_endpoint = <None>
# Client identifier only known by the application and Identity provider client
# (string value)
#client_secret = <None>
# Supported OpenID scopes in the Identity provider (string value)
#scope = <None>
# OpenID connect URL to get identity and access tokens (string value)
#token_endpoint = <None>
# Allowed HTTP method for userinfo request. Optional.
#userinfo_method = POST
Metadata
Release files for keystone-oidc-auth-plugin 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| keystone-oidc-auth-plugin-1.0.0.tar.gz | 23.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| keystone_oidc_auth_plugin-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 39.2 kB
Release files / keystone-oidc-auth-plugin-1.0.0.tar.gz
| Download URL | keystone-oidc-auth-plugin-1.0.0.tar.gz |
|---|---|
| Size | 23.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b2e8dbf8b7c0b8bee8e613018d4faca4b54519fbebc18ed88d8d8b5f65526e2c
|
|
BLAKE2b-256 checksum How to use checksums |
c439fcbe2940b511b75f5df7e768e027a590712e8ce39a12cd759ff5ec3282a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.4.2 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.8.0 tqdm/4.51.0 CPython/3.8.6
|
Release files / keystone_oidc_auth_plugin-1.0.0-py3-none-any.whl
| Download URL | keystone_oidc_auth_plugin-1.0.0-py3-none-any.whl |
|---|---|
| Size | 15.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
90dd4abca6d11adbf0a0b207caaa0b7f941ccc107b55aace7829162b6d8e4c6a
|
|
BLAKE2b-256 checksum How to use checksums |
02bedc6cd8270c27373e718002cb21c20f0b1c47fc09c436314baab54ba7ca80
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.4.2 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.8.0 tqdm/4.51.0 CPython/3.8.6
|