es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Se produjo un error al emitir el token de acceso Wso2.

Estamos trabajando en Azure SSO con SAML, después de la respuesta de SAML configuramos nuestra autenticación entrante como OAuth. Después de recibir la respuesta de SAML al obtener el token de OAuth, obtenemos el siguiente error:

“Se produjo un error al emitir el token de acceso para el ID de cliente: , ID de usuario nulo, alcance: [] y tipo de concesión: authorization_code.”

java.lang.NullPointerException

ERROR – La validación de la restricción de audiencia de la afirmación de SAML ha fallado {org.wso2.carbon.identity.application.authentication.framework.handler.step.impl.DefaultStepHandler}
org.wso2.carbon.identity.application.authentication.framework.exception.AuthenticationFailedException: La validación de la restricción de audiencia de la afirmación de SAML ha fallado
en org.wso2.carbon.identity.application.authenticator.samlsso.SAMLSSOAuthenticator.processAuthenticationResponse(SAMLSSOAuthenticator.java:202)
en org.wso2.carbon.identity.application.authentication.framework.AbstractApplicationAuthenticator.process(AbstractApplicationAuthenticator.java:66)
en org.wso2.carbon.identity.application.authentication.framework.handler.step.impl.DefaultStepHandler.doAuthentication(DefaultStepHandler.java:432)
en org.wso2.carbon.identity.application.authentication.framework.handler.step.impl.DefaultStepHandler.handle(DefaultStepHandler.java:206)
en org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl.DefaultStepBasedSequenceHandler.handle(DefaultStepBasedSequenceHandler.java:171)
en org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultAuthenticationRequestHandler.handle(DefaultAuthenticationRequestHandler.java:115)
en org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator.handle(DefaultRequestCoordinator.java:135)
en org.wso2.carbon.identity.application.authentication.framework.servlet.CommonAuthenticationServlet.doPost(CommonAuthenticationServlet.java:53)
en javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
en javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
en org.eclipse.equinox.http.helper.ContextPathServletAdaptor.service(ContextPathServletAdaptor.java:37)
en org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
en org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
en org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
en javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
en org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68)
en org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
en org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
en org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
en org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
en org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
en org.wso2.carbon.ui.filters.CSRFPreventionFilter.doFilter(CSRFPreventionFilter.java:88)
en org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
en org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
en org.wso2.carbon.ui.filters.CRLFPreventionFilter.doFilter(CRLFPreventionFilter.java:59)
en org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
en org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
en org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61)
en org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
en org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
en org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
en org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
en org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
en org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
en org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
en org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99)
en org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47)
en org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57)
en org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)
en org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62)
en org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159)
en org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
en org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57)
en org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
en org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
en org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
en org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
en org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1739)
en org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1698)
en java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
en java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
en org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
en java.lang.Thread.run(Thread.java:748)
Causado por: org.wso2.carbon.identity.application.authenticator.samlsso.exception.SAMLSSOException: La validación de la restricción de audiencia de la afirmación de SAML ha fallado
en org.wso2.carbon.identity.application.authenticator.samlsso.manager.DefaultSAML2SSOManager.validateAudienceRestriction(DefaultSAML2SSOManager.java:826)
en org.wso2.carbon.identity.application.authenticator.samlsso.manager.DefaultSAML2SSOManager.processSSOResponse(DefaultSAML2SSOManager.java:471)
en org.wso2.carbon.identity.application.authenticator.samlsso.manager.DefaultSAML2SSOManager.processResponse(DefaultSAML2SSOManager.java:312)
en org.wso2.carbon.identity.application.authenticator.samlsso.SAMLSSOAuthenticator.processAuthenticationResponse(SAMLSSOAuthenticator.java:157)

Versión WSO2 IS: WSO2 5.1.0

Tags:  ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que la validación de restricciones de audiencia de la declaración SAML falló. Esto significa que el token OAuth solicitado tiene una restricción de audiencia incorrecta. La restricción de audiencia en el token OAuth debe coincidir con el ID de entidad SP en la solicitud SAML.

    Para resolver este problema, es necesario asegurarse de que la restricción de audiencia en el token OAuth coincida con el ID de entidad SP en la solicitud SAML. También se puede verificar que los metadatos del SP tienen la restricción de audiencia correcta.

    Para verificar los metadatos del SP, inicie sesión en WSO2 IS Console de gestión y vaya al menú de proveedores de servicios. Busque el SP en cuestión y haga clic en él para ver los detalles. Compruebe que la restricción de audiencia y el ID de entidad son correctos.

    Alternativamente, también se puede habilitar la validación de restricciones de audiencia de SAML2 en la configuración de WSO2 IS agregando la siguiente configuración al archivo identity.xml:

    <saml2.response.audiencerestriction.validation>true</saml2.response.audiencerestriction.validation>
    

    Esto permitirá hacer cumplir la validación de restricciones de audiencia para las respuestas SAML entrantes.

Comments are closed.