Coder Social home page Coder Social logo

mzico / jans Goto Github PK

View Code? Open in Web Editor NEW

This project forked from janssenproject/jans

0.0 0.0 0.0 108.57 MB

Welcome to the Janssen Project: The world's leading community governed digital identity platform and introducing Agama, a programming language for cloud authentication.

Home Page: https://docs.jans.io

License: Apache License 2.0

Shell 0.35% JavaScript 3.78% Ruby 0.01% Python 11.17% Java 74.92% CSS 0.33% ANTLR 0.03% Makefile 0.03% HTML 8.19% Batchfile 0.01% FreeMarker 0.04% Dockerfile 0.30% Roff 0.01% Gherkin 0.76% Mustache 0.11%

jans's Introduction

Janssen Project - cloud native identity and access management platform

Welcome to the Janssen Project

Janssen enables organizations to build a scalable centralized authentication and authorization service using free open source software. The components of the project include client and server implementations of the OAuth, OpenID Connect, SCIM and FIDO standards.

Releases: Latest | All

Get Help: Discussions | Chat

Get Started: Documentation | Quick Start | User Guides

Contribute: Contribution Guide | Community Docs | Developer Guides

Artifact Hub CII Best Practices Hex.pm GitHub contributors Conventional Commits

Table of Contents

Janssen Modules

Janssen is not a big monolith--it's a lot of services working together. Whether you deploy Janssen to a Kubernetes cluster, or you are a developer running everything on one server, it's important to understand the different parts.

  1. jans-auth-server: This component is the OAuth Authorization Server, the OpenID Connect Provider, the UMA Authorization Server--this is the main Internet facing component of Janssen. It's the service that returns tokens, JWT's and identity assertions. This service must be Internet facing.

  2. jans-fido2: This component provides the server side endpoints to enroll and validate devices that use FIDO. It provides both FIDO U2F (register, authenticate) and FIDO 2 (attestation, assertion) endpoints. This service must be internet facing.

  3. jans-config-api: The API to configure the auth-server and other components is consolidated in this component. This service should not be Internet-facing.

  4. jans-scim: SCIM is JSON/REST API to manage user data. Use it to add, edit and update user information. This service should not be Internet facing.

  5. jans-cli: This module is a command line interface for configuring the Janssen software, providing both interactive and simple single line options for configuration.

  6. jans-client-api: Middleware API to help application developers call an OAuth, OpenID or UMA server. You may wonder why this is necessary. It makes it easier for client developers to use OpenID signing and encryption features, without becoming crypto experts. This API provides some high level endpoints to do some of the heavy lifting.

  7. jans-core: This library has code that is shared across several janssen projects. You will most likely need this project when you build other Janssen components.

  8. jans-orm: This is the library for persistence and caching implementations in Janssen. Currently, LDAP and Couchbase are supported. RDBMS is coming soon.

  9. Agama: Agama module offers an alternative way to build authentication flows in Janssen Server. With Agama, flows are coded in a DSL (domain specific language) designed for the sole purpose of writing web flows.

Getting Started

Quick Start

For development and testing purposes, the Janssen Server can be quickly installed on an Ubuntu 22.04 VM by running the command below:

wget https://raw.githubusercontent.com/JanssenProject/jans/main/automation/startjanssenmonolithdemo.sh && chmod u+x startjanssenmonolithdemo.sh && sudo bash startjanssenmonolithdemo.sh demoexample.jans.io MYSQL

Full featured Janssen Server is now installed and ready to be used. See Quick-Start Guide to know how to access and start configuring.

Installation

For production environment, Janssen can be installed as cloud-native in a Kubernetes cluster or as a server on a single VM. Go to the Janssen Documentation to know all the installation options

Users and Community

A BIG thanks to all amazing contributors!! ๐Ÿ‘ ๐Ÿ‘

