All Projects → heroku → Identity

heroku / Identity

Licence: mit
[DEPRECATED] Login and OAuth management service for Heroku

Labels

NOTICE:

This repo is no longer used by Heroku.

Identity

Build Status

Based on the concept of web-based Heroku user management not belonging in the API over the long-term, Identity pulls session-based authentication out of API and provides a drop-in replacement for the Heroku OAuth API that OAuth clients can use instead.

OAuth session management is achieved by a "meta-OAuth" provider implementation. Identity first authorizes itself to get access to a user's account, then authorizes other consumers that use it as a target by proxying calls to the API (but using only the JSON authentication APIs). The one caveat here is that Identity must have the can_manage_authorizations flag set for it in API.

Issue and Security Vulnerability Reporting

In general Heroku makes extensive use of GitHub issues, and for the vast majority of bugs we encourage reporters to use them here. For the limited case of exploitable security vulnerabilities, we ask researchers to report problems to [email protected]. We also have general reporting guidelines, which list the security team's PGP key.

Usage

bundle install
cp .env.sample .env # And then edit it
foreman start
# check localhost:5000

Docker

git clone https://github.com/heroku/identity.git
docker-compose up
curl -i http://$(docker-machine ip identity):5000

Platform Install

heroku config:add COOKIE_ENCRYPTION_KEY=...
heroku config:add DASHBOARD_URL="https://dashboard.heroku.com"
heroku config:add HEROKU_API_URL="https://api.heroku.com"
heroku config:add SIGNUP_URL="https://signup.heroku.com"
heroku config:add HEROKU_OAUTH_ID=...
heroku config:add HEROKU_OAUTH_SECRET=...
git push heroku master

Your OAuth client will also need to be able to manage authorizations, which is set by an internal flag.

Test

rake test

Docker

docker-compose run identity bundle exec rake

## Platform Apps

* `id-production` (production)
* `id-staging` (staging)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].