mirror of
https://github.com/ditkrg/AuthorizationServerDemos.git
synced 2026-01-23 01:46:39 +00:00
Merge branch 'master' of https://github.com/ditdevtools/AuthorizationServerDemos
This commit is contained in:
commit
0bd5750560
@ -9,6 +9,7 @@ const app = express()
|
|||||||
app.use(cors())
|
app.use(cors())
|
||||||
const port = 8000
|
const port = 8000
|
||||||
|
|
||||||
|
// https://github.com/auth0/node-jwks-rsa/blob/master/examples/express-demo/README.md
|
||||||
app.use(jwt({
|
app.use(jwt({
|
||||||
// Dynamically provide a signing key based on the kid in the header and the signing keys provided by the JWKS endpoint.
|
// Dynamically provide a signing key based on the kid in the header and the signing keys provided by the JWKS endpoint.
|
||||||
secret: jwksRsa.expressJwtSecret({
|
secret: jwksRsa.expressJwtSecret({
|
||||||
|
|||||||
127
README.md
Normal file
127
README.md
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
# Authorization Server Demo
|
||||||
|
|
||||||
|
This is an early look of what the future of authentication might look like for citizens and employees in Kurdistan.
|
||||||
|
|
||||||
|
**DISCLAIMER:** This is by no means a production-grade system. This was done in a short time and is only meant for demoing the Authorization Server. We are NOT using best practices everywhere in an effort to put something together as soon as possible.
|
||||||
|
|
||||||
|
## Components
|
||||||
|
|
||||||
|
### IdentityServer 4
|
||||||
|
|
||||||
|
We are using IdentityServer 4 to implement our Authorization Server. You can find the source code here.
|
||||||
|
|
||||||
|
**URL:** http://localhost:10000
|
||||||
|
|
||||||
|
**Dependencies:**
|
||||||
|
|
||||||
|
- [.NET 5 SDK](https://dotnet.microsoft.com/download/dotnet/5.0)
|
||||||
|
|
||||||
|
**How to run:**
|
||||||
|
|
||||||
|
```
|
||||||
|
cd ./CSharp/OidcSamples/OidcSamples.AuthorizationServer
|
||||||
|
dotnet run
|
||||||
|
```
|
||||||
|
|
||||||
|
### Traffic Police React App
|
||||||
|
|
||||||
|
This is a react SPA that allows citizens to manage their registered vehicles. It talks to the Traffic Police API to get and update data.
|
||||||
|
|
||||||
|
**URL:** http://localhost:3000
|
||||||
|
|
||||||
|
**Dependencies:**
|
||||||
|
|
||||||
|
- Authorization Server
|
||||||
|
- Traffic Police API
|
||||||
|
- [oidc-js](https://github.com/IdentityModel/oidc-client-js)
|
||||||
|
- NodeJS
|
||||||
|
|
||||||
|
**How to run:**
|
||||||
|
|
||||||
|
```
|
||||||
|
cd ./React/traffic-police/
|
||||||
|
npm install
|
||||||
|
npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
### Traffic Police API
|
||||||
|
|
||||||
|
This is an ASP.NET Core API that talks to a PostgreSQL database.
|
||||||
|
|
||||||
|
**URL:** http://localhost:6000
|
||||||
|
|
||||||
|
**Dependencies:**
|
||||||
|
|
||||||
|
- [.NET 5 SDK](https://dotnet.microsoft.com/download/dotnet/5.0)
|
||||||
|
- Authorization Server
|
||||||
|
- PostgreSQL
|
||||||
|
- [.NET Core EF CLI](https://docs.microsoft.com/en-us/ef/core/cli/dotnet)
|
||||||
|
|
||||||
|
**How to run:**
|
||||||
|
|
||||||
|
```
|
||||||
|
cd ./CSharp/OidcSamples/OidcSamples.TrafficPoliceApi
|
||||||
|
dotnet tool install --global dotnet-ef
|
||||||
|
dotnet ef database update
|
||||||
|
dotnet run
|
||||||
|
```
|
||||||
|
|
||||||
|
### Real Estate React App
|
||||||
|
|
||||||
|
This is a react SPA that allows citizens to manage their registered real estate. It talks to the Real Estate API to get and update data.
|
||||||
|
|
||||||
|
**URL:** http://localhost:4000
|
||||||
|
|
||||||
|
**Dependencies:**
|
||||||
|
|
||||||
|
- NodeJS
|
||||||
|
- [oidc-js](https://github.com/IdentityModel/oidc-client-js)
|
||||||
|
- Real Estate API
|
||||||
|
- Authorization Server
|
||||||
|
|
||||||
|
**How to run:**
|
||||||
|
|
||||||
|
```
|
||||||
|
cd ./React/real-estate/
|
||||||
|
npm install
|
||||||
|
npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
### Real Estate API
|
||||||
|
|
||||||
|
This is an ExpressJS API that talks to a PostgreSQL database.
|
||||||
|
|
||||||
|
**URL:** http://localhost:6000
|
||||||
|
|
||||||
|
**Dependencies:**
|
||||||
|
|
||||||
|
- NodeJS
|
||||||
|
- [node-jwks-rsa](https://github.com/auth0/node-jwks-rsa/blob/master/examples/express-demo/README.md)
|
||||||
|
- Authorization Server
|
||||||
|
- PostgreSQL
|
||||||
|
|
||||||
|
**Generate database schema**:
|
||||||
|
|
||||||
|
Create a database called `real_estate` and run this script:
|
||||||
|
|
||||||
|
```
|
||||||
|
CREATE TABLE public.real_estate (
|
||||||
|
id serial NOT NULL DEFAULT nextval('real_estate_id_seq'::regclass),
|
||||||
|
area float8 NOT NULL,
|
||||||
|
address varchar(256) NULL,
|
||||||
|
citizen_upn varchar(100) NULL,
|
||||||
|
CONSTRAINT real_estate_pkey PRIMARY KEY (id)
|
||||||
|
);
|
||||||
|
```
|
||||||
|
|
||||||
|
**How to run:**
|
||||||
|
|
||||||
|
```
|
||||||
|
cd ./Node/real-estate
|
||||||
|
npm install
|
||||||
|
node index.js
|
||||||
|
```
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
1. The APIs assume that the PostgreSQL database instance is on localhost and the username is `postgres` and password is `root`. If it's different, then you have to configure the APIs with the correct credentials.
|
||||||
Loading…
Reference in New Issue
Block a user