【发布时间】:2015-09-27 06:41:15
【问题描述】:
我正在使用带有 Apache 2.2 + Tomcat 7.0 + OKTA(IdP) 的 spring saml 扩展。 securityContext.xml 如下所示:
元数据生成器过滤器:
<bean id="metadataGeneratorFilter" class="org.springframework.security.saml.metadata.MetadataGeneratorFilter">
<constructor-arg>
<bean class="org.springframework.security.saml.metadata.MetadataGenerator">
<property name="entityBaseURL" value="https://myapp.com/api"/>
</bean>
</constructor-arg>
</bean>
上下文提供者:
<bean id="contextProvider" class="org.springframework.security.saml.context.SAMLContextProviderLB">
<property name="scheme" value="https"/>
<property name="serverName" value="myapp.com"/>
<property name="serverPort" value="443"/>
<property name="includeServerPortInRequestURL" value="false"/>
<property name="contextPath" value="/api"/>
<property name="storageFactory">
<bean class="org.springframework.security.saml.storage.EmptyStorageFactory"/>
</property>
</bean>
我使用以下 URL 触发 SP 发起的登录。
https://myapp.com/api/welcome.html
身份验证完成后,浏览器会被重定向到 HTTP 而不是 HTTPS。
http://myapp.com/api/welcome.html
我不知道为什么请求会被重定向到 HTTP。请帮忙。
谢谢
奈良
HTTP 请求转储:
https://docs.google.com/document/d/1mYh-EhDjxMixzZ8krhOg_2fjpTaTu7fuST_nIXAMeVY/edit?usp=sharing
在 OKTA 中,使用以下元数据创建了一个 SAML 2.0 应用:
单点登录 URL => https://myapp.com/api/saml/SSO 收件人 URL => https://myapp.com/api/saml/SSO 目标网址 => https://myapp.com/api/saml/SSO 观众限制 => https://myapp.com/api/saml/metadata 默认中继状态 => https://myapp.com/dashboard.html 名称 ID 格式 => 未指定 响应 => 签名 断言签名 => 签名 签名算法 => RSA_SHA256 摘要算法 => SHA256 断言加密 => 未加密 SAML 单次注销 => 已禁用 authnContextClassRef => PasswordProtectedTransport 请求压缩 => 未压缩 荣誉部队认证 => 是 SAML 发行者 ID => http://www.okta.com/${org.externalKey}弹簧配置:
https://docs.google.com/document/d/16iDLcBuwvQ23-mKMFybPfxdIyvqCBi5sbYePgUjl0p4/edit?usp=sharing【问题讨论】:
-
请转储 IDP 和 SP 之间的 HTTP 请求以及您导入 IDP 的元数据并将其添加到问题中。
-
弗拉基米尔:感谢您的休息。请根据要求在上方找到附加数据。
-
Okta 正在响应正确的地址“myapp.com/api/saml/SSO”,因此问题出在 Spring 配置中。您能否发布完整的 Spring 配置?
-
谢谢弗拉基米尔。请找到 spring 配置的链接。
标签: spring-saml