Skip to main content

IBM SSO Self-Service Provisioner

Project description

ibm-sso

When using SSO Self-Service Provisioner for single sign-on, ibm-sso can make your work easier.

Currently only supports fastapi applications.

Getting Started

pip install ibm-sso

Usage

  1. Add ibm-sso to requirements.txt

    ibm-sso==0.3.4
    

    For versions lower than 0.3.0, the token is returned directly after successful authentication.

    Starting from version 0.3.0, you need to create your own nonce on the client side and then pass that nonce along with the redirect_uri to the server side. code and state are returned after successful authentication. You need to use the code, state, nonce and redirect_uri to obtain token information.

  2. Set environment variables

    Refer to the .env.template in the examples directory.

  3. Import ibm-sso in startup file

    Refer to the main.py in the examples directory.

  4. Protect your API

    If your API requires authentication to access, you can refer to example.py

Examples

There is a full example in the examples directory that can be run directly. You can start from the example to learn how to use ibm-sso.

Deploy project(memo for developer)

  1. Deploy project

    # https://test.pypi.org/
    expect interactive_deploy_test.expect
    
    # https://pypi.org/
    # expect interactive_deploy.expect
    
  2. Use test.pypi.org

    pip install -i https://test.pypi.org/simple/ ibm-sso
    
  3. How to mark a version as yanked

    twine yank <package_name> --version <version> --reason "Reason this release was yanked: Yanked due to <reason>"
    

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.0.1] - 2023-11-28

  • First commit

[0.0.2] - 2023-12-06

  • Add avatar to UserInfoVO

[0.0.3] - 2023-12-06

Added

  • Add avatar to UserInfoVO when the user authenticates.

[0.0.4] - 2024-02-21

Fixed

  • Fixed mismatching_state and invalid_grant error.

[0.0.5] - 2024-07-22

Fixed

  • Fixed pydantic.errors.PydanticUserError: Cannot create a Pydantic dataclass from UserInfoVO as it is already a Pydantic model.

[0.3.0] - 2024-10-24

Updated

  • Replace token with code and state

  • Add /token and /introspect api.

  • Modify the environment from W3ID_ENDPOINT_DISCOVERY to W3ID_SERVER_METADATA_URL

  • Use AsyncOAuth2Client to replace OAuth2Session.

[0.3.1] - 2025-05-28

Added

  • Add get_current_user_for_middleware for FastAPI middleware.

[0.3.2] - 2025-06-23

Updated

  • Update the W3ID avatar prefix. You can also set it using the W3ID_AVATAR_PREFIX environment variable.

[0.3.3] - 2025-07-18

Updated

  • Add a timeout parameter to get_current_user so that users can specify the timeout.

[0.3.4] - 2025-08-06

Updated

  • refactor: move timeout from parameter to internal variable in get_current_user.

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

ibm_sso-0.3.4.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ibm_sso-0.3.4-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file ibm_sso-0.3.4.tar.gz.

File metadata

  • Download URL: ibm_sso-0.3.4.tar.gz
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for ibm_sso-0.3.4.tar.gz
Algorithm Hash digest
SHA256 9768521af9e4cbbcf748c5f4c6456dd94cd0ffeccbe7463410fbd2505024eb43
MD5 9b19d908aade2c414f1cc15d0a31f4e4
BLAKE2b-256 ede4c0d627f95a92f67a61452b692fcf9eabfdffd4a3e83e9ffa8bdc1105fc77

See more details on using hashes here.

File details

Details for the file ibm_sso-0.3.4-py3-none-any.whl.

File metadata

  • Download URL: ibm_sso-0.3.4-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for ibm_sso-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c6498828a1086b49cf641e399d7189cf44be577bd82e1a0b0f4b1c0fbc622e88
MD5 2bcca41d1cdab4b7d70bdf74919e158e
BLAKE2b-256 721ed9c794289db5cbf012cfe1913e627ad995a5872df71c0f1b50db94fb0cd5

See more details on using hashes here.

Supported by

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