Skip to main content

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)

Source distribution for keystone-oidc-auth-plugin 1.0.0
File Size Uploaded
keystone-oidc-auth-plugin-1.0.0.tar.gz 23.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for keystone-oidc-auth-plugin 1.0.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

1.0.0 This release

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