Мы используем сервис MSAL с приложением Angular, которое мы создали для использования нашей учетной записи AD B2C и аутентификации.
Проблема, с которой мы сталкиваемся, состоит в том, что приложение Angular имеет много маршрутов, некоторые из них параметризованы и могут иметь n возможностей.
Мы настроили Сервис MSAL в нашем Angular как:
B2CAccessTokenKey = 'b2c.access.token';
tenantConfig = {
tenant: 'deepdivebioportal.onmicrosoft.com',
clientID: 'xxxxxx-xxxx-xxxx-xxxx-xxxxx',
signInPolicy: 'B2C_1_signin',
signUpPolicy: 'B2C_1_signup',
redirectUri: 'https://xxx.yyyy.net',
b2cScopes: ['https://zzzzz.onmicrosoft.com/api/Hello.Read']
};
// Configure the authority for Azure AD B2C
authority = 'https://login.microsoftonline.com/tfp/' + this.tenantConfig.tenant + '/' + this.tenantConfig.signInPolicy;
/*
* B2C SignIn SignUp Policy Configuration
*/
clientApplication = new Msal.UserAgentApplication(
this.tenantConfig.clientID, this.authority,
function (errorDesc: any, token: any, error: any, tokenType: any) {
}
);
Мы используем Aquire Token Silently для обновления токена при обновлении:
this.clientApplication.acquireTokenSilent(this.tenantConfig.b2cScopes);
Мы добавили все наши высокоуровневые маршруты в URI перенаправления установки приложения в Azure, и если пользователь случайно оказался на маршруте, которого явно нет в списке, мы получаем ошибку и не можем обновить токен.
Я нашел много других вопросов, задающих аналогичные вопросы, и похоже, что решение заключается в использовании подстановочных знаков в URI перенаправления. Однако это больше не поддерживается.
Есть ли решение для этого для обработки n количества маршрутов перенаправления?
Конкретная ошибка, которую я получаю:
main.b13cb77fd1caaf3b9027.js:1 ERROR Error: Uncaught (in promise): AADB2C90006: The redirect URI 'https://xxxxxx.yyyyyyy.zzz/ttttttt/show/23' provided in the request is not registered for the client id 'd86e217f-7a14-4cfc-b6ae-4f46a2eff943'.