Git Product home page Git Product logo

oauth-identity's Introduction

oauth-identity

One of the weaknesses of OpenID Connect is that the OpenID Provider (OP) conflates the Authorization Server and the Resource Server. This leads to challenges when the OpenID Connect Relying Party (RP) needs to call API's which are not themselves clients of the OP. Consider the diagram below:

What if the /doSomething API needs information about the user that is not known by the original Relying Party? There is no way to create policy in the OP to allow the /doSomething API to gather the required claims!

OpenID Connect doesn't enable us to map policies to different scopes, as it uses scopes to group user claims. The policy is generally limited to "the user (or the organization) approved the release of information." It doesn't leave a lot of room for the person to set more granular polcies--for example, maybe I only want to release information for 12 hours?

OpenID Connect also has problems when identity information resides on more than one OpenID Provider. While OpenID Connect has some mention of [Aggregated and Distributed Claims] (http://openid.net/specs/openid-connect-core-1_0.html#AggregatedDistributedClaims), it is not well flushed out.

What if instead of the OpenID Connect access token, we were to use an UMA RPT token to protect a user_info-like endpoint?

Using the UMA RPT would be more conducive for situations where a person needs to share identity information within a network of related clients.

Also stepped-up authentication is better handled by UMA, which I think is one of the critical requirements for security.

One other optimization that UMA offers is that the client developer doesn't need to know about scopes. Google is publishing a lot of scopes. This reminds me of developers hard coding LDAP schema in their code. This leads to a tight bundling of the application with the security infrastructure.

A simpler identity federation solution would be nice too. How many developers understand the OpenID Connect Hybrid Flow, and when to use it? We're torchuring developers with a lot of mumbo-jumbo.

While OpenID Connect took five years to develop, ever the optimist, I think we create a new identity federation standard faster than that, as have some existing pieces, and we just need to fill in some gaps. With UMA Core, OAuth2 Resource Registration, JWT and JOSE, we have many of the pieces we need to make a more functiona identity federation stack for today's micorservices / cloud infastructure.

Requirements

  • Use UMA RPT token instead of OpenID Connect access token to protect user_info endpoint
  • No HTTP redirects -- this is one of the weakest points of security
  • Minimal optionality
  • Client signing as profile
  • Perhaps make use of JSON-LD signatures and OpenCreds ?

oauth-identity's People

Contributors

nynymike avatar

Watchers

 avatar

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.