2016-08-25 4 views
0

Meine SAML-Anfrage von WSO2 an meine IdP enthält den Port, der sich noch in der AssertionConsumerServiceURL in der AuthnRequest befindet. Ich führe das System hinter einem Reverse Proxy und muss diese URL ändern.AssertionConsumerServiceURL in AuthnRequest in WSO2 ändern IS

Bitte helfen Sie, ich habe es in irgendwelchen configs nicht finden kann, danke

+0

Fügen Sie den Proxy-Port-Wert als 443 hinzu, wie bereits erwähnt [hier] (http://stackoverflow.com/a/39158666/2751640). – pulasthi7

+0

Ich habe das getan, aber aus irgendeinem Grund werde ich jetzt zu localhost umgeleitet, da ich IS benutze, keine Ahnung? könnte es mein Proxy-Setup in Apache sein? Sehr, sehr komisch, ich kann mich bei IS anmelden, aber alles andere verursacht diese Umleitung –

Antwort

0

die Hostnamen zu ändern: Stellen Sie den „MgtHostName“ Wert auf Ihre Hostnamen an repository/conf/carbon.xml

den Port zu ändern: In proxy =“ 443" -Attribut auf das HTTPS-Verbindungselement an den repository/conf/tomcat/catalina-server.xml

+0

Ich hatte das dort und auch aktualisiert ProxyPath innerhalb catalina-server.xml und das hat funktioniert. Danke noch einmal –

0

In Repository/conf/Identität/application-authentication.xml können Sie eine Eigenschaft auf dem SAMLSSOAuthenticator gesetzt:

<AuthenticatorConfig name="SAMLSSOAuthenticator" enabled="true"> 
    <Parameter name="SAMLSSOAssertionConsumerUrl"> 
     https://sso.your-url.com/commonauth 
    </Parameter> 
    <Parameter name="VerifyAssertionValidityPeriod">true</Parameter> 
    <Parameter name="TimestampSkew">300</Parameter> 
</AuthenticatorConfig> 

Dies ist der entsprechende Code in WSO2-IST, dass eine authenticationRequest baut:

String acsUrl = null; 
AuthenticatorConfig authenticatorConfig = 
     FileBasedConfigurationBuilder.getInstance().getAuthenticatorConfigMap() 
       .get(SSOConstants.AUTHENTICATOR_NAME); 
if (authenticatorConfig != null){ 
    String tmpAcsUrl = authenticatorConfig.getParameterMap().get(SSOConstants.ServerConfig.SAML_SSO_ACS_URL); 
    if(StringUtils.isNotBlank(tmpAcsUrl)){ 
     acsUrl = tmpAcsUrl; 
    } 
} 

if(acsUrl == null) { 
    acsUrl = IdentityUtil.getServerURL(FrameworkConstants.COMMONAUTH, true, true); 
} 

Mit anderen Worten überprüft, ob diese Konfiguration vorhanden ist, sonst wird es es & die commonauth Endpunkt Einstellung basierend auf dem Hostnamen zu erstellen.

Verwandte Themen