Skip to main content

DCI authentication module used by dci-control-server and python-dciclient

Project description

python-dciauth

DCI authentication module used by dci-control-server and python-dciclient

This section shows example programs written in python that illustrate how to work with Signature Version 2 in DCI. The algorithm used by dciauth is identical to Signature Version 4 in AWS.

Authentication example:

GET

import requests

from dciauth.v2.headers import generate_headers

headers = generate_headers(
    {"endpoint": "/api/v1/jobs"},
    {"access_key": "remoteci/client_id", "secret_key": "secret"},
)
requests.get("http://api.distributed-ci.io/api/v1/jobs", headers=headers)

POST

import requests

from dciauth.v2.headers import generate_headers

data = {"name": "user 1"}
headers = generate_headers(
    {
        "method": "POST",
        "endpoint": "http://api.distributed-ci.io/api/v1/users",
        "data": data,
    },
    {"access_key": "remoteci/client_id", "secret_key": "secret"},
)
requests.post("http://api.distributed-ci.io/api/v1/users", headers=headers, json=data)

Validation example

    from flask import request

    from dciauth.v2.headers import parse_headers
    from dciauth.v2.signature import is_valid

    valid, error_message = is_valid(
        {
            "method": request.method,
            "endpoint": request.path,
            "data": request.data,
            "params": request.args.to_dict(flat=True),
        },
        {"secret_key": "secret"},
        parse_headers(request.headers),
    )
    if not valid:
        raise Exception("Authentication failed: %s" % error_message)

Using POSTMAN

If you are using POSTMAN to discover DCI API you can use the following parameters with the AWS Signature authorization header:

GET https://api.distributed-ci.io/api/v1/identity
AccessKey=<DCI_CLIENT_ID>
SecretKey=<DCI_API_SECRET>
AWS Region="BHS3"
Service Name="api"

License

Apache 2.0

Author Information

Distributed-CI Team distributed-ci@redhat.com

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

dciauth-3.0.1.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

dciauth-3.0.1-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file dciauth-3.0.1.tar.gz.

File metadata

  • Download URL: dciauth-3.0.1.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for dciauth-3.0.1.tar.gz
Algorithm Hash digest
SHA256 2c9bb4f9c9f11630ca683804bb891e0fdb3aceb445d20a1c0d2f450a82a0daee
MD5 8eed589a1112cddfcaab074d55d61fd4
BLAKE2b-256 d3c1d22ce6145df4d63b4eb6b143f840ed266494ed1f3ca6ade1623e8eac1b10

See more details on using hashes here.

File details

Details for the file dciauth-3.0.1-py3-none-any.whl.

File metadata

  • Download URL: dciauth-3.0.1-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for dciauth-3.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 68c935fe9c94ebe04434aa81b44ecc7f8e59bc82ca49d040bcf1ed89eecf5a1c
MD5 e25ee0d24369675561b7ccbbc2995333
BLAKE2b-256 343ea594baa0683db33b763f7f4b9395129e687adbcf3fde18b1db07a0e33b77

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