Giter Club home page Giter Club logo

idp-installer-caf's People

Contributors

canariecaf avatar cmann avatar kinghuang avatar lordal avatar lordal2 avatar teamktown avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

idp-installer-caf's Issues

Bug: IdP fails to startup due to mysqld connecter version not being found

An error in status.log appears:

Starting mysqld: [ OK ]

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
Buildfile: src/installer/resources/build.xml

and what is happening is that the mysql driver does not get fetched properly.
Please fix

Feature Request: have a way to specifically deal with certificate management post install

Installation problem statement:
Post installation, managing the java keystore is sometimes challenging especially when dealing with multiple domain controllers which have their own certificates.
It may be useful to have the ability to 'load' the JKS with a given servers certificate as well as the removal of one so that the challenge of fetching, loading, and maintaining them are diminished.

This same Interface, if possible, would also be useful to load a commercial certificate for the servlet container.

Support Shibboleth 3.2.0 Installation

A new version of Shibboleth has come out and recommend supporting it as the preferred 3.0.0-CAF build.
One key notable difference is that jetty-base has been changed and is now located for the 3.2.0 release in the embedded directory.
Support in future versions of the Idp will see the jetty-base disappear from the release.

RFE: have ability to detect upcoming end of validity of LDAP TLS certificates and issue warnings

Sometimes LDAP certificates expire and require the javakeystore to refresh in order to preserve secure communication of the IdP to the Directory Store.

The request is to have some form of health monitor for the IdP to check the certificate validity and whether or not it is up and coming for expiration.

This check may be part of other overall IdP Health checks to permit automated operation or enhanced standalone continuous operation.

ubuntu 14.4 install reports iptables error

grep: /etc/sysconfig/iptables: No such file or directory
/idp-installer-CAF/files/script.functions.sh: line 1177: /etc/sysconfig/iptables: No such file or directory
iptables: unre

Script lacks Redhat support

Several functions has only support for ubuntu and centos version 7 and no support for either centos version 6 or redhat.

non interactive installation not 100% non interactive

When choosing the non-interactive installation item in the GUI, the deploy_idp.sh still requires interactivity in the following spots:

  1. The preflight check 'hit enter to continue'
  2. the ok dialog to proceed with eduroam install
  3. the dialog with 'successful eduroam install, now join the domain'

To be fully non-interactive the following needs to happen:
mitigation item:
1 - do not require entire, but fail to proceed if error state happens
2. - dialog to proceed can be skipped
3. - dialog can be skipped, but alert to end user and status.log that the user must join the machine to the domain should be there. Documentation should also be updated for headless/non-interactive/unattended installation.

The root '/' of the idp when viewed in a browser could be better

The experience of visiting the IdP post configuration should be improved from the 404 error page that it shows.
Recommendation is if at all possible to provide a blank default war to present at the root that then the site admin could customize as needed without disrupting the idp installation process.

ldapwhoami fails to connect to Active Directory 2003

the function ldapwhoami which is used in the preflight check for directory reachability fails mysteriously against Active Directory 2003.
This is substantiated with this bugzilla report from RedHat:
https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=916195

The work around is to use ldapsearch:
files/script.bootstrap.functions.sh:

`#${Echo} "ldapwhoami -vvv -H ldaps://${ldapserver} -D "${ldapbinddn}" -x -w """ >> ${statusFile}

ldapwhoami -vvv -H ldaps://${ldapserver} -D "${ldapbinddn}" -x -w "${ldappass}" &>> ${statusFile}

${Echo} "ldapsearch -LLL -x -w "" -H ldaps://${ldapserver} -D "${ldapbinddn}" -b "${ldapbinddn}"" '(objectclass=*)' >> ${statusFile}

ldapsearch -LLL -x -w "${ldappass}" -H ldaps://${ldapserver} -D "${ldapbinddn}" -b "${ldapbinddn}" '(objectclass=*)' &>> ${statusFile} `

resolve potential database access potential pauses with improved SQL connect string

The MySQL connect string needs to be improved to allow for:

  • singular binding to ipv4 127.0.0.1 (remove localhost)
  • reduced timeout settings of 1800 ms and Timeout of 2s
  • tune autoReconnect=true and autoReconnectForPools=true

Resulting string should be
jdbcURL="jdbc:mysql://127.0.0.1:3306/shibboleth?autoReconnect=true&localSocketAddress=127.0.0.1&connectTimeout=1800&initialTimeout=2&logSlowQueries=true&autoReconnectForPools=true"

in attribute-resolver.xml

Update JRE install to download Unlimited Strength Jurisdiction Policy files for proper assertion de/encryption

In the standard JRE distribution, the cryptography is regionally limited but the Service Providers in the metadata may require higher standards of cryptography.
This is called out on the idp install page here:
https://wiki.shibboleth.net/confluence/display/IDP30/Installation

The IdP-installer when it downloads the JRE should also download the extra cryptography settings and install the appropriate jars per instructions from download here:

http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

If you don't do the JCE tweak for Unlimited Strength Jurisdiction Policy File step, the IdP will operate normally until an SP requiring this tweak is used (such as wiki.shibboleth.net) with the following warning/error fingerprint in your logs

