93 lines
1.9 KiB
Markdown
93 lines
1.9 KiB
Markdown
# AWS OpenID Credential Broker
|
|
|
|
OpenID Based Identity Credential Broker for AWS (Built as an alternative to AWS SSO to support OpenID Federation)
|
|
|
|

|
|
|
|
|
|
## Broker authentication flow
|
|
|
|
```mermaid
|
|
sequenceDiagram;
|
|
|
|
participant User;
|
|
participant Broker;
|
|
participant IDP;
|
|
participant AWS;
|
|
|
|
User -->> Broker: Login via IDP
|
|
Broker -->> IDP: Forward Auth Request
|
|
IDP -->> Broker: IDP Login Successful
|
|
User -->> Broker: Open AWS Console
|
|
Broker -->> AWS: Request Session
|
|
AWS -->> Broker: Login Successfull
|
|
Broker -->> Browser: Open AWS Console
|
|
```
|
|
|
|
## Getting Started
|
|
|
|
Quick Start with docker compose
|
|
|
|
```bash
|
|
docker-compose up -d
|
|
```
|
|
|
|
### Prerequisites
|
|
|
|
- python3
|
|
- virtualenv
|
|
- docker
|
|
- docker-compose
|
|
|
|
|
|
### Installing
|
|
|
|
A step by step series of examples that tell you how to get a development env running
|
|
|
|
Clone the Project
|
|
|
|
```bash
|
|
git clone https://github.com/Rishang/aws-oidc-broker.git
|
|
```
|
|
|
|
Initialzing virtualenv
|
|
|
|
```bash
|
|
cd aws-oidc-broker
|
|
python -m venv venv
|
|
source ./venv/bin/activate
|
|
```
|
|
|
|
Installing Dependencies
|
|
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
Configure .env file or perform export of those variables
|
|
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
|
|
Configure environment variables as required.
|
|
|
|
## Environment Variables for KEYCLOAK integration
|
|
|
|
| VARIABLE NAME | Example VALUE | DESCRIPTION | REQUIRED |
|
|
| --- | --- | --- | --- |
|
|
| `KEYCLOAK_CLIENT_ID` | `aws-oidc`| Client ID | yes |
|
|
| `KEYCLOAK_WELLKNOWN` | `https://example.dev/realms/test/.well-known/openid-configuration` | Keycloak well-known openid URL | yes |
|
|
| `APP_SECRET` | `!apppasswd` | optional env variable to set encrytion secret | no |
|
|
| `TITLE` | `Example Broker` | Title to display on Broker UI | no |
|
|
|
|
## Deployment
|
|
|
|
Add additional notes about how to deploy this on a live system
|
|
|
|
## Built With
|
|
|
|
- [Flask](https://flask.palletsprojects.com/) - The web framework used
|
|
|
|
- [VueJs](https://vuejs.org/) - The web framework for building web user interfaces.
|