Skip to content

Commit

Permalink
Merge pull request #924 from ase-101/develop
Browse files Browse the repository at this point in the history
ES-842
  • Loading branch information
ckm007 authored Sep 29, 2024
2 parents a6b2e49 + 2e23207 commit 28c1c77
Show file tree
Hide file tree
Showing 26 changed files with 1,362 additions and 498 deletions.
37 changes: 26 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,40 @@
[![Maven Package upon a push](https://github.com/mosip/esignet/actions/workflows/push_trigger.yml/badge.svg?branch=develop)](https://github.com/mosip/esignet/actions/workflows/push_trigger.yml)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=mosip_esignet&id=mosip_esignet&metric=alert_status)](https://sonarcloud.io/dashboard?id=mosip_esignet)
# e-Signet Project
# eSignet Project
## Overview
This repository contains the implementation of
* Authorization Code flow of OAuth 2.0. Supports all the mandatory features of OIDC (Open ID Connect) specification.
* VC Issuance Flow, supports only [wallet initiated flow](https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0-12.html#name-authorization-code-flow)
* Proof key code exchange support added. Mandatory for VCI flow.
* Supports basic mandatory features of OpenId Connect for identity assurance specification.
This repository contains limited OpenId protocol implementation with:
* OAuth 2.0 RFC 6749 - Authorization code flow support
* OAuth 2.0 RFC 7636 - PKCE security extension
* OAuth 2.0 RFC 7523 - JWT profile for client authentication
* RFC 7519 - ID token and access token as JWT
* OpenID Connect Discovery 1.0 - /.well-known/openid-configuration
* RFC 5785 - Followed for both openid and oauth well-knowns
* Identity assurance 1.0

e-Signet repository contains following:
## High level overview of eSignet with external systems

![esignet-architecture-overview.png](docs/esignet-architecture-overview.png)

`Note: Kindly refer `[eSignet signup repository](https://github.com/mosip/esignet-signup)` for more details on eSignet signup module.`

eSignet repository contains following:

1. esignet-core - Library containing all the common interfaces, DTOs and utils that is used as dependency in the other esignet module libraries and services
2. esignet-service - Deployable API service containing all the OIDC and UI controllers.
3. esignet-integration-api - Library containing all the integration interfaces.
4. client-management-service-impl - Client management implementations classes.
5. oidc-service-impl - Oauth and OIDC implementation classes.
6. binding-service-impl - key and individualId binding service implementation classes.
7. consent-service-impl - Service to manage user consent per client.
8. vci-service-impl - Credential issuance service implementation classes.
9. db_scripts - Contains all the db scripts required to do fresh setup of esignet module.
10. db_upgrade_scripts - Contains all the db scripts required to upgrade the DB for esignet module.
7. consent-service-impl - Service to manage user consent per client.
8. oidc-ui - eSignet UI react-app
9. postman-collection - Contains eSignet postman collection with environment files.
10. api-test - eSignet API automation codebase.
11. docker-compose - Contains docker compose setup for developers and IdP enthusiasts.
12. db_scripts - Folder contains all the db scripts required to do fresh setup of eSignet module.
13. db_upgrade_scripts - Folder contains all the db scripts required to upgrade the DB for eSignet module.
14. docs - Folder contains API documentation and readme doc images.

`NOTE: All the Verifiable Credential Issuance endpoints are moved to Inji Certify(Inji stack). Refer` [Inji Certify repository](https://github.com/mosip/inji-certify)` for more information.`

## Databases
Refer to [SQL scripts](db_scripts).
Expand Down
2 changes: 1 addition & 1 deletion docker-compose/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This is the docker compose setup to run esignet UI and esignet-service with mock

## I am a developer, how to setup dependent services to edit and test esignet-service?

1. Run `docker-compose up -f dependent-docker-compose.yml` to start all the dependent services.
1. Run `docker compose --file dependent-docker-compose.yml up` to start all the dependent services.
2. Go to command line for the project root directory and run `mvn clean install -Dgpg.skip=true -DskipTests=true`
3. Add [esignet-mock-plugin.jar](../esignet-service/target/esignet-plugins/esignet-mock-plugin.jar) to esignet-service classpath in your IDE.
4. Start the [EsignetServiceApplication.java](../esignet-service/src/main/java/io/mosip/esignet/EsignetServiceApplication.java) from your IDE.
Expand Down
25 changes: 3 additions & 22 deletions docker-compose/dependent-docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
services:
database:
image: 'postgres:latest'
image: 'postgres:bookworm'
ports:
- 5455:5432
environment:
Expand All @@ -10,7 +10,7 @@ services:
- ./init.sql:/docker-entrypoint-initdb.d/init.sql

redis:
image: redis:latest
image: redis:6.0
container_name: redis-server
ports:
- "6379:6379"
Expand All @@ -28,23 +28,4 @@ services:
- SPRING_DATASOURCE_USERNAME=postgres
- SPRING_DATASOURCE_PASSWORD=postgres
depends_on:
- database

zookeeper:
image: wurstmeister/zookeeper
container_name: zookeeper
ports:
- "2181:2181"

kafka:
image: wurstmeister/kafka
container_name: kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_LISTENERS: INSIDE://kafka:9092,OUTSIDE://localhost:9093
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
KAFKA_LISTENERS: INSIDE://0.0.0.0:9092,OUTSIDE://0.0.0.0:9093
KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_CREATE_TOPICS: "esignet-linked:1:1,esignet-consented:1:1"
- database
10 changes: 5 additions & 5 deletions docker-compose/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
services:
database:
image: 'postgres:latest'
image: 'postgres:bookworm'
ports:
- 5455:5432
environment:
Expand All @@ -24,9 +24,7 @@ services:
- database

esignet:
build:
context: ../esignet-service
dockerfile: Dockerfile
image: 'mosipdev/esignet:develop'
user: root
ports:
- 8088:8088
Expand Down Expand Up @@ -55,4 +53,6 @@ services:
- DEFAULT_WELLKNOWN=%5B%7B%22name%22%3A%22OpenID%20Configuration%22%2C%22value%22%3A%22%2F.well-known%2Fopenid-configuration%22%7D%2C%7B%22name%22%3A%22Jwks%20Json%22%2C%22value%22%3A%22%2F.well-known%2Fjwks.json%22%7D%2C%7B%22name%22%3A%22Authorization%20Server%22%2C%22value%22%3A%22%2F.well-known%2Foauth-authorization-server%22%7D%5D
- SIGN_IN_WITH_ESIGNET_PLUGIN_URL=https://raw.githubusercontent.com/mosip/artifactory-ref-impl/master/artifacts/src/mosip-plugins/sign-in-with-esignet/sign-in-with-esignet.zip
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./nginx.conf:/etc/nginx/nginx.conf
depends_on:
- esignet
Binary file added docs/esignet-architecture-overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 28c1c77

Please sign in to comment.