64 lines
4.6 KiB
Go
64 lines
4.6 KiB
Go
# oc-auth OpenCloud auth service.
|
|
|
|
Manages user auths
|
|
|
|
To build :
|
|
|
|
bee generate routers
|
|
bee run -gendoc=true -downdoc=true
|
|
|
|
OR
|
|
make dev
|
|
|
|
If default Swagger page is displayed instead of tyour api, change url in swagger/index.html file to :
|
|
|
|
url: "swagger.json"
|
|
|
|
|
|
┌─────────┐ ┌──────────┐ ┌────────────┐ ┌────────┐
|
|
│ Browser │ │ UI │ │ Hydra │ │ API │
|
|
└────┬────┘ └────┬─────┘ └────┬───────┘ └───┬────┘
|
|
│ │ │ │
|
|
│ 1. Click "Login" │ │ │
|
|
│─────────────────► │ │ │
|
|
│ │ │ │
|
|
│ 2. Redirect auth │──────────────────► │ │
|
|
│ │ /oauth2/auth │ │
|
|
│ │ │ │
|
|
│ │ ◄──────────────────│ │
|
|
│ │ login challenge │ │
|
|
│ │ │ │
|
|
│ │ 3. Login UI │ │
|
|
│ │ (credentials) │ │
|
|
│ │ │ │
|
|
│ │──────────────────► │ │
|
|
│ │ accept login │ │
|
|
│ │ │ │
|
|
│ │ ◄──────────────────│ │
|
|
│ │ consent challenge │ │
|
|
│ │ │ │
|
|
│ │ 4. CALL API │ │
|
|
│ │──────────────────────────────────────► │
|
|
│ │ fetch peer / roles │
|
|
│ │ │ │
|
|
│ │ ◄──────────────────────────────────────│
|
|
│ │ peer, permissions │
|
|
│ │ │ │
|
|
│ │ 5. Accept consent │ │
|
|
│ │──────────────────► │ │
|
|
│ │ + custom claims │ │
|
|
│ │ │ │
|
|
│ │ ◄──────────────────│ │
|
|
│ │ redirect w/ code │ │
|
|
│ │ │ │
|
|
│ 6. Exchange code │──────────────────► │ │
|
|
│ for token │ /oauth2/token │ │
|
|
│ │ │ │
|
|
│ ◄─────────────────│ │ │
|
|
│ 7. JWT access_token │ │
|
|
│ (signed + enriched) │
|
|
│ │
|
|
│ 8. API call with Bearer token │
|
|
│───────────────────────────────────────────────────────────►│
|
|
│ │
|
|
│ ◄──────────────────────────────────────────────────────────│ |