Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.
If you're creating a bug/problem report, please include followings:
- ABP Framework version: v7.2.2
- UI type: Angular
- DB provider: EF Core
- Tiered (MVC) or Identity Server Separated (Angular): yes
We're using ABP DomainTenantResolver to differentiate tenants from url, BUT we're not happy with the "dedicated subdomain for tenant" constraint. Our desired pattern for tenant resolution is: For API "{0}api.mydomain.com" For Angular: "{0}web.mydomain.com" The reason for that is commercial (we have a wildcard SSL certificate for *.mydomain.com and we need to open a lot of tenants using the same certificate).
ServerSide this pattern seems to be working: just adding
options.AddDomainTenantResolver("{0}api.mydomain.com");
and setting https://{0}web.mydomain.com
in DB IdentityServerClientRedirectUris table
the resolver resolves NULL for "api.mydomain.com" and "hello" for "helloapi.mydomain.com"
ClientSide also works when using a tenant:
browsing "helloweb.mydomain.com" the angular app shows up and calls correct APIs
https://helloapi.mydomain.com/api/abp/multi-tenancy/tenants/by-name/hello
https://helloapi.mydomain.com/.well-known/openid-configuration
https://helloapi.mydomain.com/api/abp/application-configuration
BUT when using no tenant browsing "web.mydomain.com" the angular app calls bad URIs:
https://%7B0%7Dapi.mydomain.com/.well-known/openid-configuration
https://%7B0%7Dapi.mydomain.com/api/abp/application-configuration
The file environment.ts is:
import { Environment } from '@abp/ng.core';
const baseUrl = 'https://{0}app.mydomain.com';
export const environment = {
production: false,
application: {
baseUrl,
name: 'BookStore',
logoUrl: '',
},
oAuthConfig: {
issuer: 'https://{0}api.mydomain.com',
redirectUri: baseUrl,
clientId: 'BookStore_App',
skipIssuerCheck: true,
responseType: 'code',
scope: 'offline_access openid profile role email phone BookStore',
},
apis: {
default: {
url: 'https://{0}api.mydomain.com',
rootNamespace: 'BookStore',
},
},
} as Environment;
How can we fix this behavior? Thank you
1 Answer(s)
-
0
Hi,
We have an example may can help you: https://github.com/abpframework/abp-samples/tree/master/DomainTenantResolver/OpenIddict/NG