Skip to content
Menu
DevSecOps Now!!!
  • About
  • Certifications
  • Contact
  • Courses
  • DevSecOps Consulting
  • DevSecOps Tools
  • Training
  • Tutorials
DevSecOps Now!!!

Authentication + Org Selection in Wizbrand using keycloak

Posted on September 20, 2025

Limited Time Offer!

For Less Than the Cost of a Starbucks Coffee, Access All DevOpsSchool Videos on YouTube Unlimitedly.
Master DevOps, SRE, DevSecOps Skills!

Enroll Now

Authentication + Org Selection — the happy path

1. GET / (User → wizbrand-web)
No local session? The app kicks off OIDC.

2. Redirect to Auth (wizbrand-web → Keycloak)
Auth Code + PKCE: protects against token interception and CSRF.

3. Callback → tokens (Keycloak → wizbrand-web)
Your backend exchanges the code for tokens containing all org memberships.
At this point you know all the orgs and roles of the user.

4. If multi-org → prompt selection (wizbrand-web → Org Switcher UI)
If the user belongs to more than one org, show the Org Switcher. If just one, you can auto-select it.

5. Token exchange / refresh to set preferred_org (Org Switcher → Keycloak)
Once the user picks an org:

  • Option A: Token Exchange (or a silent refresh) so Keycloak sets a user session note and issues a new Access Token carrying preferred_org.
  • Option B: Keep the full list in the token but put the active org in preferred_org to keep downstream checks simple.

6. Reduced token returns (Keycloak → wizbrand-web)
Now your Access Token contains preferred_org and (optionally) only the roles relevant to that org. This keeps the token small and unambiguous.

7. API calls (wizbrand-web → wizbrand-api)
Every request includes the Bearer token. Your API middleware does:

  • Pick current org (route param / header / subdomain)
  • Verify token signature, aud, exp
  • Check membership in that org + role → action matrix:
    • ORG_ADMIN: Create/Read/Update/Delete
    • ORG_MANAGER: Read/Update
    • ORG_USER: Read

8. Logout (User → wizbrand-web) (dashed in diagram)
App calls frontchannel and backchannel logout at Keycloak, clearing both the application session and the SSO session, so sidecar apps are logged out too.

Provisioning Flow — create org & invite members

1. Create group (Admin/Backend → Keycloak Admin API)
Create /orgs/{org_slug} with attributes like:

  • org_id (internal GUID)
  • org_slug (DNS-safe name)
  • plan, features[] (used for entitlements)

2. Create/find user (Admin/Backend → Keycloak Admin API)
Lookup by email. If not found, create the user (optionally mark emailVerified=false until they verify).

3. Add membership + role mapping (Admin/Backend → Keycloak Admin API)
Add the user to the org Group and attach the appropriate realm role mapping at the group level:

  • ORG_ADMIN or ORG_MANAGER or ORG_USER
    Because it’s group-scoped, the same person can be Admin in Org A and User in Org B.

4. Email invite link (Admin/Backend → email)
Send a magic/activation link to your app, not to Keycloak admin. On first login the membership is already in place.

5. Persist audit (Admin/Backend → DB)
Record who invited whom, role assigned, and timestamps. This is critical for traceability and support.

(Role changes and removals use the same API calls: update group role mapping, or remove user from the group.)

How authorization is enforced per request (the “gate”)

  • In Laravel API: route middleware extracts current org (subdomain/path/header) and checks the JWT claims for:
    • preferred_org == current_org (or membership contains current org)
    • role meets the action (CRUD matrix)
  • At gateways for sidecar apps (oauth2-proxy/Envoy):
    • Derive org from host ({org}.seo.wizbrand.com) or path (/org/{slug}/…)
    • Validate the token → membership contains that org → required role for the requested method/path
    • If allowed, pass through with headers (X-User-Id, X-Email, X-Org-Slug, X-Org-Roles)
    • Else, 401 (unauthenticated) or 403 (authenticated but not permitted)

Token contents you should expect

Example Access Token fields your code will read:

{
  "aud": ["wizbrand-web", "wizbrand-api"],
  "sub": "uuid-of-user",
  "email": "user@example.com",
  "org_memberships": [
    {"org_id":"8f2e3a","org_slug":"acme","roles":["ORG_ADMIN"],"features":["seo","dam"]},
    {"org_id":"91b6df","org_slug":"globex","roles":["ORG_MANAGER"]}
  ],
  "preferred_org": "acme",
  "tenant_ids": ["8f2e3a","91b6df"],
  "exp": 1737440000
}

Post Views: 607
  • Authentication
  • Authentication + Org Selection in Wizbrand using keycloak
  • Keycloak
  • Org Selection
  • Org Selection in Wizbrand using keycloak
  • using keycloak
  • Wizbrand using keycloak
