Code Monkey home page Code Monkey logo

canonical's Introduction

Canonical

Canonical - Centralized User Management, Authentication & Permissions as a service.

Slogan: Plug & Play Security

Implements a fully declarative oAuth 2.0 server fully supporting all oAuth2 flows. Additional support for:

  • registering redirect endpoints
  • revoking token policies
  • declarative multi-factor flows
  • endpoints for tokeninfo and validation
  • fully declarative (DSL) way in which permissions may be defined
  • permissions are sharable between Applications and Resource Owners in declarative and controlled fashion.
  • support for multiple token-types (Bearer, MAC, SAML, JWT)

canonical's People

Contributors

0xgeert avatar

Watchers

 avatar  avatar

canonical's Issues

MVP 0.2 - Overview

  • admin app per tenant config - coupled to https admin website
  • infra
  • website
    • website docs
    • website blog
    • website front
  • free alpha testing

Overview Freeze Specs

  • oAuth Flow designs
  • usecases(commercial + technical)
  • usecases -> oauth flow designs
  • Requirements (complete)
  • Functional Design complete reqs
  • split requirements to MVP and subsequent iterations

Declarative Controller/Handler

Is there really custom-controlled code needed? can't all things be done declaratively that you'd normally want done in a controller?

Especially when we get application-workflow done declaratively (or using sagas which transfers the flow to the domain-model), in addition to all the operations on single domain-models we have covered pretty much everything?

per-route:

  • defaults (middleware)
  • validation (middleware)
  • authentication (middleware)
  • authorization (middleware)
  • from payload to repo (translation)
  • from repo to view (translation). I.e: view-model

Gratitude.io - Tipping App / Guest book (airbnb , etc. )

2-sided marketplaces need to get traction on 1 side first usually. There's your classic chicken/egg problem. One of the best ways to get this going is piggybacking on an existing marketplace.

AirBnB did this famously by having houseowners crosspost automatically on craigslist getting the supply stream going attracting customers.

So how about you piggyback on AirBnB, that's only fair right? :) I've visited AirBnB houses frequently, but always forget to leave a tip although a wanted to - seriously. How about you start targeting AirBnB homeowners to sign you up for this very purpose? They could leave a note in their house to politely ask for a tip (to pay through your app) if they feel inclined to.

options

  • sms: nr -> tenant + amount - COSTLY
  • using Stripe
    • @tipping.io with $ optionally prefilled (note: you need to pay through cc or paypal)
    • auto-receive link
    • follow link: tenant-created profile
      • thanking them
      • some cheesy choosable picture
      • amount to select
      • OK
      • payment method
      • OK

15% charge (can go down to 12% if we must)

for 15% using stripe

$5 -> $0.75 of which 0.445 goes to Stripe (2.9% + 0.30 cent) -> leaving $0.305
$10 -> $1.5 of which 0.59 goes to Stripe -> leaving $0.91
$15 -> $2.25 of which 0.735 goes to Stripe -> leaving $1.515

Pitch

As posted to http://launchsky.com/

Your requirements on Access Management will change over time.

Be it from a shift of roles in your business or simply because of A/B testing different price (and associated functionality) tiers of your new awesome SaaS.

Having to adapt hardcoded Access Management policies in a multitude of APIs and apps is error-prone. Hardly the area in which you, startup and seasoned business alike, can allow to make even the smallest mistake.

We believe you'd sleep more comfortable knowing there was a way in which you could easily decouple access-related functionality from your apps and manage it in a centralized, controllable and adaptable way. All this, without needing to touch your App or API (after the initial setup that is).

Entitled.io takes care of:

  • Authentication, sign-up and recovery flows (including hosted, white-labeled forms)
  • Flexible Authorization, allowing for point-and-click answering "which users are entitled to which resources?"
  • Identity Management or the issue of "Securely storing your users". Either connect to your internal Identity Solution (LDAP, AD, etc.) or use our hosted solution.

