Skip to main content

OpenID Connect Implementation for OpenStack Keystone.

Project description

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

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

keystone-oidc-auth-plugin-1.0.0.tar.gz (23.3 kB view details)

Uploaded Source

Built Distribution

keystone_oidc_auth_plugin-1.0.0-py3-none-any.whl (15.9 kB view details)

Uploaded Python 3

File details

Details for the file keystone-oidc-auth-plugin-1.0.0.tar.gz.

File metadata

  • Download URL: keystone-oidc-auth-plugin-1.0.0.tar.gz
  • Upload date:
  • Size: 23.3 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for keystone-oidc-auth-plugin-1.0.0.tar.gz
Algorithm Hash digest
SHA256 b2e8dbf8b7c0b8bee8e613018d4faca4b54519fbebc18ed88d8d8b5f65526e2c
MD5 bc753ea40f7163a5340e8d58bd3ab95b
BLAKE2b-256 c439fcbe2940b511b75f5df7e768e027a590712e8ce39a12cd759ff5ec3282a5

See more details on using hashes here.

File details

Details for the file keystone_oidc_auth_plugin-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: keystone_oidc_auth_plugin-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 15.9 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for keystone_oidc_auth_plugin-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 90dd4abca6d11adbf0a0b207caaa0b7f941ccc107b55aace7829162b6d8e4c6a
MD5 5a8db662bdf156ebfa591afee465014e
BLAKE2b-256 02bedc6cd8270c27373e718002cb21c20f0b1c47fc09c436314baab54ba7ca80

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page