Subscribe
Login
Notify of
guest
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
  • Ultimate DevSecOps Learning Roadmap to Move from DevOps to Cloud Security
  • Complete Tutorial: Fixing Keycloak UDP Socket Exhaustion, DNS Failure, GitHub Resolution Error, and Laravel Guzzle ConnectException on a Single Server
  • Comprehensive Guide to DevSecOps in Modern Software Engineering
  • DevSecOps in Modern Software Engineering: A Comprehensive Guide for Professionals
  • Laravel Posts Installation Guide
  • Strategies to Align DevSecOps With Agile and DevOps Practices
  • How to Fix Laravel Migration Error: Field ‘id’ Doesn’t Have a Default Value in the Migrations Table
  • A Practical Guide to Proving DevSecOps Business Value for Engineering Leaders
  • Mastering Secure Software Delivery by Solving DevSecOps Adoption Challenges
  • Operationalizing Security for Faster and Safer Software Deployments
  • DevSecOps Server Security Checklist 2026: 50 Must-Check Points Before Going Live
  • The Complete DevOps Salary Overview for IT Professionals
  • The Modern DevOps Certification Guide: Roadmaps for Every Engineering Role
  • Security Champions in DevSecOps: Responsibilities and Best Practices
  • The DevSecOps Handbook for Shift-Left Security
  • Top DevSecOps Principles for Effective Secure Software Delivery
  • Guide to DevSecOps Maturity Levels for Platform and Security Teams
  • Canada PR CRS Calculator: Express Entry Points System Explained
  • Austria PR Points Calculator: Ultimate Guide to Navigating the Red-White-Red Card System
  • The Essential Guide to Enterprise DevSecOps Implementation
  • How to Set Up Claude Code Agent on a Local Windows Laptop and Use claude Command from Anywhere
  • DevOps and DevSecOps Explained: Bridging the Gap Between Speed and Security
  • Comprehensive Manual on DevOps Methodologies and Cloud Native Engineering
  • The Master Guide to Immigration Points: Calculating Your Path to Canada, Australia, and Beyond
  • How to Skip the Activation Email and Password Reset After Google Login in Keycloak Auto-Link Existing Users in First Broker Login
  • Free SSL Certificate Generation Tutorial for Any Website Using Certbot and Apache
  • The Ultimate Guide to Certified FinOps Professional: Skills, Levels, and Career Impact
  • Certified FinOps Manager: Essential Skills for Modern Cloud Operations
  • How to Use Claude AI for Programming: Complete Guide for Developers to Boost Productivity
  • The Definitive Guide to Certified FinOps Engineer: Master Cloud Value Engineering

Recent Comments

  1. emmy day on SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘provider’ in ‘field list’
  2. digital banking on Complete Tutorial: Setting Up Laravel Telescope Correctly (Windows + XAMPP + Custom Domain)
  3. SAHIL DHINGRA on How to Uninstall Xampp from your machine when it is not visible in Control panel programs & Feature ?
  4. Abhishek on MySQL: List of Comprehensive List of approach to secure MySQL servers.
  5. Kristina on Best practices to followed in .httacess to avoid DDOS attack?

Archives

  • June 2026
  • May 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • May 2023
  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022

Categories

  • Ai
  • AI Blogging
  • AiOps
  • ajax
  • Android Studio
  • Antimalware
  • Antivirus
  • Apache
  • Api
  • API Security
  • Api Testing
  • APK
  • Aws
  • Bike Rental Services
  • ChatGPT
  • Code Linting
  • Composer
  • cPanel
  • Cyber Threat Intelligence
  • Cybersecurity
  • Data Loss Prevention
  • Database
  • dataops
  • Deception Technology
  • DeepSeek
  • Devops
  • DevSecOps
  • DevTools
  • Digital Asset Management
  • Digital Certificates
  • Docker
  • Drupal
  • emulator
  • Encryption Tools
  • Endpoint Security Tools
  • Error
  • facebook
  • Firewalls
  • Flutter
  • git
  • GITHUB
  • Google Antigravity
  • Google play console
  • Google reCAPTCHA
  • Gradle
  • Guest posting
  • health and fitness
  • IDE
  • Identity and Access Management
  • Incident Response
  • Instagram
  • Intrusion Detection and Prevention Systems
  • jobs
  • Joomla
  • Keycloak
  • Laravel
  • Law News
  • Lawyer Discussion
  • Legal Advice
  • Linkedin
  • Linkedin Api
  • Linux
  • Livewire
  • Mautic
  • Medical Tourism
  • MlOps
  • MobaXterm
  • Mobile Device Management
  • Multi-Factor Authentication
  • MySql
  • Network Traffic Analysis tools
  • Paytm
  • Penetration Testing
  • php
  • PHPMyAdmin
  • Pinterest Api
  • postify
  • Quora
  • SAST
  • SecOps
  • Secure File Transfer Protocol
  • Security Analytics Tools
  • Security Auditing Tools
  • Security Information and Event Management
  • Seo
  • Server Management Tools
  • Single Sign-On
  • Site Reliability Engineering
  • soft 404
  • software
  • SSL
  • SuiteCRM
  • SysOps
  • Threat Model
  • Twitter
  • Twitter Api
  • ubuntu
  • Uncategorized
  • Virtual Host
  • Virtual Private Networks
  • VPNs
  • Vulnerability Assessment Tools
  • Web Application Firewalls
  • Windows Processor
  • Wordpress
  • WSL (Windows Subsystem for Linux)
  • X.com
  • Xampp
  • Youtube
©2026 DevSecOps Now!!! | WordPress Theme: EcoCoded
wpDiscuz