# Knowledge Management (Library)
<!-- Put the link to this slide here so people can follow -->
slide: [Library](https://hackmd.io/@5GMsFczrQ6uSUMn2D-WM1g/library#/)
---
#### AWS Diagram ([cloudcraft](https://cloudcraft.co/view/e61b9b8d-1d3d-483f-be9a-5bb1758ea12f?key=wHOC1pVs2hdopivGUBV7fw))

---
#### Authentication Flow (Part I)
```sequence
Client->KM Server: 1. Request Resources
Note right of KM Server: 2. Validate User Session (KM Cookie)
Note left of KM Server: Valid User
KM Server->Client: 2.1 Return Resources
Note left of KM Server: Invalid User
Note left of KM Server: + Generate New Session
KM Server-->Client: 2.2 Keep Request Path and Return (302) Redirect to /oauth
Note left of Client: Redirect to KM
Client->KM Server: 2.3 Client Redirect to /oauth
Note right of KM Server: 3. Authorization
KM Server-->Client: 3.1 Return (302) Redirect to (H1)/oauth/authorize
Note left of Client: Redirect to H1
Client-> H1 Server: 3.2 Client Redirect to (H1)/oauth/authorize
```
---
#### Authentication Flow (Part II)
```sequence
Note left of Client:
Note left of KM Server:
Note right of H1 Server: 4. Validate User Session (H1 Cookie)
Note left of H1 Server: Valid User
H1 Server-->Client: 4.1 Return (302) Redirect to (KM)/oauth/callback
Note left of Client: Redirect to KM
Client->KM Server: 4.2 Client Redirect to (KM)/oauth/callback
Note right of KM Server: 5. Restore Default Path
KM Server-->Client: 5.1 Return (302) Redirect to Default Path with 'eko-auth-code'
Note left of Client: Redirect to KM
Client->KM Server: 5.2 Client Redirect to Default Path with 'eko-auth-code'
Note left of H1 Server: Invalid User
H1 Server-->Client: 4.3 Return (302) Redirect to (H1)/login
Note left of Client: Redirect to H1
Client-> H1 Server: 4.4 Client Redirect to (H1)/login
Note right of H1 Server: 6. Login Process
Note left of H1 Server: If pass goto step 4.1, If not re-try login
```
---
##### Links
- [RFC 6749](https://tools.ietf.org/html/rfc6749) - The OAuth 2.0 Authorization Framework
- [RFC 8252](https://tools.ietf.org/html/rfc8252) - OAuth 2.0 for Native Apps
{"metaMigratedAt":"2023-06-14T23:37:39.475Z","metaMigratedFrom":"YAML","title":"Knowledge Management","breaks":true,"description":"This document uses for description about Knowledge Management (KM)","contributors":"[{\"id\":\"e4632c15-cceb-43ab-9250-c9f60fe58cd6\",\"add\":6916,\"del\":4586}]"}