I’m currently facing a challenge with customizing the login screens for a multi-tenant application hosted in Azure. The client wants each tenant to have a separate, recognizable login screen, but the app is hosted in a way that makes this more complex.
Current setup:
The application is hosted on Azure in a single App Service. All these applications share a single IAM instance for authentication mapped to a different alias and tenant. This IAM instance controls global settings, including logos and themes, which are applied to all tenants.
Right now, the logos are combined into a single .PNG file in IAM's global settings. We’ve also made customizations to the styles.css (e.g., button styles) within Indicium, but these customizations have to be manually backed up and re-applied every time we upgrade the Indicium instance.
The problem:
The client wants each tenant’s login screen to be customizable—particularly the logo and styling—so they’re distinct from one another. However, the way the current architecture is set up (one App Service, one IAM instance) seems to complicate this
- Option 1:
One possible solution is to use a single App Service with multiple subdomains (e.g., tenant1.app.nl, tenant2.app.nl) routed through an Application Gateway. This gives me an identifier in the domain, which could be used for customization, but I’m struggling to figure out how to tie that identifier to specific customizations. For example, can I use the subdomain or alias to inject tenant-specific changes into the custom.css file? Or would I need some additional configurations to make that work? - Option 2:
Another option would be to create separate App Services for each tenant, which would allow more flexibility in customization. However, this would be cumbersome in terms of maintenance, especially when upgrading the universal GUI or Indicium across multiple environments (e.g., Test, Prod). It’s also not the most cost-effective solution since multiple App Services can add up quickly (to put it lightly).
What am I missing?
Am I overlooking a simpler solution? Could I stick with Option 1 and somehow leverage the subdomains in custom.css or another way to make tenant-specific changes without breaking the current architecture? Or do I need to go down the separate App Service route and even separate IAM instances despite the extra maintenance and cost?
I know this might be a bit convoluted, but I wanted to share my thoughts and hopefully get some guidance. If more information is needed, feel free to ask—I’m happy to provide more context even if it's via Teams!