First 1.2 edition represents a complete rewrite and restructuring of all configuratio...
authorndk <ndk@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Thu, 18 Mar 2004 18:03:43 +0000 (18:03 +0000)
committerndk <ndk@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Thu, 18 Mar 2004 18:03:43 +0000 (18:03 +0000)
git-svn-id: https://subversion.switch.ch/svn/shibboleth/java-idp/trunk@925 ab3bd59b-922f-494d-bb5f-6f0a3c29deca

doc/DEPLOY-GUIDE-ORIGIN.html

index fbb966c..d28b72f 100644 (file)
@@ -25,6 +25,27 @@ a:active
 {
 color: #440000;
 }
+a.fixedlink:visited
+{
+font-family: monospace;
+font-size: 90%;
+color: #121212;
+text-decoration: none;
+}
+a.fixedlink:link
+{
+font-family: monospace;
+font-size: 90%;
+color: #121212;
+text-decoration: none;
+}
+a.fixedlink:active
+{
+font-family: monospace;
+font-size: 90%;
+color: #121212;
+text-decoration: none;
+}
 dl
 {
 border-width:2px; background-color: #DDDDDD;
@@ -32,7 +53,6 @@ background-image: url('none');
 margin: 5px;
 padding: 0px;
 border-style: solid;
-
 }
 dt
 {
@@ -74,32 +94,12 @@ border-top-width: none;
 border-left-width: 1px;
 border-right-width: 1px; border-left-style:solid; border-right-style:solid; border-top-style:solid; border-bottom-style:solid
 }
-.attributeopt
-{
-font-size: 115%;
-font-color: #000000;
-text-align: left;
-background-color: #BCBCEE;
-border: 1px inset black;
-background-image: url('none');
-margin: 0px;
-padding: 2px
-}
-.valueopt
+.mandatory
 {
 font-color: #000000;
-text-align: left;
-background-color: #DDDDFF;
-background-image: url('none');
-padding-top: 0em;
-padding-bottom: 0.5em;
-padding-right: 1em;
-padding-left: 5em;
-border-bottom-width: none;
-border-top-width: none;
-border-left-width: 1px;
-border-right-width: 1px; border-left-style:solid; border-right-style:solid; border-top-style:solid; border-bottom-style:solid
+background-color: #FFCCFF;
 }
+
 .attributelong
 {
 font-size: 85%;
@@ -111,17 +111,6 @@ background-image: url('none');
 margin: 0px;
 padding: 2px
 }
