Zartan is a master of make-up and disguise and so is this demo platform. 🎉🦄🌈
This project serves as a Sample Application, that you can tweak or completely re-purpose. It is community-supported and is maintained by members of the Okta team for developers and other IT professionals. Zartan is not an official Okta product and does not qualify for any Okta support. Okta makes no warranties regarding this project. Anyone who chooses to use this project must ensure that their implementation meets any applicable legal obligations including any Okta terms and conditions.
- Python >= 3.7+
- Flask >= 1.x
- A Okta tenant. Free 😉
Application | Travel Agency | Streaming Service | Hospitality | Credit | Finance | Dealer | Healthcare | Admin | Ecommerce |
Okta Session Auto Login | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Login Widget (Social Login, IDP Discovery, MFA) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Password-less Widget |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Custom Widget | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Okta Hosted Widget | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Custom Registration | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Profile (ID Token and Access Token Viewer) |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Custom MFA Enrollment | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
User Apps (Display Other User Apps, B2B) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Manage Users (Create User, Update User, Suspend User, Password Reset) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Step Up Authentication using MFA | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
ID Verification (Uses Evident) | ✓ | ✓ | |||||||
Consent | ✓ | ✓ | |||||||
Progressive Profiling | ✓ | ✓ | |||||||
Temporary MFA for Users | ✓ | ||||||||
User Verification via MFA | ✓ | ||||||||
Hard Token Setup | ✓ | ||||||||
User Approve Workflow | ✓ | ✓ | |||||||
IDP Management | ✓ | ||||||||
Device Flow | ✓ |
Local Zartan Setup instructions
Pre-requirements
- docker-desktop => 2.3.0.4
⚠️ Assumed an OAuth/OpenID Client has already been created. Either by terraform or manually , with.env
filed configured.
# Validate .env exist and configured
$ cat .env
# Okta Setting
OKTA_CLIENT_ID="0oa****************"
OKTA_CLIENT_SECRET="ntd************************"
OKTA_ISSUER="https://udp-narisak-a59.oktapreview.com/oauth2/aus**********"
OKTA_ORG_URL="https://udp-narisak-a59.oktapreview.com"
OKTA_OIDC_REDIRECT_URI="http://localhost:8666/authorization-code/callback"
OKTA_API_TOKEN="00iq*******7NHYULle5"
OKTA_SIW_VERSION="Defaults to v5.16.1"
OKTA_AUTH_JS_VERSION="Defaults to v5.11.0"
...
# Start the container(app) in the background (eg. '-d' flag). NOTE: Will take a
# while since container needs to be built.
$ docker-compose up -d
# Navigate http://localhost:8666 with your favorite browser (eg. macOS default Chrome)
$ open http://localhost:8666
# Stop the container
$ docker-compose stop
# Clean up
$ docker-compose down
# Rebuild and start container, if you happen to update requirements.txt.
$ docker-compose up --build
# (Optional) Development commands for pytest. Assuming container is running in daemon mode.
$ docker-compose exec web pytest
# (Optional) Development commands for flake8. Assuming container is running in daemon mode.
$ docker-compose exec web flake8
Thanks goes to these wonderful people (emoji key):
Shawn Recinto 💻 📆 |
Noi Narisak 💻 📆 📖 🚇 |
bhanchand 💻 |
Joël Franusic 📖 💻 |
Anushrav Vatsa 💻 🐛 |
dancinnamon-okta 💻 |
Mike Wallick 💻 |
Andrew Ry 💻 |
dzadikdev 💻 |
Zee Khoo 📖 💻 🐛 |
This project follows the all-contributors specification. Contributions of any kind welcome!