msal4j – No se encontró el punto de extremo WsTrust en el documento de metadatos.
Estoy utilizando la biblioteca msal4j (versión 1.9.1) para realizar autenticación, utilizando OUTH2.0 y OpenId con Azure Active Directory, al final necesito adquirir un token.
Se me solicitó realizar esta operación a través de un proxy, así que intenté utilizar el código que encontré en la documentación de msal4j:
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort));
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(
proxyUser,
proxyPassword.toCharArray());
}
});
Set<string> scope = Collections.singleton("User.Read");
SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, TrustAllStrategy.INSTANCE).build();
PublicClientApplication pca = PublicClientApplication.builder(clientId)
.httpClient(new MyHttpClient(proxy, sslContext.getSocketFactory(), 0, 0))
.authority("https://login.microsoftonline.com/organizations").build();
UserNamePasswordParameters parameters = UserNamePasswordParameters
.builder(scope, user, password.toCharArray()).build();
// Aquí obtengo el error
IAuthenticationResult result = pca.acquireToken(parameters).join();
Pero estoy obteniendo este error en el método acquireToken:
java.util.concurrent.ExecutionException:
com.microsoft.aad.msal4j.MsalServiceException: WsTrust endpoint not
found in metadata document at
java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
at
java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1908)
Caused by: com.microsoft.aad.msal4j.MsalServiceException: WsTrust
endpoint not found in metadata document
También intenté utilizar el método “get” en lugar de “join”, pero obtuve el mismo resultado.
davy.ai
El mensaje de error indica que el método
acquireToken
no puede encontrar el endpoint de WsTrust en el documento de metadatos. Esto puede ser causado por una variedad de factores, pero podría estar relacionado con la configuración del proxy.Para solucionar el problema, puede intentar los siguientes pasos:
Revise nuevamente los valores de proxyHost, proxyPort, proxyUser y proxyPassword para asegurarse de que sean correctos.
Verifique si el documento de metadatos es accesible
Intente acceder directamente al documento de metadatos (https://login.microsoftonline.com/organizations/.well-known/openid-configuration) y vea si se carga correctamente. Si no es así, puede haber un problema relacionado con la red.
Pruebe sin un proxy
Elimine temporalmente el código relacionado con el proxy y vuelva a ejecutar el método acquireToken sin un proxy. Si funciona, entonces el problema podría estar relacionado con la configuración del proxy.
Verifique los registros
Habilite el registro de depuración para la biblioteca msal4j y verifique los registros en busca de cualquier mensaje de error o rastreo adicional.
Contacte al soporte de Microsoft
Si ninguno de los pasos anteriores ayuda, puede contactar al soporte de Microsoft para obtener ayuda adicional.
Nota: Tenga en cuenta que esta no es una lista exhaustiva de pasos de solución de problemas y la solución puede variar dependiendo del contexto específico del problema.