typescript - La autenticación MSAL no funciona en Angular 17.0.5
Estoy implementando la autenticación MSAL en Angular 17.0.5 y no puedo autenticarme usando credenciales de AD y está dando un error 401 No autorizado. El mismo código estaba funcionando en Angular 11.2.12.
Estas son las dependencias de la aplicación
Node: 18.16.0
Package Manager: npm 9.5.1
"@angular/animations": "^17.0.0",
"@angular/cdk": "^17.0.2",
"@angular/common": "^17.0.0",
"@angular/compiler": "^17.0.0",
"@angular/core": "^17.0.0",
"@angular/forms": "^17.0.0",
"@angular/material": "^17.0.2",
"@angular/platform-browser": "^17.0.0",
"@angular/platform-browser-dynamic": "^17.0.0",
"@angular/router": "^17.0.0",
"@azure/msal-browser": "^3.0.0-alpha.2",
"minimatch": "^9.0.3",
"rxjs": "~7.8.0",
"tslib": "^2.3.0",
"zone.js": "~0.14.2"
- He intentado cambiar la versión de msal de ^3.6.0 a ^3.0.0-alpha.2.
- Se agregó
system: { allowNativeBroker: false }.
dentro de PublicClientApplication en MSALInstanceFactory.
Respuesta #1
Puedo usar MSAL con Angular 17. Vea a continuación las versiones de Angular y MSAL junto con otros paquetes en package.json
"@angular/animations": "^17.0.5",
"@angular/cdk": "^17.0.1",
"@angular/common": "^17.0.5",
"@angular/compiler": "^17.0.5",
"@angular/core": "^17.0.5",
"@angular/flex-layout": "^14.0.0-beta.41",
"@angular/forms": "^17.0.5",
"@angular/localize": "^17.0.5",
"@angular/material": "^17.0.1",
"@angular/platform-browser": "^17.0.5",
"@angular/platform-browser-dynamic": "^17.0.5",
"@angular/router": "^17.0.5",
"@azure/msal-angular": "^3.0.11",
"@azure/msal-browser": "^3.7.1",
"@ng-bootstrap/ng-bootstrap": "^16.0.0",
"bootstrap": "^5.3.2",
"crypto-js": "^4.2.0",
"exceljs": "^4.4.0",
"file-saver": "^2.0.5",
"hammerjs": "^2.0.8",
"rxjs": "~7.8.1",
"tslib": "^2.6.2",
"zone.js": "~0.14.2"
También asegúrate de inicializar usando la siguiente línea en el cuerpo del constructor de tu servicio donde uses MSAL
this.msalService.initialize();
Respuesta #2
"@azure/msal-browser" aún no es compatible con Angular 17. Para usar las bibliotecas de @azure necesitas degradar Angular a la versión 16.
https://github.com/AzureAD/microsoft-authentication-library-for-js/issues/6719