2015-06-05 00:00:00,605 WARN [org.opensaml.saml.saml2.profile.impl.EncryptAssertions:140] - Profile Action EncryptAssertions: Error encrypting assertion

org.opensaml.xmlsec.encryption.support.EncryptionException: Error encrypting XMLObject

at org.opensaml.xmlsec.encryption.support.Encrypter.encryptElement(Encrypter.java:543)

Caused by: org.apache.xml.security.encryption.XMLEncryptionException: Illegal key size

at org.apache.xml.security.encryption.XMLCipher.encryptData(XMLCipher.java:1186)

Caused by: java.security.InvalidKeyException: Illegal key size

at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1034)

2015-06-05 00:00:00,689 - ERROR [org.opensaml.profile.action.impl.DecodeMessage:73] - Profile Action DecodeMessage: Unable to decode incoming request

Reference material on this problem: http://shibboleth.net/pipermail/users/2014-June/016098.html

v3 ldap.properties should default to startTLS to false

The default behaviour for ldap.properties should have LDAPS with startTLS set the following:

Connection properties

idp.authn.LDAP.ldapURL= ldaps://AD-FQDN
idp.authn.LDAP.useStartTLS= false
idp.authn.LDAP.useSSL= true

current configuration has useStartTLS=true which fails to negotiate

Investigate operational monitoring of idp/profile/status page by Federation operator

Investigate if there is a way to have a default way to monitor the installation for version and health status.

Right now it is limited to localhost connections. The enhancement would be to:

  • add a IdP admin consent option for
    'enable CAF to remotely observe the IdP application health? Yes/no

(Note that the Federation Operator needs to take into consideration that different software platforms (ADFS, simpleSAMLPHP Ping Federate, etc) do not have this function.

F-TICKS logging as set up by IdP-Installer results in double anonymized ID

Now that Shibboleth 3.2.0 supports F-TICKS, the 'overlay' done by the IdP-installer results in double logging the anonymized identifier when it should be a singular entry.

Remediation is expected to be -- augment the overlay to be aware of Shib v3.2.0 implementation of F-TICKS and provide a relevant version of the template and re-verify the logging experience.

It would be great to have a form of headless or non interactive installation

If there was a way to do the installation only consuming the config file looking for the variable:

installer_interactive=y

for interactive to use whiptail interfaces as expected
and if
installer_interactive=n

this would have this behaviour:

  1. suppress main menu and just proceed with installs of 'all selected features' as specificied in 'installer_section0_buildComponentList' variable in the config file
  2. suppress password asks for FedSSO Mysql, the keystore for shibboleth, and the https jks keystore
  3. A form of communication in the log about the passwords that were chosen should be logged.

Assumptions for successful headless install

  • Preflight check MUST pass and bail only on ERROR
  • all variables are provided are accurate and ok. (the key here is that if there's error validation on values, it should happen in the GUI first.

Ensure Jetty does not want Client Certificates for SSL

Jetty installations MAY encounter a browser dialog asking the end user for a client certificate when it shouldn't anytime a TLS connection is established with the server, such as logging in or processing a SAML redirection.

The origin of the issue has been identified as a setting not being properly observed in all installations.
The 'fix' is to ensure there is a setting to avoid that in case something tries to override it.

The scope of the bug is not fully known as it was reported on an older version of the software (IdP-Installer 2.2.x on CentOS6.5). Performing this alteration will help ensure the problem does not re-occur

Details on how to check and reproduce and mitigate were provided by Alvin Yeung from Ryerson.ca:

This jar: jetty9-dta-ssl-1.0.0.jar may set the getWantClientAuth() method to true.
To mitigate this, update the jetty.xml.caf template to force it to false

Quick example of how this may reveal itself:
compile this and use the full classpath that jetty9 and shibboleth use:

import net.shibboleth.utilities.jetty9.DelegateToApplicationSslContextFactory;
public class JettyDTASSLTest {
    public static void main(String[] args) {
        DelegateToApplicationSslContextFactory factory = new DelegateToApplicationSslContextFactory();
        System.out.println("getNeedClientAuth=" + factory.getNeedClientAuth());
        System.out.println("getWantClientAuth=" + factory.getWantClientAuth());
    }
}

Result

getNeedClientAuth:false
getWantClientAuth:true

So this class actually override jetty's default for WantClientAuth. "false" was the default.

On my jetty I have to change "wantClientAuth" back to false for the shibContextFactory2 section.
/opt/jetty/base/etc/jetty-shibboleth.xml

<New id="shibContextFactory2" class="net.shibboleth.utilities.jetty9.DelegateToApplicationSslContextFactory">
    <Set name="KeyStoreType">pkcs12</Set>
    <Set name="KeyStorePath">/opt/shibboleth-idp/credentials/https.p12</Set>
    <Set name="KeyStorePassword">...</Set>
    <Set name="wantClientAuth">false</Set>
    <Set name="EndpointIdentificationAlgorithm"></Set>
    <Set name="excludeProtocols">
      <Array type="String">
         <Item>SSLv3</Item>
      </Array>
    </Set>
  </New>

this part of the code came from the installer:
idp-installer-CAF-2.2.1-CAF/xml/CAF/server.xml.jetty Line 21-31

Error on config import

When importing an existing config servlet container can be changed.
appserv='blargh' in config import will cause an failure.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.