Giter Site home page Giter Site logo

httpie-asap-auth's Introduction

httpie-asap-auth

PyPi Package PyPi Versions Actions Status Code style: black

ASAP Auth plugin for HTTPie.

Installation

pip install httpie-asap-auth

You should now see asap and asapenv under --auth-type in the $ http --help output.

Usage

http --auth-type=asap --auth=path/to/asap.config http://example.com/

OR, to read from environment variables:

http --auth-type=asapenv --auth=audience[:subject] http://example.com/

Separate multiple audiences with a comma.

Example ASAP Config

Store your ASAP config in a file following this format:

{
    "issuer": "webapp/admin",
    "kid": "webapp/admin/dev.pem",
    "audience": [
        "webapp"
    ],
    "sub": "administration",
    "privateKey": "-----BEGIN RSA PRIVATE KEY-----\n ... \n-----END RSA PRIVATE KEY-----"
}

NB. the subject (sub field) is optional.

Example Environment Variables

ASAP_PRIVATE_KEY=data:application/pkcs8;kid=webapp;base64,...
ASAP_ISSUER=webapp/admin

Generate a Data URI

Generate a data URI, with the key in PKCS8 from an RSA private key PEM file:

#!/bin/sh

# Usage: $0 privatekey.pem

KID=$(echo "$1" | sed 's|/|%2F|g')
KEY=$(openssl pkcs8 -topk8 -inform PEM -outform DER -in "$1" -nocrypt | base64 | tr '\n' ' ' | sed 's| ||g')

echo "data:application/pkcs8;kid=$KID;base64,$KEY"

(thanks to Brian McKenna)

httpie-asap-auth's People

Contributors

dependabot[bot] avatar jasonfriedland avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

httpie-asap-auth's Issues

Support subject impersonation

Current behaviour is for this to ignore the "sub" field.

We just need to propagate this value through to support subject impersonation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.