AddIdP

The amount of configuration the SP needs to accept assertions from a new IdP depends on how much special treatment that IdP will require compared to your defaults, and various aspects of the overall architecture, such as how discovery is being handled. The basic case is very simple: add the IdP's metadata to a metadata source referenced by a <MetadataProvider> defined in shibboleth2.xml, and you're done.

If you're using a single IdP, then you need to ensure its entityID is set in the <SSO> element to route requests to it, but in many cases you're adding "another" IdP, so by definition you have to work through the discovery problem and that's a very deployment-specific topic. Properly-federated services need to deploy a true discovery solution such as the Embedded Discovery Service. Non-federated applications often rely on host or path-driven rules for identifying the IdP, in which case you may be able to address this by adding an entityID setting to the <RequestMap> or an Apache command as applicable.

If you do need to treat an IdP specially in one of the following ways, read on.

Use a different SP entityID

This isn't a very good idea and should be avoided at all costs, but if you must...

Add a <RelyingParty> element to the <Application> configuration with a new Name matching the entityID of the IdP. The SP will name itself by a specified entityID attribute when it talks to the IdP with that Name.

This won't work if the legacy WAYF discovery protocol is used, but it will work with a modern DS.

Different cryptography requirements

Add a <RelyingParty> element to the <Application> configuration with a new Name matching the entityID of the IdP. Use a property like keyName="specialKey" to refer to a specific <CredentialResolver> containing a non-default key. You can also change the default encryption and signing settings, or the use of TLS to authenticate to other providers, but this is rarely required.

Special Attribute Rules

To apply special attribute filtering rules for a this IdP, add the rules to attribute-policy.xml. No <RelyingParty> settings are necessary.