-.attributeoptlong
-{
-font-size: 85%;
-font-color: #000000;
-text-align: left;
-background-color: #BCBCEE;
-border: 1px inset black;
-background-image: url('none');
-margin: 0px;
-padding: 2px
-}
 .demo
 {
 background-color: #EEEEEE;
@@ -146,94 +135,18 @@ color: #00FF00
 <h2>Shibboleth Origin Deployment Guide</h2>
 </center>
 <p>Shibboleth Origin Deployment Guide<br>
-Shibboleth Version 1.1<br>
-December 3, 2003<br>
+Shibboleth Version 1.2<br>
+March 18, 2004<br>
 </p>
-<h3>This version of the deploy guide is for Shibboleth v1.1. For documentation 
+<h3>This version of the deploy guide is for Shibboleth v1.2. For documentation 
 related to prior versions of Shibboleth, please consult the appropriate branch 
 in the Shibboleth CVS.</h3>
 <h3>Federations have been abstracted out from the Shibboleth documentation. For 
 further information on using Shibboleth in a federation, refer to the federation 
 guide.</h3>
-<p>Shibboleth v1.1 is stable and secure enough to deploy in production 
-scenarios. It is backward compatible with 1.0 in all respects, including 
-configuration, but some older commands have been deprecated or replaced.</p>
-<p>Features and changes specific to 1.1 are marked with <span class="feature">
-[1.1]</span></p>
-<h4>Major New Features in 1.0 and 1.1</h4>
-<p>This new release contains several improvements and enhancements, including:
-</p>
-<h5>Federation Support</h5>
-<ol>
-    <li>Federation and trust support has been substantially extended. Federation 
-    structures are now defined. The set of metadata collected and managed by 
-    each Federation is more fully defined. The configuration values assigned by 
-    a Federation are now identified. </li>
-    <li>There is some support for targets to be members of multiple federations; 
-    this support will continue to evolve. When a browser user arrives, a target 
-    will determine which federation their origin belongs to, and then use the 
-    trust fabric associated with that Federation.</li>
-    <li>Better support for flexible and bilateral trust agreements. A key 
-    specific to an origin site can be used to vallidate its signature.</li>
-    <li>This version contains a significantly more mature security 
-    implementation, and should meet the security requirements of typical sites.</li>
-</ol>
-<h5>Origin</h5>
-<ol>
-    <li>The Attribute Authority has a powerful new attribute resolver. Simple 
-    scenarios (using a string attribute stored in ldap) can be accomplished by 
-    merely editing a configuration file. Java classes may still be written for 
-    more complex evaluations (eg retrieving information from multiple disparate 
-    repositories, and computing the SAML attribute using business rules). This 
-    should greatly simplify the process of configuring the AA to support 
-    additional general attributes.</li>
-    <li>A sample resolver file for using standard LDAP person and inetOrgPerson 
-    attributes is included. <span class="feature">[1.1]</span></li>
-    <li>Support for a runtime-derived per-requester persistent identifier 
-    attribute to support anonymous personalization by targets has been added via 
-    an attribute plugin. <span class="feature">[1.1]</span></li>
-    <li>Specialized sites without privacy needs can configure identity-based 
-    handles interoperable with other SAML deployments. <span class="feature">
-    [1.1]</span></li>
-</ol>
-<h5>Target</h5>
-<ol>
-    <li>Significantly more flexibility in configuring targets is provided to 
-    ensure robustness. Failover and redundant configurations are now supported.</li>
-    <li>The SHAR may now optionally store its session and attribute cache in a 
-    back-end database in addition to the previously available in-memory option.
-    <span class="feature">[1.1]</span> </li>
-    <li>Federation supplied files (sites.xml and trust.xml) are now refreshed in 
-    a much more robust manner. </li>
-    <li>The SHAR can be configured to request specific attributes from the 
-    Origin. </li>
-    <li>The SHAR can use TCP sockets when responding to the Apache module, for 
-    specialized deployment behind firewalls. <span class="feature">[1.1]</span>
-    </li>
-    <li>Attribute acceptance policies have been greatly enhanced, and are now 
-    used to configure all aspects of attribute handling by the target, except 
-    for requesting specific attributes by sitename. Adding attributes now takes 
-    place in one configuration step. <span class="feature">[1.1]</span> </li>
-    <li>Support for Apache 1.3 on Windows NT/2000/XP/2003 has been added.
-    <span class="feature">[1.1]</span> </li>
-    <li>Microsoft IIS web server support has been added via an ISAPI filter and 
-    extension. <span class="feature">[1.1]</span> </li>
-</ol>
-<h5>Miscellaneous</h5>
-<ol>
-    <li>Origin sites can configure a value to describe the type of 
-    authentication mechanism used at the origin site (e.g. password, Kerberos, 
-    PKI, etc.). This value is made available on the target side as Shib-Authentication-Method.
-    <br>
-    </li>
-    <li>Various improvements to error handling. Origin sites are now able to 
-    supply an &quot;error URL&quot; and contact information to a federation. When a target 
-    encounters an error, it can include this information in the error page. <br>
-    </li>
-    <li>Local time string values are now used in log files. <br>
-    </li>
-    <li>Internationalization support has been extended.</li>
-</ol>
+
+<p>Insert features here.</p>
+
 <p>Before starting, please sign up for all applicable
 <a href="http://shibboleth.internet2.edu/shib-misc.html#mailinglist">mailing 
 lists</a>. Announcements pertinent to Shibboleth deployments and developments 
@@ -311,7 +224,7 @@ that arises. Please ensure that you have the
     <h4><a href="#5."><font color="black">Advanced Configuration</font></a></h4>
     <ol type="a">
         <li><a href="#5.a."><font color="black"><span class="fixedwidth">
-        origin.properties</span></font></a></li>
+        origin.xml</span></font></a></li>
         <li><a href="#5.b."><font color="black">ARP Overview</font></a>
         <ol type="i">
             <li><a href="#5.b.i."><font color="black">ARP Processing</font></a></li>
@@ -753,85 +666,110 @@ and <span class="fixedwidth">JSP specification 1.2</span>.</b></p>
 <h3><a name="4."></a>4. Getting Running</h3>
 <h4><a name="4.a."></a>4.a. Basic Configuration</h4>
 <blockquote>
-    <p><b>This section of the deploy guide specifies only the essential changes 
-    that need to be made to the configuration defaults for the origin to 
-    function successfully in a federated environment. More complex configuration 
-    will likely be required for many applications and federations; for a full 
-    description of every field in <span class="fixedwidth">origin.properties</span>, 
-    please refer to <a href="#5.a.">section 5.a</a>.</b></p>
+    <p><b>This section of the deploy guide describes only the default <span
+    class="fixedwidth">origin.xml</span> file and enumerates the essential
+    changes that need to be made to the configuration defaults for the origin to
+    function successfully in a federated environment. More complex configuration
+    will likely be required for many applications and federations; for a fully
+    defined example <span class="fixedwidth">origin.xml</span> and definition of
+    every element and attribute that may be used, please refer to <a
+    href="#5.a.">section 5.a</a>.</b></p>
     <p>The main configuration file for Shibboleth&#39;s origin side is located in
-    <span class="fixedwidth">/webapps/shibboleth/WEB-INF/classes/conf/origin.properties.</span>. 
-    This file contains configuration information for the origin side in several 
-    sections. The configuration must be consistent with values elsewhere in the 
+    <span class="fixedwidth">/webapps/shibboleth/WEB-INF/classes/conf/origin.xml</span>.
+    The configuration must be consistent with values elsewhere in the 
     deployment, such as the <a href="#4.c.">HS&#39; certificate</a> and with 
     directory access bindings, etc., or access errors may occur.</p>
     <p>All pathnames are relative, and have an effective root path of
     <span class="fixedwidth">$TOMCAT_HOME/webapps/shibboleth/WEB-INF/classes/</span>. 
     To specify files outside of the webapp, specify a full URI, such as
     <span class="fixedwidth">file:///usr/local/shibboleth/</span>.</p>
+    <p>The following is a hyperlinked version of the basic configuration file, followed by a list of elements and attributes that must be modified.  Click on any attribute or element for more information on its population and definition.</p>
+
+<blockquote><span class="fixedwidth">
+&lt;?xml version=&quot;1.0&quot;encoding=&quot;UTF-8&quot;?&gt;<br>
+<br>
+<a href="#confShibbolethOriginConfig" class="fixedlink">&lt;ShibbolethOriginConfig <br>
+&nbsp;&nbsp;&nbsp;xmlns=&quot;urn:mace:shibboleth:origin:1.0&quot;<br>
+&nbsp;&nbsp;&nbsp;xmlns:cred=&quot;urn:mace:shibboleth:credentials:1.0&quot;<br>
+&nbsp;&nbsp;&nbsp;xmlns:name=&quot;urn:mace:shibboleth:namemapper:1.0&quot;<br>
+&nbsp;&nbsp;&nbsp;xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;<br>
+&nbsp;&nbsp;&nbsp;xsi:schemaLocation=&quot;urn:mace:shibboleth:origin:1.0 origin.xsd&quot;<br>
+&nbsp;&nbsp;&nbsp;AAUrl=&quot;http://therock.cc.columbia.edu:6666/shibboleth/AA&quot;<br>
+&nbsp;&nbsp;&nbsp;defaultRelyingParty=&quot;urn:mace:inqueue&quot;<br>
+&nbsp;&nbsp;&nbsp;providerId=&quot;urn:mace:inqueue:shibdev.edu&quot;&gt;</a><br>
+<br>
+<a href="#confRelyingParty" class="fixedlink">&nbsp;&nbsp;&nbsp;&lt;RelyingParty name=&quot;urn:mace:inqueue&quot; signingCredential=&quot;foo&quot;&gt;<br></a>
+<a href="#confHSNameFormat" class="fixedlink">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;HSNameFormat nameMapping=&quot;crypto&quot;/&gt;</a><br>
+<a href="#confRelyingParty" class="fixedlink">&nbsp;&nbsp;&nbsp;&lt;/RelyingParty&gt;</a><br>
+<br>
+<a href="#confReleasePolicyEngine" class="fixedlink">&nbsp;&nbsp;&nbsp;&lt;ReleasePolicyEngine&gt;<br></a>
+<a href="#confArpRepository" class="fixedlink">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ArpRepository implementation=&quot;edu.internet2.middleware.shibboleth.aa.arp.provider.FileSystemArpRepository&quot;&gt;</a><br>
+<a href="#confPath" class="fixedlink">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Path&gt;/conf/arps/&lt;/Path&gt;</a><br>
+<a href="#confArpRepository" class="fixedlink">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/ArpRepository&gt;</a><br>
+<a href="#confReleasePolicyEngine" class="fixedlink">&nbsp;&nbsp;&nbsp;&lt;/ReleasePolicyEngine&gt;</a><br>
+<br>
+&nbsp;&nbsp;&nbsp;&lt;!--<br>
+<a href="#confLogging" class="fixedlink">&nbsp;&nbsp;&nbsp;&lt;Logging&gt;</a><br>
+<a href="#confLog4JConfig" class="fixedlink">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Log4JConfig location=&quot;file:///tmp/log4j.properties&quot;/&gt;</a><br>
+<a href="#confLogging" class="fixedlink">&nbsp;&nbsp;&nbsp;&lt;/Logging&gt;</a><br>
+<a href="#confLogging" class="fixedlink">&nbsp;&nbsp;&nbsp;&lt;Logging&gt;</a><br>
+<a href="#confErrorLog" class="fixedlink">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ErrorLog level=&quot;DEBUG&quot; location=&quot;file:///tmp/shib-error.log&quot;/&gt;</a><br>
+<a href="#confTransactionLog" class="fixedlink">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;TransactionLog location=&quot;file:///tmp/shib-access.log&quot;/&gt;</a><br>
+<a href="#confLogging" class="fixedlink">&nbsp;&nbsp;&nbsp;&lt;/Logging&gt;</a><br>
+&nbsp;&nbsp;&nbsp;--&gt;<br>
+<br>
+<a href="#confNameMapping" class="fixedlink">&nbsp;&nbsp;&nbsp;&lt;NameMapping <br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns=&quot;urn:mace:shibboleth:namemapper:1.0&quot;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id=&quot;crypto&quot;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;format=&quot;urn:mace:shibboleth:1.0:nameIdentifier&quot;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type=&quot;SharedMemoryShibHandle&quot;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;handleTTL=&quot;1800&quot;/&gt;</a><br>
+<br>
+<a href="#confCredentials" class="fixedlink">&nbsp;&nbsp;&nbsp;&lt;Credentials xmlns=&quot;urn:mace:shibboleth:credentials:1.0&quot;&gt;</a><br>
+<a href="#confFileResolver" class="fixedlink">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;FileResolver Id=&quot;foo&quot;&gt;</a><br>
+<a href="#confKey" class="fixedlink">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Key format=&quot;DER&quot;&gt;</a><br>
+<a href="#confPath" class="fixedlink">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Path&gt;/conf/shib2.key&lt;/Path&gt;</a><br>
+<a href="#confKey" class="fixedlink">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Key&gt;</a><br>
+<a href="#confCertificate" class="fixedlink">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Certificate format=&quot;PEM&quot;&gt;</a><br>
+<a href="#confPath" class="fixedlink">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Path&gt;/conf/shib2.crt&lt;/Path&gt;</a><br>
+<a href="#confCertificate" class="fixedlink">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Certificate&gt;</a><br>
+<a href="#confFileResolver" class="fixedlink">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/FileResolver&gt;</a><br>
+<a href="#confCredentials" class="fixedlink">&nbsp;&nbsp;&nbsp;&lt;/Credentials&gt;</a><br>
+<br>
+<a href="#confShibbolethOriginConfig" class="fixedlink">&lt;/ShibbolethOriginConfig&gt;</a>
+</span></blockquote>
+
+<p>The following changes must be made to the default configuration before the origin will interoperate in a federation.</p>
     <ol type="1">
-        <li><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.hs.HandleServlet.issuer = &lt;domain 
-        name&gt;</span>
-        <blockquote>
-            <p>This will be, in most cases, the DNS name of the machine on which 
-            the HS runs. It must match the CN of the certificate used below.</p>
-        </blockquote>
-        </li>
-        <li><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.hs.HandleServlet.siteName = &lt;URI&gt;</span>
-        <blockquote>
-            <p>Enter the value assigned to the site by the federation.</p>
-        </blockquote>
-        </li>
-        <li><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.hs.HandleServlet.AAUrl = &lt;url&gt;</span>
-        <blockquote>
-            <p>This will be the URL assigned the AA servlet in step
-            <a href="#3.b.">3.b</a>. Note that this <b>must</b> be an
-            <span class="fixedwidth">https://</span> URL in order for the AA to 
-            know which SHAR is requesting attributes.</p>
-        </blockquote>
-        </li>
-        <li>&nbsp;<ul type="circle">
-            <li><span class="fixedwidth">
-            edu.internet2.middleware.shibboleth.hs.HandleServlet.keyStorePath = 
-            &lt;pathname&gt;</span></li>
-            <li><span class="fixedwidth">
-            edu.internet2.middleware.shibboleth.hs.HandleServlet.keyStorePassword 
-            = &lt;password&gt;</span></li>
-            <li><span class="fixedwidth">
-            edu.internet2.middleware.shibboleth.hs.HandleServlet.keyStoreKeyAlias 
-            = &lt;alias&gt;</span></li>
-            <li><span class="fixedwidth">
-            edu.internet2.middleware.shibboleth.hs.HandleServlet.keyStoreKeyPassword 
-            = &lt;password&gt;</span></li>
-            <li><span class="fixedwidth">
-            edu.internet2.middleware.shibboleth.hs.HandleServlet.certAlias = 
-            &lt;alias&gt;</span></li>
-        </ul>
-        <blockquote>
-            <p>Respectively, the location and password of the Java keystore 
-            containing the x.509 certificate and matching private key to be used 
-            by the HS, the alias and password of the private key, and the 
-            optional certificate alias, if it differs from the key&#39;s alias.</p>
-        </blockquote>
+        <li> 
+        <p>Attributes within the <a href="#confShibbolethOriginConfig"><span
+        class="fixedwidth">ShibbolethOriginConfig</span></a> element:</p>
+            <ol type="a">
+            <li><a href="#confShibbolethOriginConfig"><span class="fixedwidth">AAUrl=<i>URL</i></span></a>
+            <blockquote>
+                <p>This will be the URL assigned the AA servlet in step
+                <a href="#3.b.">3.b</a>. Note that this <b>must</b> be an
+                <span class="fixedwidth">https://</span> URL in order for the AA to 
+                know which SHAR is requesting attributes.</p>
+            </blockquote>
+            </li>
+            <li><a href="#confShibbolethOriginConfig"><span class="fixedwidth">providerID=<i>URN</i></span></a>
+            <blockquote>
+                <p>This will be the URN assigned to this origin by the federation.</p>
+            </blockquote>
+            </li>
+            <li><a href="#confShibbolethOriginConfig"><span class="fixedwidth">defaultRelyingParty=<i>URN</i></span></a>
+            <blockquote>
+                <p>This is the URN of the primary federation that the origin operates within.</p>
+            </blockquote>
+            </li>
+            </ol>
         </li>
-        <li><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.aa.AAServlet.authorityName = &lt;domain 
-        name&gt;</span>
-        <blockquote>
-            <p>Specifies the name of the AA, which is typically the domain name 
-            of the server running it.</p>
-        </blockquote>
+        <li> 
+        <p>Although not explicitly necessary, it's highly recommended that logging be activated at the <span class="fixedwidth">DEBUG</span> level by uncommenting the second <a href="#confLogging"><span class="fixedwidth">Logging</span></a> element and ensuring that the pathnames for <a href="#confTransactionLog"><span class="fixedwidth">TransactionLog</span></a> and <a href="#confErrorLog"><span class="fixedwidth">ErrorLog</span></a> are appropriate.</p>
         </li>
-        <li><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.audiences = &lt;URI&gt;</span>
-        <blockquote>
-            <p>This section must contain the URI of the federation under which 
-            the origin will operate or test initially. This will be provided by 
-            the federation.</p>
-        </blockquote>
+        <li>
+        <p>The default configuration file informs Shibboleth to load its key and certificate from flat files.  The <a href="#confKey"><span class="fixedwidth">Key</span></a> element specifies a key in <span class="fixedwidth">DER</span> format located at <span class="fixedwidth">/conf/shib2.key</span>, while the <a href="#confCertificate"><span class="fixedwidth">Certificate</span></a> element specifies the corresponding certificate in <span class="fixedwidth">PEM</span> format located at <span class="fixedwidth">/conf/shib2.crt</span>.  If any of these values is inconsistent with your deployment, change it accordingly.  Note that keys are supported in a variety of formats: DER, PEM, encrypted PEM, PKCS8, and encrypted PKCS8.  If a keystore must be used instead, consult <a href="#5.a.">section 5.a</a> for appropriate structure and details on population.</p>
         </li>
     </ol>
 </blockquote>
@@ -1021,61 +959,172 @@ configuration</h4>
 <p><br>
 </p>
 <h3><a name="5."></a>5. Advanced Configuration</h3>
-<h4><a name="5.a."></a><span class="fixedwidth">origin.properties</span></h4>
+<h4><a name="5.a."></a>5.a. <span class="fixedwidth">origin.xml</span></h4>
 <blockquote>
-    <p>The main configuration file for Shibboleth&#39;s origin side is located in
-    <span class="fixedwidth">/webapps/shibboleth/WEB-INF/classes/conf/origin.properties.</span>. 
-    This file contains configuration information for the origin side in several 
-    sections. The configuration must be consistent with values elsewhere in the 
-    deployment, such as the <a href="#4.c.">HS&#39; certificate</a> and with 
-    directory access bindings, etc., or access errors may occur.</p>
+    <p>Shibboleth 1.2 origins are configured using the <span class="fixedwidth">origin.xml</span> file located in
+    <span class="fixedwidth">/webapps/shibboleth/WEB-INF/classes/conf/origin.xml</span>.  The XML consists of a set of individual elements that describe how the origin should operate, which may each have their own attributes or appear within other elements.  This structure is represented through cross-references in the definitions and the examples presented in <a href="#4.a.">section 4.a</a>, below, and through the <a href="http://marsalis.internet2.edu/cgi-bin/viewcvs.cgi/shibboleth/java/data/">examples in CVS</a>.
+    The following is an alphabetical list of all configuration parameters and values. The configuration must be consistent with values elsewhere in the 
+    deployment, such as certificates and keystores including the <a href="#4.c.">HS&#39; certificate</a> and with 
+    directory access bindings, etc., or access errors may occur.  For a more basic example, consult <a href="#4.a.">section 4.a</a>.</p>
     <p>All pathnames are relative, and have an effective root path of
     <span class="fixedwidth">$TOMCAT_HOME/webapps/shibboleth/WEB-INF/classes/</span>. 
     To specify files outside of the webapp, specify a full URI, such as
     <span class="fixedwidth">file:///usr/local/shibboleth/</span>.</p>
-    <p>Fields that are purple are optional; grey fields are mandatory.</p>
-    <p>These are the variables that may be specified for each component of
-    <span class="fixedwidth">origin.properties</span>:</p>
-    <p><br>
-    </p>
-    <p>General Configuration:</p>
+    <p>All elements are optional unless otherwise specified.  All attributes of an element are optional unless designated <span class="mandatory">mandatory</span> by a purple background.</p>
+
     <dl>
-        <dd class="attributelong"><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.hs.HandleServlet.issuer = &lt;domain 
-        name&gt;</span> </dd>
-        <dd class="value">Specifies the DNS name the HS should use for itself in 
-        issuing assertions.</dd>
-        <dd class="attributelong"><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.hs.HandleServlet.siteName = &lt;URI&gt;</span>
-        </dd>
-        <dd class="value">Specifies the the <span class="fixedwidth">URI</span> 
-        to use as the name of the origin site as a whole. This field is 
-        primarily meant to be populated in the context of the federation in 
-        which the origin site resides, is intended to be globally unique, and 
-        will typically be assigned by the federation.</dd>
-        <dd class="attributelong"><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.hs.HandleServlet.AAUrl = &lt;url&gt;</span>
-        </dd>
-        <dd class="value">Specifies the <span class="fixedwidth">URL</span> at 
-        which the HS&#39; corresponding AA may be contacted. Note that this <b>must</b> 
-        be an <span class="fixedwidth">https://</span> URL in order for the AA 
-        to know which SHAR is requesting attributes.</dd>
-        <dd class="attributeoptlong"><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.hs.HandleServlet.username = &lt;var&gt;</span>
-        </dd>
-        <dd class="valueopt">Specifies the HTTP request header that should be 
-        used to acquire the user&#39;s principal name from the authentication 
-        service. Defaults to <span class="fixedwidth">REMOTE_USER</span>.</dd>
-        <dd class="attributeoptlong"><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.hs.HandleServlet.authMethod = &lt;uri&gt;</span>
-        </dd>
-        <dd class="valueopt">Specifes the URI used to populate
-        <span class="fixedwidth">AuthenticationMethod</span> in the SAML 
-        attribute assertion. This corresponds to the method used to authenticate 
-        users by the authentication service used by the HS. Some common 
+        <dd class="attributelong"><a name="confArpRepository"><span class="fixedwidth">&lt;ArpRepository implementation =&quot;edu.internet2.middleware.shibboleth.aa.arp.provider.FileSystemArpRepository&quot;&gt;</span></dd>
+        <dd class="value"><p>This element specifies an individual implementation
+        of a release policy engine, with the given value specifying Shibboleth's
+        file-based ARP repository implementation, which is currently the only
+        available.  This must contain a <a href="#confPath"><span
+        class="fixedwidth">Path</span></a> element pointing to the directory
+        containing ARP's to be used by this engine.  For more information
+        regarding ARP's, consult section <a href="#4.d.">4.d</a> for basic
+        information and <a href="#5.b.">5.b</a> for advanced configuration and
+        syntax.</p><p>Note that the set of principals that an ARP applies to is
+        not expressed by the ARP itself, but rather the implementation of the
+        ARP repository. For example, if the ARP repository were implemented in
+        LDAP, the ARP&#39;s that apply to a user would be attributes of that
+        user&#39;s personal LDAP entry, and the site ARP would be an attribute
+        of an entry representing the site. While not performed by the built-in
+        ARP repository, a repository implementation might also implement group
+        ARP&#39;s; for example, in an LDAP directory, the user entry might have
+        some group membership attributes that refer to group entries, and those
+        group entries would have ARP attributes, and all those ARP&#39;s would
+        be applicable.</p></dd>
+
+        <dd class="attributelong"><a name="confCAPath"><span class="fixedwidth">&lt;CAPath&gt;<i>pathname</i>&lt;/CAPath&gt;</span></dd>
+        <dd class="value">Paired with a <a href="#confPath"><span class="fixedwidth">Path</span></a> element and contained by a <a href="#confFileResolver"><span class="fixedwidth">FileResolver</span></a> element, this element allows for the specification of additional certificates in the chain up to the trust anchor.  As many <span class="fixedwidth">CAPath</span> elements as necessary to complete the chain may be specified.  The expectations of the target and the federation may determine the necessity for the use of this field.</dd>
+
+        <dd class="attributelong"><a name="confCertAlias"><span class="fixedwidth">&lt;CertAlias&gt;<i>string</i>&lt;/CertAlias&gt;</span></dd>
+        <dd class="value">Specifies the alias for the certificate 
+        corresponding to the private key used by the HS.  If no alias is specified, defaults to the private key's alias.  Contained by the <a href="#confKeyStoreResolver"><span class="fixedwidth">KeyStoreResolver</span></a> element.</dd>
+
+        <dd class="attributelong"><a name="confCertificate"><span class="fixedwidth">&lt;Certificate format=&quot;<i>type</i>&quot;&gt;</span></dd>
+        <dd class="value">This specifies the certificate corresponding to this set of credentials.  The certificate itself must be referred to using a <a href="#confPath"><span class="fixedwidth">Path</span></a> element contained by this element.  If this certificate isn't self-signed or signed by a root familiar to the target, the files of certificates in the path to the root may be specified using one or more <a href="#confPath"><span class="fixedwidth">CAPath</span></a> elements.  Valid encodings are <span class="fixedwidth">PEM</span> and <span class="fixedwidth">DER</span>.  It resides within the <a href="#confFileResolver"><span class="fixedwidth">FileResolver</span> element and must be paired with the corresponding private key using the <a href="#confKey"><span class="fixedwidth">Key</span></a> element.</dd>
+
+        <dd class="attributelong"><a name="confCredentials"><span class="fixedwidth">&lt;Credentials xmlns=&quot;urn:mace:shibboleth:credentials:1.0&quot;&gt;</span></dd>
+        <dd class="value">This element is the container for credentials used by the credential mechanism specified by the <a href="#confShibbolethOriginConfig"><span class="fixedwidth">ShibbolethOriginConfig</span></a> element.  For most deployments, the URN should be <span class="fixedwidth"></span>.  It must contain one <a href="#confFileResolver"><span class="fixedwidth">FileResolver</span></a> element for flat key and certificate files or one <a href="#confKeyStoreResolver"><span class="fixedwidth">KeyStoreResolver</span></a> element for compound keystores.</dd>
+
+        <dd class="attributelong"><a name="confErrorLog"><span class="fixedwidth">&lt;ErrorLog level=&quot;<i>level</i>&quot; location=&quot;<i>URL</i>&quot;&gt;</span></dd>
+        <dd class="value">Paired with a <a href="#confTransactionLog"><span class="fixedwidth">TransactionLog</span></a> element, this will log any errors encountered by the origin above a certain logging threshold to a flat file at the referenced <span class="fixedwidth">URL</span>.  Valid levels in order of decreasing sensitivity are <span class="fixedwidth">DEBUG</span>, <span class="fixedwidth">INFO</span>, <span class="fixedwidth">WARN</span>, <span class="fixedwidth">ERROR</span>, and <span class="fixedwidth">FATAL</span>.  If no logging is desired, specify <span class="fixedwidth">OFF</span>; defaults to <span class="fixedwidth">WARN</span>.  Must be contained by a <a href="#confLogging"><span class="fixedwidth">Logging</span></a> element.</dd>
+
+        <dd class="attributelong"><a name="confFileResolver"><span class="fixedwidth">&lt;FileResolver Id=&quot;<i>string</i>&quot;&gt;</span></dd>
+        <dd class="value">This element defines a pair of files used to store a private key and certificate associated with a given identifier and is contained by the <a href="#confCredentials"><span class="fixedwidth">Credentials</span></a> element.  <a href="#confRelyingParty"><span class="fixedwidth">RelyingParty</span></a> elements will refer to these identifiers allowing multiple resolver elements to be used to specify different credential storage for different federations or target sites.  It must contain one <a href="#confKey"><span class="fixedwidth">Key</span></a> element and should contain one <a href="#confCertificate"><span class="fixedwidth">Certificate</span></a> element.</dd>
+
+        <dd class="attributelong"><a name="confHSNameFormat"><span class="fixedwidth">&lt;HSNameFormat <span class="mandatory">nameMapping=&quot;<i>id</i>&quot;</span>/&gt;</span></dd>
+        <dd class="value">Individual <a href="#confRelyingParty"><span class="fixedwidth">RelyingParty</span></a> elements may contain this element to specify the <a href="#confNameMapping"><span class="fixedwidth">NameMapping</span></a> element referenced by <span class="fixedwidth">id</span> to be used in generating subject names for this relying party.  If this element is not present, default Shibboleth handles will be used.</dd>
+
+        <dd class="attributelong"><a name="confKey"><span class="fixedwidth">&lt;Key format=&quot;<i>type</i>&quot;&gt;</span></dd>
+        <dd class="value">This specifies the file containing a private key to be used by a set of credentials.  Valid encodings are <span class="fixedwidth">PEM</span> and <span class="fixedwidth">DER</span>.  Keys are supported in a variety of formats: DER, PEM, encrypted PEM, PKCS8, and encrypted PKCS8.  It resides within the <a href="#confFileResolver"><span class="fixedwidth">FileResolver</span> element, should be paired with a <a href="#confCertificate"><span class="fixedwidth">Certificate</span></a> element, and contain a <a href="#confPath"><span class="fixedwidth">Path</span></a> element.</dd>
+
+        <dd class="attributelong"><a name="confKeyAlias"><span class="fixedwidth">&lt;KeyAlias&gt;<i>string</i>&lt;/KeyAlias&gt;</span></dd>
+        <dd class="value">Specifies the alias used for accessing the private 
+        key.  Contained by the <a href="#confKeyStoreResolver"><span class="fixedwidth">KeyStoreResolver</span></a> element.</dd>
+
+        <dd class="attributelong"><a name="confKeyPassword"><span class="fixedwidth">&lt;KeyPassword&gt;<i>string</i>&lt;/KeyPassword&gt;</span></dd>
+        <dd class="value">Specifies the password used to retrieve the private 
+        key.  Contained by the <a href="#confKeyStoreResolver"><span class="fixedwidth">KeyStoreResolver</span></a> element.</dd>
+
+        <dd class="attributelong"><a name="confKeyStoreKeyAlias"><span class="fixedwidth">&lt;KeyStoreKeyAlias&gt;<i>string</i>&lt;/KeyStoreKeyAlias&gt;</span></dd>
+        <dd class="value">Specifies the alias used for accessing the private 
+        key.  Contained by the <a href="#confNameMapping"><span class="fixedwidth">NameMapping</span></a> element when a <span class="fixedwidth">CryptoHandleGenerator</span> type is specified.</dd>
+
+        <dd class="attributelong"><a name="confKeyStoreKeyPassword"><span class="fixedwidth">&lt;KeyStoreKeyPassword&gt;<i>string</i>&lt;/KeyStoreKeyPassword&gt;</span></dd>
+        <dd class="value">Specifies the password used to retrieve the private 
+        key.  Contained by the <a href="#confNameMapping"><span class="fixedwidth">NameMapping</span></a> element when a <span class="fixedwidth">CryptoHandleGenerator</span> type is specified.</dd>
+
+        <dd class="attributelong"><a name="confKeyStorePassword"><span class="fixedwidth">&lt;KeyStorePassword&gt;<i>string</i>&lt;/KeyStorePassword&gt;</span></dd>
+        <dd class="value">Specifies the password to access the keystore containing the private key to be used for symmetric encryption.  Contained by the <a href="#confNameMapping"><span class="fixedwidth">NameMapping</span></a> element when a <span class="fixedwidth">CryptoHandleGenerator</span> type is specified.</dd>
+
+        <dd class="attributelong"><a name="confKeyStorePath"><span class="fixedwidth">&lt;KeyStorePath&gt;<i>string</i>&lt;/KeyStorePath&gt;</span></dd>
+        <dd class="value">Specifies the location of the keystore containing the private key to be used for symmetric encryption to pass handles between the HS and AA.  Contained by the <a href="#confNameMapping"><span class="fixedwidth">NameMapping</span></a> element when a <span class="fixedwidth">CryptoHandleGenerator</span> type is specified.</dd>
+
+        <dd class="attributelong"><a name="confKeyStoreResolver"><span class="fixedwidth">&lt;KeyStoreResolver Id=&quot;<i>string</i>&quot; storeType=&quot;<i>type</i>&quot;&gt;</span></dd>
+        <dd class="value">This element is contained by the <a href="#confCredentials"><span class="fixedwidth">Credentials</span></a> element and to specify a keystore that contains both the certificate and private key for a given set of credentials.  Typically, this will be a Java keystore, with a corresponding type of <span class="fixedwidth">JKS</span>.  <a href="#confRelyingParty"><span class="fixedwidth">RelyingParty</span></a> elements will refer to the <span class="fixedwidth">Id</span> allowing multiple resolver elements to be used to specify different credential storage for different federations or target sites.  It must contain one <a href="#confPath"><span class="fixedwidth">Path</span></a> element, one <a href="#confKeyAlias"><span class="fixedwidth">KeyAlias</span></a> element, and one <a href="#confStorePassword"><span class="fixedwidth">StorePassword</span></a> element; it may optionally contain a <a href="#confKeyPassword"><span class="fixedwidth">KeyPassword</span></a> element or a <a href="#confCertAlias"><span class="fixedwidth">CertAlias</span></a> element.</dd>
+
+        <dd class="attributelong"><a name="confLog4JConfig"><span class="fixedwidth">&lt;Log4JConfig location=&quot;<i>pathname</i>&quot;/&gt;</span></dd>
+        <dd class="value">This element informs Shibboleth to utilize Log4J as a logging system and points to the relevant configuration file using the <span class="fixedwidth">location</span> attribute.  A basic configuration is included with the distribution at <span class="fixedwidth">/WEB-INF/classes/conf/log4j.properties</span>.  This is set up to log to the console of the servlet container with a level of WARN, but there is also a commented-out example in the file to give a possible alternate configuration.  This element must be contained by a <a href="#confLogging"><span class="fixedwidth">Logging</span></a> element and may not be paired with a <a href="#confTransactionLog"><span class="fixedwidth">TransactionLog</span></a> or <a href="#confErrorLog"><span class="fixedwidth">ErrorLog</span></a> element.</dd>
+
+        <dd class="attributelong"><a name="confLogging"><span class="fixedwidth">&lt;Logging&gt;</span></dd>
+        <dd class="value">This container element identifies a logging method for both the HS and AA to use and may not occur more than once.  Three different logging methods may be specified depending on what is placed inside this element.  If nothing is specified, then all logs go to the container console.  If <a href="#confErrorLog"><span class="fixedwidth">ErrorLog</span></a> and <a href="#confTransactionLog"><span class="fixedwidth">TransactionLog</span></a> elements are present, more traditional logging flatfiles will be generated at the locations specified.  A <a href="#confLog4JConfig"><span class="fixedwidth">Log4JConfig</span></a> element instructs the origin to use Log4J logging.</dd>
+
+        <dd class="attributelong"><a name="confNameMapping"><span class="fixedwidth">&lt;NameMapping xmlns=&quot;urn:mace:shibboleth:namemapper:1.0&quot;<br>
+format=&quot;<i>URN</i>&quot;<br>
+handleTTL=&quot;<i>seconds</i>&quot;<br>
+id=&quot;<i>string</i>&quot;<br>
+type=&quot;<i>type</i>&quot;/&gt;</span></dd>
+        <dd class="value">This element defines a name mapping system to create SAML assertion subject names for users; in standard Shibboleth, this will be the creation of a handle to be given to the SHAR and shared with the AA.
+<ul>
+<li><span class="fixedwidth">format</span> should be populated with the URN <span class="fixedwidth">urn:mace:shibboleth:1.0:nameIdentifier</span> if traditional Shibboleth handles are used.</li>
+<li><span class="fixedwidth">handleTTL</span> specifies in seconds how long a given handle will be considered valid; an expired handle will require the user to obtain a new handle and possibly re-authenticate.  This field is only valid if Shibboleth handles are being used, e.g. <span class="fixedwidth">format</span> is <span class="fixedwidth">urn:mace:shibboleth:1.0:nameIdentifier</span>.  Consult your federation guidelines for guidance on the population of this field.</li>
+<li><span class="fixedwidth">id</span> is used by <a href="#confHSNameFormat"><span class="fixedwidth">HSNameFormat</span></a> elements to refer to this element and must be unique.</li>
+<li><span class="fixedwidth">type</span> dictates how handles are passed to the AA.  The valid types are:<ul type="circle">
+<li><span class="fixedwidth">CryptoHandleGenerator</span>: Shibboleth handles will be passed using symmetric encryption.  If this is specified, keystore information must be specified using one <a href="#confKeyStorePath"><span class="fixedwidth">KeyStorePath</span></a> element, one <a href="#confKeyStoreKeyAlias"><span class="fixedwidth">KeyStoreKeyAlias</span></a> element, one <a href="#confKeyStorePassword"><span class="fixedwidth">KeyStorePassword</span></a> element, and optionally a <a href="#confKeyStoreKeyPassword"><span class="fixedwidth">KeyStoreKeyPassword</span></a> element.</li>
+<li><span class="fixedwidth">Principal</span>: Shibboleth will use the primary unique identifier for the individual and not generate a handle.</li>
+<li><span class="fixedwidth">SharedMemoryShibHandle</span>: Shibboleth will use a shared in-memory repository.</li>
+</ul></li>
+</ul></dd>
+
+        <dd class="attributelong"><a name="confPath"><span class="fixedwidth">&lt;Path&gt;<i>pathname</i>&lt;/Path&gt;</span></dd>
+        <dd class="value">This mandatory element specifies the path to a file or directory utilized by other elements of the configuration.  It may be contained by various elements to point to different types of files required by the origin.</dd>
+
+        <dd class="attributelong"><a name="confReleasePolicyEngine"><span class="fixedwidth">&lt;ReleasePolicyEngine&gt;</span></dd>
+        <dd class="value">The <span class="fixedwidth">ReleasePolicyEngine</span> element is used to specify a class of release policy processing and enforcement and is not mandatory, defaulting to ???.  This should contain one <a href="#confArpRepository"><span class="fixedwidth">ArpRepository</span></a> element.</dd>
+
+        <dd class="attributelong"><a name="confRelyingParty"><span class="fixedwidth">&lt;RelyingParty <span class="mandatory">name=&quot;<i>URN</i>&quot;</span><br>
+AAsigningCredential=&quot;<i>string</i>&quot;<br>
+AAUrl=&quot;<i>URL</i>&quot;<br>
+defaultAuthMethod=&quot;<i>URN</i>&quot;<br>
+passThruErrors=&quot;<i>true/false</i>&quot;<br>
+providerId=&quot;<i>string</i>&quot;<br>
+signAttrAssertions=&quot;<i>true/false</i>&quot;<br>
+signAttrResponses=&quot;<i>true/false</i>&quot;<br>
+signAuthAssertions=&quot;<i>true/false</i>&quot;<br>
+signAuthResponses=&quot;<i>true/false</i>&quot;<br>
+signingCredential=&quot;<i>string</i>&quot;&gt;</span></dd>
+        <dd class="value"><p>The <span class="fixedwidth">RelyingParty</span> element is used to specify one or more relying parties that this origin must recognize.  This includes any federations the origin is a member of, any targets that have established bilateral agreements with the origin, or any other trust structure that origin must be aware of.  In addition to its attributes, this element may contain a <a href="#confHSNameMapping"><span class="fixedwidth">HSNameMapping</span></a> element to specify a naming mechanism for assertions sent to this relying party.</p><ul>
+
+<li class="mandatory"><span class="fixedwidth">name</span>: Each <span class="fixedwidth">RelyingParty</span> element is differentiated by a URN specified in the <span class="fixedwidth">name</span> attribute.  A target will send a value for this attribute with the attribute request; if the URN sent matches the <span class="fixedwidth">name</span>, this element will be used in the transaction.  If there is no direct match, the origin uses metadata to try to find a federation that the service provider is a member of.</li>
+<li><span class="fixedwidth">AAsigningCredential</span>: This attribute must equal the identifier of one of the <a href="#confFileResolver><span class="fixedwidth">FileResolver</span></a> Id's.  A separate set of credentials may be specified for the AA's signing of assertions/SSL session identification using this attribute, as opposed to the HS' signing of assertions.  If this is not specified for this <span class="fixedwidth">RelyingParty</span> element, but a <span class="fixedwidth">signingCredential</span> attribute is, that set of credentials will be used instead.  Ensure that the appropriate signing key is selected for each; an incorrect signing key will lead to trust failures.</li>
+<li><span class="fixedwidth">AAUrl</span>: Different AA's may be specified for different relying parties using this attribute.  It over-rides, is populated, and operates in the same manner as the <span class="fixedwidth">AAUrl</span> attribute of the <a href="#confShibbolethOriginConfig"><span class="fixedwidth">ShibbolethOriginConfig</span></a> element.</li>
+<li><span class="fixedwidth">defaultAuthMethod</span>: The value of this attribute represents the mechanism by which the user's authentication was performed.  It is used to populate <span class="fixedwidth">authenticationMethod</span> in SAML assertions passed to this relying party if no other authentication method is passed to the HS.  For a brief list of authentication methods, consult the same attribute as part of the <a href="#confShibbolethOriginConfig"><span class="fixedwidth">ShibbolethOriginConfig</span></a> element.</li>
+<li><span class="fixedwidth">passThruErrors</span>: This boolean attribute determines whether the origin will relay errors in flows to this target for use in displaying these errors to the browser in the case of an unsuccessful transaction.</li>
+<li><span class="fixedwidth">providerId</span>: If the origin must assert under a different name to this relying party, specify a <span class="fixedwidth">providerId</span> attribute which will over-ride the one specified in <a href="#confShibbolethOriginConfig"><span class="fixedwidth">ShibbolethOriginConfig</span></a>.</li>
+<li><span class="fixedwidth">signAttrAssertions</span>: If this boolean attribute has a value of <span class="fixedwidth">true</span>, the attribute assertion within the SAML response will be signed.  This is mostly useful for using the attribute assertion in contexts outside of the response and defaults to <span class="fixedwidth">false</span>.</li>
+<li><span class="fixedwidth">signAttrResponses</span>: If this boolean attribute has a value of <span class="fixedwidth">true</span>, the attribute response itself will be signed in addition to the security and authentication provided by the SSL session.  SAML responses contain one or more assertions.  Defaults to <span class="fixedwidth">false</span>; if true, an <span class="fixedwidth">https://</span> AAUrl may be redundant.</li>
+<li><span class="fixedwidth">signAuthAssertions</span>: If this boolean attribute has a value of <span class="fixedwidth">true</span>, the authentication assertion within the SAML response will be signed.  This is mostly useful for using the authentication assertion in contexts outside of the response and defaults to <span class="fixedwidth">false</span>.</li>
+<li><span class="fixedwidth">signAuthResponses</span>: If this boolean attribute has a value of <span class="fixedwidth">false</span>, the authentication response will not be signed.  SAML responses contain one or more assertions.  Defaults to <span class="fixedwidth">true</span>.</li>
+<li><span class="fixedwidth">signingCredential</span>: This attribute must equal the identifier of one of the <a href="#confFileResolver><span class="fixedwidth">FileResolver</span></a> Id's.  This allows the origin to use different signing keys and certificates for exchanges with different federations or targets.  Ensure that the appropriate signing key is selected for each; an incorrect signing key will lead to trust failures.</li>
+</ul>
+</dd>
+
+        <dd class="attributelong"><a name="confShibbolethOriginConfig"><span class="fixedwidth">&lt;ShibbolethOriginConfig<br>
+<span class="mandatory">xmlns=&quot;urn:mace:shibboleth:origin:1.0&quot;<br>
+xmlns:cred=&quot;urn:mace:shibboleth:credentials:1.0&quot;<br>
+xmlns:name=&quot;urn:mace:shibboleth:namemapper:1.0&quot;<br>
+xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;<br>
+xsi:schemaLocation=&quot;urn:mace:shibboleth:origin:1.0 origin.xml&quot;</span><br>
+<span class="mandatory">defaultRelyingParty=&quot;<i>URI</i>&quot;<br>
+providerID=&quot;<i>URN</i>&quot;</span><br>
+AAUrl=&quot;<i>URL</i>&quot;<br>
+authHeaderName=&quot;<i>string</i>&quot;<br>
+defaultAuthMethod=&quot;<i>URN</i>&quot;<br>
+maxHSThreads=&quot;<i>integer</i>&quot;<br>
+passThruErrors=&quot;<i>true/false</i>&quot;<br>
+resolverConfig=&quot;<i>pathname</i>&quot;&gt;</span></dd>
+        <dd class="value"><p>This is the primary element that defines an <span class="fixedwidth">origin.xml</span> file and is the container for every other element and must appear once and only once.  For most deployments, all the <span class="fixedwidth">xmlns</span> attributes, which specify the handlers for different aspects of origin operation, should remain unchanged.  The mandatory attributes must be changed before operating the origin.</p>
+<ul>
+<li class="mandatory"><span class="fixedwidth">defaultRelyingParty</span>: This specifies the relying party to use for a request when no <a href="#confRelyingParty"><span class="fixedwidth">RelyingParty</span></a> element's <span class="fixedwidth">name</span> attribute matches the policy URN of an incoming request.  Typically, this will be populated with the URN of a federation.</li>
+<li class="mandatory"><span class="fixedwidth">providerID</span>: The origin uses this unique name to identify assertions it issues.  This will usually be assigned by a federation.</li>
+<li><span class="fixedwidth">AAUrl</span> specifies the URL where the AA for this HS resides, which must be consistent with how it is defined in Tomcat.  Note that this <b>must</b> be an <span class="fixedwidth">https://</span> URL in order for the AA to know which SHAR is requesting attributes for ARP purposes.</li>
+<li><span class="fixedwidth">authHeaderName</span>: If authentication methods are passed to the HS using an HTTP header variable other than the default, <span class="fixedwidth">SAMLAuthenticationMethod</span>, the name of the variable may be specified here.</li>
+<li><span class="fixedwidth">defaultAuthMethod</span>: This specifies the authentication method that will be assumed if none is passed through and there is no overriding <span class="fixedwidth">defaultAuthMethod</span> specified for this target using a <a href="#confRelyingParty"><span class="fixedwidth">RelyingParty</span></a> element.  If neither this element nor the matching <a href="#confRelyingParty"><span class="fixedwidth">RelyingParty</span></a> element contains this attribute, a value of <span class="fixedwidth">urn:oasis:names:tc:SAML:1.0:am:unspecified</span> will be used for <span class="fixedwidth">authenticationMethod</span>.  Some common 
         authentication methods and corresponding URI&#39;s are listed below; for a 
         complete list, please consult section 7.1 of the SAML 1.1 core 
-        specifications or your federation&#39;s guidelines.<table border="2" cellpadding="0" cellspacing="0">
+        specifications or your federation&#39;s guidelines.
+        <table border="2" cellpadding="0" cellspacing="0">
             <tr>
                 <td><span class="fixedwidth">
                 urn:oasis:names:tc:SAML:1.0:am:password</span></td>
@@ -1093,186 +1142,19 @@ configuration</h4>
                 authentication such as SPKI and XKMS are also assigned URN&#39;s in 
                 the SAML specs.</td>
             </tr>
-        </table>
-        </dd>
-    </dl>
-    <p><br>
-    </p>
-    <p>Assertion Signing:</p>
-    <dl>
-        <dd class="attributelong"><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.hs.HandleServlet.keyStorePath = 
-        &lt;pathname&gt;</span> </dd>
-        <dd class="value">Specifies the location of the Java keystore containing 
-        the x.509 certificate and matching private key to be used by the HS.</dd>
-        <dd class="attributelong"><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.hs.HandleServlet.keyStorePassword = 
-        &lt;password&gt;</span> </dd>
-        <dd class="value">Specifies the password to the referenced keystore.</dd>
-        <dd class="attributelong"><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.hs.HandleServlet.keyStoreKeyAlias = 
-        &lt;alias&gt;</span> </dd>
-        <dd class="value">Specifies the alias used for accessing the private 
-        key.</dd>
-        <dd class="attributelong"><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.hs.HandleServlet.keyStoreKeyPassword 
-        = &lt;password&gt;</span> </dd>
-        <dd class="value">Specifies the password used to retrieve the private 
-        key.</dd>
-        <dd class="attributeoptlong"><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.hs.HandleServlet.certAlias = &lt;alias&gt;</span>
-        </dd>
-        <dd class="valueopt">Specifies the alias for the certificate 
-        corresponding to the private key used by the HS. Defaults to the private 
-        key&#39;s alias.</dd>
-    </dl>
-    <p><br>
-    </p>
-    <p>General AA Configuration:</p>
-    <dl>
-        <dd class="attributelong"><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.aa.AAServlet.authorityName = &lt;domain 
-        name&gt;</span> </dd>
-        <dd class="value">Specifies the name of the AA, which is typically the 
-        domain name of the server running it.</dd>
-        <dd class="attributelong"><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.aa.AAServlet.passThruErrors = 
-        &lt;true/false&gt;</span> </dd>
-        <dd class="value">Specifies whether the AA should pass on internal 
-        errors to the SHAR for debugging purposes. Defaults to
-        <span class="fixedwidth">false</span>.</dd>
-    </dl>
-    <p>AA Attribute Resolution:</p>
-    <dl>
-        <dd class="attributelong"><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.aa.attrresolv.AttributeResolver.ResolverConfig 
-        = &lt;pathname&gt;</span> </dd>
-        <dd class="value">Specifies the location of the configuration file for 
-        the resolver the AA uses to build attributes. Defaults to
-        <span class="fixedwidth">/conf/resolver.xml</span>. For information on 
-        how to configure and use the attribute resolver, consult section
-        <a href="4.e.">4.e</a>.</dd>
-    </dl>
-    <p>ARP Configuration:</p>
-    <dl>
-        <dd class="attributelong"><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.aa.arp.ArpRepository.implementation 
-        = &lt;string&gt;</span> </dd>
-        <dd class="value">References the type of ARP repository implemented. 
-        Shibboleth provides a built-in ARP repository specified by
-        <span class="fixedwidth">edu.internet2.middleware.shibboleth.aa.arp. 
-        provider.FileSystemArpRepository</span>.<p>Note that the set of 
-        principals that an ARP applies to is not expressed by the ARP itself, 
-        but rather the implementation of the ARP repository. For example, if the 
-        ARP repository were implemented in LDAP, the ARP&#39;s that apply to a user 
-        would be attributes of that user&#39;s personal LDAP entry, and the site ARP 
-        would be an attribute of an entry representing the site. While not 
-        performed by the built-in ARP repository, a repository implementation 
-        might also implement group ARP&#39;s; for example, in an LDAP directory, the 
-        user entry might have some group membership attributes that refer to 
-        group entries, and those group entries would have ARP attributes, and 
-        all those ARP&#39;s would be applicable.</dd>
-        <dd class="attributelong"><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.aa.arp.provider.FileSystemArpRepository.Path 
-        = &lt;pathname&gt;</span> </dd>
-        <dd class="value">Specifies the relative or absolute path to the folder 
-        containing the ARP files.</dd>
-        <dd class="attributeoptlong"><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.aa.arp.provider.FileSystemArpRepository.ArpTTL 
-        = &lt;seconds&gt;</span> </dd>
-        <dd class="valueopt">Specifies the duration in <span class="fixedwidth">
-        seconds</span> that ARP&#39;s may be cached by the AA. Defaults to
-        <span class="fixedwidth">0</span>, or no caching.</dd>
-    </dl>
-    <p>Handle Repository Configuration:</p>
-    <dl>
-        <dd class="attributeoptlong"><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.hs.HandleRepository.implementation = 
-        &lt;string&gt;</span> </dd>
-        <dd class="valueopt">Specifies the method by which the HS and AA share 
-        handles. These are by default passed by memory(which can be specified 
-        explicitly using <span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.hs.provider. MemoryHandleRepository</span>), 
-        and may also be passed using symmetric encryption with
-        <span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.hs.provider.CryptoHandleRepository</span>.</dd>
-    </dl>
-    <p>edu.internet2.middleware.shibboleth.hs.provider. MemoryHandleRepository
-    <font color="#5555EE">(specify if <span class="fixedwidth">
-    edu.internet2.middleware.shibboleth.hs.HandleRepository. implementation</span> 
-    is <span class="fixedwidth">MemoryHandleRepository</span>)</font></p>
-    <blockquote>
-        <dl>
-            <dd class="attributeoptlong"><span class="fixedwidth">
-            edu.internet2.middleware.shibboleth.hs.BaseHandleRepository.handleTTL 
-            = &lt;seconds&gt;</span> </dd>
-            <dd class="valueopt">Specifies the time in <span class="fixedwidth">
-            seconds</span> for which issued handles are valid. Defaults to
-            <span class="fixedwidth">1800</span>, or 30 minutes. The time should 
-            be long enough to allow for clock skew and short enough to protect 
-            against various attacks. Consult your federation guidelines for 
-            further advice.</dd>
-        </dl>
-    </blockquote>
-    <p>edu.internet2.middleware.shibboleth.hs.provider.CryptoHandleRepository
-    <font color="#5555EE">(specify if <span class="fixedwidth">
-    edu.internet2.middleware.shibboleth.hs.HandleRepository. implementation</span> 
-    is <span class="fixedwidth">CryptoHandleRepository</span>)</font></p>
-    <p>In order to use the crypto repository implementation, you must have a
-    <span class="fixedwidth">DESede</span> secret key in a keystore of type
-    <span class="fixedwidth">JCEKS</span>. The origin distribution includes a 
-    program that will automatically generate such a key. In order to invoke it, 
-    run <span class="fixedwidth">./ant genSecret</span>, which will create a 
-    keystore in <span class="fixedwidth">$SHIB_HOME/src/conf/handle.jks</span> 
-    that includes the key, with an alias of <span class="fixedwidth">handleKey</span> 
-    and a password of <span class="fixedwidth">shibhs</span>. If
-    <span class="fixedwidth">./ant dist</span> is run subsequently, this 
-    keystore will be included in the webapp archive that is created.</p>
-    <blockquote>
-        <dl>
-            <dd class="attributelong"><span class="fixedwidth">
-            edu.internet2.middleware.shibboleth.hs.provider.CryptoHandleRepository.keyStorePath 
-            = &lt;pathname&gt;</span> </dd>
-            <dd class="value">Specifies the path to the keystore containing the 
-            key used to encrypt passed principal identifiers.</dd>
-            <dd class="attributelong"><span class="fixedwidth">
-            edu.internet2.middleware.shibboleth.hs.provider.CryptoHandleRepository.keyStorePassword 
-            = &lt;password&gt;</span> </dd>
-            <dd class="value">Specifies the password for the keystore.</dd>
-            <dd class="attributelong"><span class="fixedwidth">
-            edu.internet2.middleware.shibboleth.hs.provider.CryptoHandleRepository.keyStoreKeyAlias 
-            = &lt;password&gt;</span> </dd>
-            <dd class="value">Specifies the alias for the appropriate encryption 
-            key within the keystore.</dd>
-            <dd class="attributelong"><span class="fixedwidth">
-            edu.internet2.middleware.shibboleth.hs.provider.CryptoHandleRepository.keyStoreKeyPassword 
-            = &lt;password&gt;</span> </dd>
-            <dd class="valueopt">Specifies the password used to retrieve the 
-            key.</dd>
-            <dd class="attributeoptlong"><span class="fixedwidth">
-            edu.internet2.middleware.shibboleth.hs.CryptoHandleRepository.handleTTL 
-            = &lt;seconds&gt;</span> </dd>
-            <dd class="valueopt">Specifies the time in <span class="fixedwidth">
-            seconds</span> for which issued handles are valid. Defaults to
-            <span class="fixedwidth">1800</span>, or 30 minutes. The time should 
-            be long enough to allow for clock skew and short enough to protect 
-            against various attacks. Consult your federation guidelines for 
-            further advice.</dd>
-        </dl>
-    </blockquote>
-    <p>Federation Configuration:</p>
-    <dl>
-        <dd class="attributelong"><span class="fixedwidth">
-        edu.internet2.middleware.shibboleth.audiences = &lt;URI&#39;s&gt;</span> </dd>
-        <dd class="value">Specifies a list of <span class="fixedwidth">URI</span>&#39;s 
-        that will be used for the <span class="fixedwidth">Audience</span> field 
-        of the SAML attribute assertion. All URI&#39;s listed will be sent with any 
-        assertion issued by the AA. These URI&#39;s are defined and provided by and 
-        correspond to federations.<p>Note that the values of the URI&#39;s here <b>
-        must</b> match one of the policy URI&#39;s accepted by the receiving target 
-        in the <span class="fixedwidth">[policies]</span> section of
-        <span class="fixedwidth">shibboleth.ini</span> or interoperation will 
-        fail by design. </dd>
+        </table></li>
+<li><span class="fixedwidth">maxHSThreads</span>: This attribute places a limit on the number of threads the handle service will spawn and may be useful for limiting the load of signing and other operations and improving performance.</li>
+<li><span class="fixedwidth">passThruErrors</span>: This boolean attribute determines whether the origin will relay errors in flows to the target for use in displaying these errors to the browser in the case of an unsuccessful transaction.</li>
+<li><span class="fixedwidth">resolverConfig</span> specifies the location of the configuration file for the resolver the AA uses to build attributes and if unspecified defaults to <span class="fixedwidth">/conf/resolver.xml</span>. For information on how to configure and use the attribute resolver, consult section <a href="4.e.">4.e</a>.</li>
+</ul>
+</dd>
+
+        <dd class="attributelong"><a name="confStorePassword"><span class="fixedwidth">&lt;StorePassword&gt;<i>string</i>&lt;/StorePassword&gt;</span></dd>
+        <dd class="value">Specifies the password for the keystore.  Contained by the <a href="#confKeyStoreResolver"><span class="fixedwidth">KeyStoreResolver</span></a> element.</dd>
+
+        <dd class="attributelong"><a name="confTransactionLog"><span class="fixedwidth">&lt;TransactionLog location=&quot;<i>URL</i>&quot;&gt;</span></dd>
+        <dd class="value">Paired with an <a href="#confErrorLog"><span class="fixedwidth">ErrorLog</span></a> element, this will log all transactions that the origin is involved in.  The information in this file is sensitive and may be useful for auditing and security purposes.  Must be contained by a <a href="#confLogging"><span class="fixedwidth">Logging</span></a> element.</dd>
+
     </dl>
 </blockquote>
 <p><br>