我现在正在旋转一个大轮子。请说明一下。 反向代理正在使用Apache。因此,当我访问https://hostname/app/default.html时,它将打开Tomcat应用程序的URL。没问题。
tomcat应用程序当前重定向到具有登录框的https://hostname/app/login.html。
1)我需要在Tomcat server.xml上禁用UserDatabase吗?
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
2)此Shibboleth配置正确吗? 但是,当我尝试使用OKTA- Shibboleth(3.0)配置它时,它将循环OKTA SSO url。
在shibboleth2.xml中
<ApplicationDefaults id="default"
entityID="https://hostname/shibboleth-sp"
REMOTE_USER="userid" >
<SSO entityID="http://www.okta.com/~~~~">
OKTA的元数据已下载并位于shibboleth2.xml文件中。 证书也将生成并放置在同一文件夹中。
3)此OKTA配置正确吗? 在OKTA小部件配置菜单中,
- Single sign on url :https://hostname/Shibboleth.sso/SAML2/POST
- recipient url : https://hostname/Shibboleth.sso/SAML2/POST
- destination url :https://hostname/Shibboleth.sso/SAML2/POST
- audience restriction :https://hostname/shibboleth-sp <-- above SP entityID
- default relay state : ??
现在,当我单击OKTA上的小部件时,它正在循环播放。
https://hostname/Shibboleth.sso/SAML2/POST
包含SAML响应。
然后,它将重定向到OKTA SSO URL。它永远不会结束。
https:// xxx.oktapreview.com/app/xx_reverse_proxy_/xxxx/sso/saml?SAMLRequest=~~~&RelayState=~~~
这包含SAML请求,但看起来像这样。
<samlp:AuthnRequest
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
AssertionConsumerServiceURL="https://hostname/Shibboleth.sso/SAML2/POST"
Destination="https://okta sso/sso/saml"
ID="xx"
IssueInstant="2018-11-02T15:39:24Z"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Version="2.0">
<saml:Issuer
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">https://hostname/shibboleth-sp
</saml:Issuer>
<samlp:NameIDPolicy
AllowCreate="1"/>
此发行者网址正确吗?为什么会循环以及如何解决?
答案 0 :(得分:1)
问题Q#1:仅当您要使用Tomcat管理器来保护应用程序时,才需要Tomcat用户。否则,不会。
问题Q2:您在SAML中列出了<SSO entityID="http://www.okta.com/~~~~">
但Destination="https://okta sso/sso/saml"
。您可能要检查http / https。这是循环的非常常见的原因。消除任何潜在的http / https不一致。
FWIW颁发机构对我来说似乎正确...这就是您在entityID="https://hostname/shibboleth-sp"
中指定的