keystoneauth-websso


Namekeystoneauth-websso JSON
Version 0.2.5 PyPI version JSON
download
home_pageNone
SummaryWebSSO CLI support for OpenStack keystoneauth library
upload_time2025-08-21 17:28:11
maintainerNone
docs_urlNone
authorEd Timmons
requires_python<4.0,>=3.8
licenseApache-2.0
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # OpenID Connect support for OpenStack clients

[![GitHub issues](https://img.shields.io/github/issues/vexxhost/keystoneauth-openid.svg)](https://github.com/vexxhost/keystoneauth-openid/issues)
[![GitHub license](https://img.shields.io/badge/license-Apache%202-blue.svg)](https://raw.githubusercontent.com/vexxhost/keystoneauth-openid/master/LICENSE)

## Quick Reference
1. [Installation](#installation)
2. [Usage-CLI](#1-pass-as-command-line-option)
3. [Usage-stackrc file](#2-add-to-stackrc-file)
4. [Usage-clouds.yml](#3-add-to-cloudsyml)
5. [Keystone server configuration](#keystone-server-config)

This is an authentication plugin for OpenStack clients (namely for
the [keystoneauth1](https://github.com/openstack/keystoneauth) library) which
provides client support for authentication against an OpenStack Keystone server
configured to support OpenID Connect using Apache's
[mod_auth_openidc](https://github.com/zmartzone/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

```bash
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:

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

- Scoped token:

    ```yaml
    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"

```ini
[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

    ```xml
    <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](https://docs.openstack.org/keystone/latest/admin/federation/configure_federation.html#add-the-callback-template-websso) for more information

    ```xml
    <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


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "keystoneauth-websso",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "Ed Timmons",
    "author_email": "ed@delsurf.com",
    "download_url": "https://files.pythonhosted.org/packages/59/87/6362ba7b9e48926aa0d81733af3b604ac2063a32a86594ea69ea3743e496/keystoneauth_websso-0.2.5.tar.gz",
    "platform": null,
    "description": "# OpenID Connect support for OpenStack clients\n\n[![GitHub issues](https://img.shields.io/github/issues/vexxhost/keystoneauth-openid.svg)](https://github.com/vexxhost/keystoneauth-openid/issues)\n[![GitHub license](https://img.shields.io/badge/license-Apache%202-blue.svg)](https://raw.githubusercontent.com/vexxhost/keystoneauth-openid/master/LICENSE)\n\n## Quick Reference\n1. [Installation](#installation)\n2. [Usage-CLI](#1-pass-as-command-line-option)\n3. [Usage-stackrc file](#2-add-to-stackrc-file)\n4. [Usage-clouds.yml](#3-add-to-cloudsyml)\n5. [Keystone server configuration](#keystone-server-config)\n\nThis is an authentication plugin for OpenStack clients (namely for\nthe [keystoneauth1](https://github.com/openstack/keystoneauth) library) which\nprovides client support for authentication against an OpenStack Keystone server\nconfigured to support OpenID Connect using Apache's\n[mod_auth_openidc](https://github.com/zmartzone/mod_auth_openidc), as described\nbelow.\n\n## Description\n\n### `v3websso` plugin\n\nThis plugin will allow you to authenitcate with a keystone server that is\nconfigured to use `openid` as an auth option on `/etc/keystone/keystone.conf`\n\n## Installation\n\nInstall it via pip:\n\n    pip install keystoneauth-websso\n\nOr clone the repo and install it:\n\n    git clone https://github.com/vexxhost/keystoneauth-websso\n    cd keystoneauth-websso\n    pip install .\n\n## Usage\n\n### `v3websso` plugin\n\nThe `<identity-provider>` and `<protocol>` must be provided by the OpenStack\ncloud provider.\n\n#### 1. Pass as command line option\n- Unscoped token:\n\n        openstack --os-auth-url https://keystone.example.org:5000/v3 \\\n            --os-auth-type v3websso \\\n            --os-identity-provider <identity-provider> \\\n            --os-protocol <protocol> \\\n            --os-identity-api-version 3 \\\n            token issue\n\n- Scoped token:\n\n        openstack --os-auth-url https://keystone.example.org:5000/v3 \\\n            --os-auth-type v3websso \\\n            --os-identity-provider <identity-provider> \\\n            --os-protocol <protocol> \\\n            --os-project-name <project> \\\n            --os-project-domain-name <project-domain> \\\n            --os-identity-api-version 3 \\\n            --os-openid-scope \"openid profile email\" \\\n            token issue\n\n#### 2. Add to stackrc file\n\n```bash\nexport OS_AUTH_TYPE=v3websso\nexport OS_AUTH_URL=https://keystone.example.org:5000/v3\nexport OS_IDENTITY_PROVIDER='<keystone-identity-provider>'\nexport OS_PROTOCOL=openid\n\n```\n\n### 3. Add to clouds.yml\n\n- Unscoped token:\n\n    ```yaml\n    clouds:\n        my_cloud:\n            auth_type: v3websso\n            auth_url: https://keystone.example.org:5000/v3\n            identity_provider: <keystone-identity-provider>\n            protocol: openid\n    ```\n\n- Scoped token:\n\n    ```yaml\n    clouds:\n        my_cloud:\n            auth_type: v3websso\n            auth_url: https://keystone.example.org:5000/v3\n            identity_provider: <keystone-identity-provider>\n            protocol: openid\n            auth:\n                project_name: <project-name>\n                project_domain_name: <domain-name>\n    ```\n\ninvoke using\n```\nOS_CLOUD=my_cloud openstack token issue\n```\n\n## Keystone Server config\n\nkeystone configuration consists of the keystone.conf (as well as any domain-specific configs) and the Apache2 wsgi configuration.\n\n### Configure /etc/keystone/keystone.conf\n\nhttp://localhost:9990/auth/websso/ needs to be added as a \"Trusted Dashboard\"\n\n```ini\n[federation]\ntrusted_dashboard=http://your-horizon-dashboard/auth/websso/\ntrusted_dashboard=http://localhost:9990/auth/websso/\n\n```\n\n### Configure wsgi-keystone.conf\n\nThere are 2 required \"protected\" Locations that need to be created.\n\n* 1 Global redirect URL\n\n    ```xml\n    <Location /v3/auth/OS-FEDERATION/identity_providers/redirect>\n        AuthType openid-connect\n        Require valid-user\n    </Location>\n    ```\n\n* 1 Location that is used for websso authentication. This is specific to the target OpenStack Keystone Identity Provider. See [callback_template](https://docs.openstack.org/keystone/latest/admin/federation/configure_federation.html#add-the-callback-template-websso) for more information\n\n    ```xml\n    <Location /v3/auth/OS-FEDERATION/identity_providers/<IDP-name>/protocols/openid/websso>\n        Require valid-user\n        AuthType openid-connect\n        OIDCDiscoverURL http://localhost:15000/v3/auth/OS-FEDERATION/identity_providers/redirect?iss=<url-encoded-issuer>\n    </Location>\n    ```\n\n\nFor detailed configuration of mod_auth_oidc with Keycloak, see:\nhttps://github.com/OpenIDC/mod_auth_openidc/wiki/Keycloak\n\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "WebSSO CLI support for OpenStack keystoneauth library",
    "version": "0.2.5",
    "project_urls": {
        "Repository": "https://github.com/vexxhost/keystoneauth-websso"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "25f9a97ba7d7c658f2216f378d1c9b8c093dd3bf0a53edf959051089a271192a",
                "md5": "46f316f23849933eca67a46b7a2ae860",
                "sha256": "aac9f193546ca462b69025a6fcbca494630000d372608b5da0b345db5f8a5b5a"
            },
            "downloads": -1,
            "filename": "keystoneauth_websso-0.2.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "46f316f23849933eca67a46b7a2ae860",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.8",
            "size": 12281,
            "upload_time": "2025-08-21T17:28:09",
            "upload_time_iso_8601": "2025-08-21T17:28:09.627246Z",
            "url": "https://files.pythonhosted.org/packages/25/f9/a97ba7d7c658f2216f378d1c9b8c093dd3bf0a53edf959051089a271192a/keystoneauth_websso-0.2.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "59876362ba7b9e48926aa0d81733af3b604ac2063a32a86594ea69ea3743e496",
                "md5": "972d6b9826764b3f50b1d365be00181e",
                "sha256": "a30289dd4ae70ba56387bb8defe8da6e3eb7f9e6d289692d3cb5b0c7460b071c"
            },
            "downloads": -1,
            "filename": "keystoneauth_websso-0.2.5.tar.gz",
            "has_sig": false,
            "md5_digest": "972d6b9826764b3f50b1d365be00181e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.8",
            "size": 9761,
            "upload_time": "2025-08-21T17:28:11",
            "upload_time_iso_8601": "2025-08-21T17:28:11.107375Z",
            "url": "https://files.pythonhosted.org/packages/59/87/6362ba7b9e48926aa0d81733af3b604ac2063a32a86594ea69ea3743e496/keystoneauth_websso-0.2.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-21 17:28:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "vexxhost",
    "github_project": "keystoneauth-websso",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "keystoneauth-websso"
}
        
Elapsed time: 1.81745s