OpenID Connect Provider

Anvil Connect

Anvil Connect aims to be a scalable, full-featured, ready-to-run OpenID Connect + OAuth 2.0 Provider.

  • Protect your apps and APIs with a shared identity and authorization service that you control
  • Provide your users with a seamless authentication experience across several apps, as well as social signin via other providers like Google+, Facebook, Twitter, GitHub, and many more.
  • Authorize third party access to your APIs on a user's behalf
  • Be the bedrock of an ecosystem as an identity provider for other developers

We're building Anvil Connect for small teams like us that want to build fast, grow exponentially and need Identity and Access Management to be a solved problem.

  • Deploy to the cloud in minutes
  • Quickly connect your apps and APIs
  • It's free and open source

Be sure to have recent versions of Node.js, npm, and Redis installed on your system before you begin.

# Install the CLI
$ npm install -g anvil-connect
# Make a place for your deployment repository to live
$ mkdir path/to/project
$ cd path/to/project
# Generate a deployment repository
$ nv init
# Install dependencies
$ npm install
# Initialize the local database
$ nv migrate
# Create the first user account
$ nv signup
# Assign a role
$ nv assign <email> authority
# Start the server in development mode
$ nv serve

You should now have an OpenID Connect Provider running in development mode.

If you're using, deployment is a snap. Create a new project and edit the issuer in config.production.json to reflect your app's url. Be sure to configure Redis as well. Then set these environment variables in the project administration section:


You can copy these values from the .pem files using $ nv copy keys/<private|public>.pem. Be sure to use this command to copy the keys as it will encode the values as expected by Anvil Connect.

$ modulus deploy

Support for other deployment targets is in the works.

We aim to make it effortless.

Any compliant OpenID Connect client should be compatible. For example:

If all else fails, you can use the HTTP API from any language, framework or platform. Please let us know if you write or test a client library. We'll list it here.

Copyright (c) 2014 Christian Smith