¿Cómo configuro Spring Security SAML para que funcione con Okta?
spring-security saml-2.0 (2)
Mate,
Intente configurar la "URL posterior de la publicación" en "localhost: 8080 / saml / SSO / alias / defaultAlias".
Desde el aspecto de su configuración "localhost: 8080 / saml / SSO / alias / defaultAlias" es el punto final SAML en "localhost", que es donde publicamos la Respuesta SAML.
Ahora que es "localhost: 8080 /", es probable que su sitio de demostración simplemente lo redirija a Okta en lugar de analizar la respuesta de SAML.
No has mencionado lo que has hecho en el lado de Okta para probar esto. Aquí están las instrucciones sobre cómo hacerlo - https://support.okta.com/entries/27560008-Using-the-App-Integration-Wizard - utilizando nuestro Asistente de aplicaciones que crea los puntos finales IDL SAML correctos en el lado okta. El sitio de demostración necesita la URL de inicio de sesión de SAML en el lado Okta para que sepa a dónde redirigir las solicitudes SAML.
Para obtener más información sobre SAML, puede consultar nuestra guía de SAML en nuestro sitio para desarrolladores: http://developer.okta.com/docs/getting_started/saml_guidance.html.
Déjame saber como va. Aclamaciones
Stephen
Estoy tratando de hacer que la aplicación spring-boot-security-saml-sample funcione con Okta. Para agregar Okta como proveedor, realicé los siguientes cambios en WebSecurityConfig.java:
https://gist.github.com/mraible/c8b52972f76e6f5e30d5
Encontré la siguiente pregunta que proporciona alguna orientación, pero no puedo hacer que las cosas funcionen.
configurar saml-sample (SP) para trabajar con Okta (IdP)
Esto es lo que estoy usando para los valores en Okta:
Application label: Spring Boot SAML App
Force Authentication: false
Post Back URL: http://localhost:8080/
Name ID Format: EmailAddressRecipient
Recipient: http://localhost:8080/saml/SSO/alias/defaultAlias
Audience Restriction: com:vdenotaris:spring:sp
authnContextClassRef: PasswordProtectedTransport
Response: Signed
Assertion: Signed
Request: Compressed
Destination: http://localhost:8080/saml/SSO/alias/defaultAlias
Default Relay State: (none)
Attribute Statements: email|${user.email},firstName|${user.firstName}
Parece que funciona desde los registros:
[2014-12-30 12:18:33.004] boot - 18748 DEBUG [http-nio-8080-exec-8] --- BaseMessageEncoder: Successfully encoded message.
[2014-12-30 12:18:33.004] boot - 18748 DEBUG [http-nio-8080-exec-8] --- HttpSessionStorage: Storing message a12gf64fh3f35fgh2a8dd1fd0i0dc02 to session C5D010344EF5D022718B12B6D25F1D1E
[2014-12-30 12:18:33.004] boot - 18748 INFO [http-nio-8080-exec-8] --- SAMLDefaultLogger: AuthNRequest;SUCCESS;0:0:0:0:0:0:0:1;com:vdenotaris:spring:sp;http://www.okta.com/k2gpb06TOMYOKAWUSXJM;;;
Sin embargo, me redirige al sitio de Okta en lugar de volver a mi sitio.
¡Yo tengo que trabajar! Parece que la clave está configurando Solicitud en "Sin comprimir". A partir de ahí, eliminé "alias / defaultAlias" ya que esto solo parece funcionar cuando configura un alias en los ExtendedMetadata. Mi configuración que funciona en el lado de Okta:
Application label: Spring Boot SAML App
Force Authentication: false
Post Back URL: http://localhost:8080/saml/SSO
Name ID Format: EmailAddressRecipient
Recipient: http://localhost:8080/saml/SSO
Audience Restriction: com:vdenotaris:spring:sp
authnContextClassRef: PasswordProtectedTransport
Response: Signed
Assertion: Signed
Request: Uncompressed
Destination: http://localhost:8080/saml/SSO
Default Relay State: (none)
Attribute Statements: email|${user.email},firstName|${user.firstName}