This is a starter library for multi-tenant OAuth2 resource servers implemented with Spring. The code in this project is based on the samples from the official Spring Security documentation.
Add the dependency to your pom.xml file:
<dependency>
<groupId>io.quantics</groupId>
<artifactId>multitenant-oauth2-spring-boot-starter</artifactId>
<version>0.4.0</version>
</dependency>
The auto-configuration for a multi-tenant OAuth2 resource server can be activated by adding the property
spring.security.oauth2.resourceserver.multitenant.enabled=true
to your application properties.
All configuration properties start with the prefix
spring.security.oauth2.resourceserver.multitenant.*
Key | Allowed values | Default value |
---|---|---|
enabled |
|
false |
resolve-mode |
|
jwt |
jwt.authorities-converter |
Any class extending AbstractJwtGrantedAuthoritiesConverter |
none |
header.header-name |
Any string | X-TENANT-ID |
Setting the resolve mode to JWT will resolve the tenant by the OAuth2 iss claim found in the JWT.
Alternatively, the tenant can be resolved by a custom HTTP header by setting the resolve mode to header.
Note: Resolving the tenant by an HTTP header is not suggested for production-grade applications, but rather for quick validation that things are working as expected.