OKTA(IdP) - Shibboleth(SP) с обратным прокси для Tomcat
Я сейчас вращаю большое колесо. пожалуйста, пролите немного света. Обратный прокси работает с Apache. Поэтому, когда я https://hostname/app/default.html, открывается URL-адрес приложения Tomcat. Нет проблем.
В настоящее время приложение tomcat перенаправляет на https://hostname/app/login.html котором есть поле для входа.
1) Нужно ли отключать UserDatabase на Tomcat server.xml?
<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), он зацикливает URL-адрес единого входа OKTA.
В 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.
Затем он перенаправляет на ОКТА 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"/>
Правильно ли указан этот эмитент? Почему это зацикливается и как это исправить?
1 ответ
Вопрос № 1: Пользователи Tomcat нужны только в том случае, если вы собираетесь защищать с помощью приложения, такого как менеджер Tomcat. В противном случае нет.
Re Q # 2: Вы список <SSO entityID="http://www.okta.com/~~~~">
но Destination="https://okta sso/sso/saml"
из SAML. Вы можете проверить http/https. Это очень распространенная причина зацикливания. Устраните любые потенциальные несоответствия http/https.
FWIW Issuer выглядит правильно для меня... это то, что вы указываете в entityID="https://hostname/shibboleth-sp"