问:是否可以在没有SSL的情况下部署Shibboleth?

简介:我们需要在测试环境中部署Shibboleth。从Internet看不到此环境,因此我们无法添加一些有效的证书-因此它警告我们我们正在使用自签名证书。我们的应用无法通过此警告,因此我们无法自动测试通过SAML登录是否正常。

我们在设置中使用docker image shibboleth-idp

我认为我们可以更改Jetty的设置并关闭SSL,但是我不确定Shibboleth如何以及是否可以这样做。

最佳答案

问题:“我们可以更改Jetty的设置并关闭SSL,但是我不确定Shibboleth会如何以及是否可以。”

回答:
(1)是的。 Shibboleth是可以的,如果没有SSL,仅用于演示目的。换句话说,在测试环境中,您可以更改Jetty的设置并关闭SSL,然后在8080的HTTP端口而不是8443的HTTPS端口上运行带有Jetty的Shibboleth IdP。

已验证 Shibboleth IdP / Jetty / HTTP端口:8080提供的 SAML身份验证/联盟,而Shibboleth SP没有SSL 。换句话说,Shibboleth IdP运行在Jettp HTTP端口8080(而不是HTTPS端口8443)上,为Shibboleth SP成功提供了SAML身份验证/联合。

备注:
(I)通常在生产环境中部署Shibboleth IdP会利用代理将外部HTTPS端口443重定向到Jetty的内部HTTPS端口8443。

相应地,在测试环境上部署Shibboleth IdP会利用代理将外部HTTPS端口80重定向到Jetty的内部HTTPS端口8080。

(II)在生产环境中部署Shibboleth IdP时,应在具有HTTPS端口的Jetty上运行。

(2)Security And Networking of Shibboleth IdP证明Jetty HTTPS密钥和证书不是Shibboleth IdP所使用的密钥和证书,这表明Shibboleth无需SSL就可以,仅用于演示目的。

Use of browser-facing TLS key and certificate
This key and certificate is not used by Shibboleth directly, and you SHOULD NOT use this key (or certificate) in any of the other capacities described below.

(3)GitHub存储库上的How to build and run Shibboleth SAML IdP and SP using Docker container提供了有关使用Shibboleth SAML IdP和OpenLDAP构建基于SAML的身份验证/授权提供程序的说明。
  • Shibboleth SAML IdP负责身份联合。
  • OpenLDAP负责身份验证。

  • (I)要在8080的HTTP端口上使用Jetty运行Shibboleth IdP,只需在构建IdP和SP Docker镜像之前执行以下命令以修改配置。为了您的方便,此GitHub存储库提供的不带SSL的Shibboleth IdP已通过验证。
    cd shibboleth-idp-dockerized/ext-conf/conf/
    cp idp.properties idp.properties.backup
    cp idp.properties.without.ssl idp.properties
    cd -
    
    cd shibboleth-idp-dockerized/ext-conf/metadata/
    cp idp-metadata.xml idp-metadata.xml.backup
    cp idp-metadata-without-ssl.xml idp-metadata.xml
    cd -
    
    cd shibboleth-sp-testapp/shibboleth-sp/
    # Edit shibboleth2.xml to update IdP entityID and metadata without SSL.
    vi shibboleth2.xml
    
    <SSO entityID="https://idp.example.com/idp/shibboleth">
    -->
    <SSO entityID="http://idp.example.com/idp/shibboleth">
    
    <MetadataProvider type="XML" file="idp-metadata.xml"/>
    -->
    <MetadataProvider type="XML" file="idp-metadata-without-ssl.xml"/>
    

    (II)我已经验证了由运行Docker的Shibboleth SAML IdP(身份提供程序)和OpenLDAP为以下企业应用程序提供的SAML单一登录(SSO)。换句话说,我利用运行Docker的Shibboleth SAML IdP和OpenLDAP成功登录到以下企业应用程序。
    Microsoft Office 365
    Google G Suite
    Salesforce
    Dropbox
    Box
    Amazon AWS
    OpenStack
    Citrix NetScaler
    VMware vCloud Director
    Oracle NetSuite
    

    (III)另一个StackOverflow问题Setting up a new Shibboleth IdP to work with an existing SAML SP讨论了IdP和SP之间的SAML配置。

    关于docker - 没有SSL的Shibboleth,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56442748/

    10-15 21:57