All policies and related functionality are hot (re)configurable through an API or web-dashboard. The latter enables business to turn the knobs, although it's a pleasure to use for developers too.

As Entitled.io supports standards like oAuth2, Uma, and Scim, you're ensured of good open-source clients for your language of choice, in order to correctly connect your App or API to Entitled.io. Moreover, we're planning on open-sourcing clients / client add-ons when needed.

Interested in your thoughts.

Aspect - Authorization

Implement using Policies as a middleware.

  • complete before routes
  • route-specific
  • declarative

should support things such as:

Policies don't seem to be cover a simple use case of returning a subset of data. i.e. Take a simple example
Users model
Groups model, which is a nested set
Users can belong to many groups
Users can see all other users, in the same group or child groups

Declarative Business Logic - Seperate project: rulez.io

Similar to #7 (discussing controllers), would it be possible to have declarative business logic? Especailly when we have a notion of a declarative workflow a lot should be possible. (where leaf-nodes should result on repo-actions)

e.g: the following should be possible:

  • Domain Model: Fat model with business logic, operates on a single or multiple data entities (i.e. entity A in a given state than action on entity B)
  • Data Model: Storage-aware model, logic contained within a single entity relates only to that entity (i.e. if field a then field b) -> EAGER CALCULATED FIELDS. (lazy would be on RESOURCE, i.e: calculate JIT)

MVP 0.2 - Overview

  • admin app per tenant config - coupled to https admin website
  • infra
  • website
    • website docs
    • website blog
    • website front
  • free alpha testing

Minimizing noisy neighbors

read/write load will always be distributed for every customer: even the cheapest package will do HA (?).

Threfore there's a possibility to distributes read-clusters in such a way that each customer will share the least possible nodes with any other customer, therfore minimizing the overall trouble any customer can get from any other.

Or distribution of nodes is a mincost-function over clusters. Something like minclique

competition authentication, authorization, identity management

  • stormpath (hosted)

identity management

Known SCIM 1.1 implementations

Project Name Client Server Open Source Developer URL
Cisco No Yes No Cisco
CloudFoundry UAA Yes Yes Yes, Apache 2.0 Pivotal https://github.com/cloudfoundry/uaa https://github.com/cloudfoundry/cf-uaa-lib https://github.com/cloudfoundry/cf-uaac
Gluu Yes Yes Yes, MIT License Gluu.org http://www.gluu.org/
IdentityIQ (onPremise) Yes No No SailPoint http://www.sailpoint.com/solutions/products/identityiq
IdentityNow (Saas) Yes No No SailPoint http://www.sailpoint.com/solutions/products/identitynow
neXus Hybrid Access Manager Yes No No neXus
OpenSCIM Yes Yes Yes, GPL V3 Google Code http://code.google.com/p/openscim/
PingFederate Yes Yes No Ping Identity https://www.pingidentity.com/products/pingfederate/
PingOne Yes Yes No Ping Identity https://www.pingone.com/
python-scim No No Yes, MIT License Concordus Applications https://github.com/concordusapps/python-scim
RadiantOne VDS Yes Yes No Radiant Logic http://www.radiantlogic.com
Salesforce No Yes No Salesforce http://www.salesforce.com/
SCIM Easy No Yes Yes, Apache-2.0 Eugene Zhukov http://ee.dy.fi/scim
SCIM Proxy Yes Yes Yes, MIT License neXus http://code.google.com/p/scimproxy/
Unbound Reference SDK Yes Yes Yes. GPL, LGPL, or UnboundID Free License. UnboundID http://www.unboundid.com/scim/
UnboundID Identity Data Platform Yes Yes No UnboundID http://www.unboundid.com/scim
WSO2 Charon Yes Yes Apache 2.0 License WSO2 Inc http://wso2.org/projects/charon

Experimental implementations of SCIM 2.0
The 2.0 specification is still under development, deploy implementations based on SCIM 1.1.

Project Name Client Server Open Source Developer URL
OSIAM Yes Yes MIT License osiam.org team http://osiam.org

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.