GithubHelp home page GithubHelp logo

hypo-sh / emissary Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 29 KB

Clojure OIDC client

License: MIT License

Clojure 100.00%
clojure clojure-library clojurescript clojurescript-library oidc-client

emissary's Introduction

Emissary

Outsource user managment to an OIDC identity provider.

Emissary makes it easy to enable your application to act as an OIDC client. It is identity provider-agnostic, meaning your application can use Emissary to connect with any spec-compliant identity provider for user management.

Status

This is pre-alpha software currently used internally at Hypo. The API is unstable and will remain so while we learn more about the nuances of OIDC. We do not recommend using Emissary at this time.

Supported identity providers

Emissary aims to be 100% compliant with the OIDC 1.0 and OAuth 2.0 specifications, and our goal is to ensure that it is compatible with any spec-compliant identity provider.

Supported flows

Flow Supported?
Authorization Yes
Implicit No
Hybrid No

(Learn more here.)

Please open an issue if you'd like to see support for an unsupported flow.

Client authentication strategies

Strategy Supported?
client_secret_basic Yes
client_secret_post No
client_secret_jwt No
private_key_jwt No

(Learn more here.)

Please open an issue if you'd like to see support for an unsupported authentication strategy.

Testing

To run Clojure tests:

clojure -M:test

To run ClojureScript tests: (TODO)

Development

To start Clojure and ClojureScript repls:

# In your shell
clojure -M:dev:cider

;; in emacs
cider-connect-clj

;; In your repl
(user/main)

;; in emacs
cider-connect-sibling-cljs

;; in your repl
(user/main)

emissary's People

Contributors

telekid avatar

emissary's Issues

Test HTTP failures

Write tests describing what happens whenever a get or post request fails in core.

Test calls to `save-session!`

in core tests, we pass in a save-session! function. We should replace that function with a mock and assert that it is called with appropriate arguments every time it is invoked.

Factor out hypo-specific code

Pay particular attention to make-handle-logout and make-handle-oidc.

  • Make session read and write configurable (:emissary/session-id)
  • Think about the relationship between db and session storage and how various users may want to configure that

Don't save entire remote config

Instead, use remote config to populate the parts of emissary config necessary for emissary to work. Perform validation after remote config has been fetched.

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.