Git Product home page Git Product logo

iam's Introduction

Identity access management

Identity access management (IAM) provides the authentication and authorization.

It provides the following services.

  1. Open ID Connect
  2. Identity Management
  3. Access Management

Design document can be found on jira.

Architecture

{% plantuml %}

component Browser

cloud "Maaii" {

node "Load Balancer" { interface [/openid only] as public_gateway }

node "Identity Access Management(IAM)" { interface "REST API /identity" as IAM_API_IDENTITY IAM_API_IDENTITY -- [Identity] interface "REST API /access" as IAM_API_ACCESS IAM_API_ACCESS -- [Access] interface "REST API /openid" as IAM_OPENID IAM_OPENID -- [OpenId] }

component "White Label Portal" as WLP WLP --> IAM_API_IDENTITY WLP --> IAM_OPENID WLP --> IAM_API_ACCESS Browser --> public_gateway Browser --> WLP public_gateway --> IAM_OPENID

database "Mongo" { [Company] as table_company [User] as table_user [Role] as table_role [OPEN_ID] as table_openid }

[Identity] --> [table_company] [Identity] --> [table_user] [Access] --> [table_role] [OpenId] --> [table_openid] [OpenId] --> [table_user]

node "Maaii Mail Service" { interface "REST API" as MAIL_REST }

[Identity] --> MAIL_REST

}

{% endplantuml %}

Load Balancer

As certain API endpoints of WLP is not designed for public access. Load Balancer shall be setup to allow only access to /openid endpoint from external.

White Label Portal

See White Label Portal

Maaii Mail Service

Maaii Mail Service is used by Identity module to send user activation mails, reset password mails.

Mongo

IAM itself is stateless, all data are persisted and stored in Mongo.

iam's People

Contributors

maaiii avatar hhhuangqiong avatar thomas-lee 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.