There are many ways you can contribute. Of course, you can contribute code. But we also need people to write documentation and guides, to help us with testing, to answer questions on the forums and chat, to review PR's, to help us with devops and CI/CD, to provide feedback on usability, and to promote the project through outreach. Also, by sharing metrics with us, we can gain valuable insights into how the software performs in the wild.

Building a large community is our number one goal. Please let us know what we can do to make you feel more welcome, no matter what you want to contribute.

Contributing

Code of Conduct

Janssen code of conduct ensures that Janssen community is a welcoming place for everyone.

Contribution Guidelines

Contribution guide will give you all necessary information and howto to get started. Janssen community welcomes all types of contributions. Be it an interesting comment on an open issue or implementing a feature. Welcome aboard! โœˆ๏ธ

Security

Disclosing vulnerabilities

If you think you found a security vulnerability, please refrain from posting it publicly on the forums, the chat, or GitHub. Instead, email us on [email protected].

Refer to Janssen Security Policy

Documentation

Visit Janssen Documentation Site for documentation around current as well as previous versions.

Design

Design Goals

The Janssen Project is aligned with the goals of cloud native infrastructure to enable:

  1. High Concurrency: For digital identity infrastructure, the number of users is not necessarily related to performance. If you have a billion users who never login, you can do this with a monolithic platform. Concurrency is hard. Janssen is designed to scale horizontally--enabling hypothetically any concurrency by adding more compute and memory.

  2. Highly Available: Digital identity infrastructure is mission critical. For many applications, if you can't login, you're dead in the water. Robustness is a fundamental consideration.

  3. Flexible while Upgradable: Open source gives you the freedom to modify the code. But having your own fork of the code might make it hard to upgrade--you'll have to merge changes. Janssen provides standard interfaces that make it possible to implement custom business logic in an upgrade-friendly manner.

Governance

Janssen is a Linux Foundation project, governed according to the charter. Technical oversight of the project is the responsibility of the Technical Steering Committee ("TSC"). Day to day decision-making is in the hands of the Contributors. The TSC helps to guide the direction of the project and to improve the quality and security of the development process.

Support

Documentation currently is a work in progress and published on Documentation site. You may want to also check Gluu Server docs, which have a lot in common with Janssen.

We prefer to have all our discussions through GitHub Discussions to better facilitate faster responses. However, other means are available such as the community chat on Gitter. You can register for free there with your GitHub identity.

If you find a bug in a Janssen project, or you would like to suggest a new feature, try the GitHub Discussions first. If you have a "howto" or "usage" question, raise the question or usage!

Releases

Below are the list of current mega releases that hold information about each single release of our services and modules:

More about Janssen Project

History

The initial code was ported by Gluu, based on version 4.2 of its identity and access management (IAM) platform. Gluu launched in 2009 with the goal of creating an enterprise-grade open source distribution of IAM components. In 2012, Gluu started work on an OAuth Authorization Server to implement OpenID Connect, which they saw as a promising next-generation replacement for SAML. This project was called oxAuth, and over time, became the core component of the Gluu Server. Gluu has submitted many self-certifications at the OpenID Foundation. Today, it is one of the most comprehensive OpenID Connect Providers.

In 2020, Gluu decided to democratize the governance of the oxAuth project by moving it to the Linux Foundation. The name of the project was changed from oxAuth to Janssen, to avoid any potential trademark issues. Gluu felt that a collaboration with the Linux Foundation would help to build a larger ecosystem.

Why the name Janssen?

Pigeons (or doves if you like...) are universally regarded as a symbol of peace. But they are also fast. Powered by a handful of seeds, a well-trained racing pigeon can fly 1000 kilometers in a day. The Janssen brothers of Arendonk in Belgium bred the world's fastest family of racing pigeons. Complex open source infrastructure, like competitive animal husbandry, requires incremental improvement. Janssen racing pigeons revolutionized the sport. The Janssen Project seeks to revolutionize identity and access management.

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.