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

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

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-2.1.5.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

dciauth-2.1.5-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dciauth-2.1.5.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.5

File hashes

Hashes for dciauth-2.1.5.tar.gz
Algorithm Hash digest
SHA256 fdd1c0d1423f0a2a409b44a8ce35b787f828af77637f34dc5a4be85aaf412292
MD5 9d8703b760cef924107f32648fbbe577
BLAKE2b-256 ecba9ea026603b3a12987e5b9d65acb4f09d6013d5653348560d74477e11b054

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dciauth-2.1.5-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.5

File hashes

Hashes for dciauth-2.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 57550375c18b77a71b90acd5421f0c77e0e8e4cd4f6b54af7fef5b084a51a798
MD5 147b50a91e66f3fb1844eb5699d4a1f9
BLAKE2b-256 2ae2d679af891309960114cb6d3972d40bd0f609a5562e899fd566ae053e4457

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