[java-identity-provider] branch main updated: IDP-1899 - Add default rules for schacHomeOrganization to config.

Scott Cantor cantor.2 at osu.edu
Tue Jan 25 20:43:13 UTC 2022


This is an automated email from the git hooks/post-receive script.

scantor pushed a commit to branch main
in repository java-identity-provider.

View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=9610fc93b9cc6dc245a3eafcf911ba8611fda413

The following commit(s) were added to refs/heads/main by this push:
     new 9610fc93b IDP-1899 - Add default rules for schacHomeOrganization to config.
9610fc93b is described below

commit 9610fc93b9cc6dc245a3eafcf911ba8611fda413
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue Jan 25 15:43:10 2022 -0500

    IDP-1899 - Add default rules for schacHomeOrganization to config.
    
    https://shibboleth.atlassian.net/browse/IDP-1899
---
 .../src/main/resources/conf/attribute-filter.xml   |   8 +
 .../src/main/resources/conf/attribute-resolver.xml |   5 +-
 .../resources/conf/attributes/default-rules.xml    |   1 +
 .../src/main/resources/conf/attributes/schac.xml   | 230 +++++++++++++++++++++
 .../src/test/resources/conf/attribute-filter.xml   |   7 +
 .../src/test/resources/conf/attribute-resolver.xml |   5 +-
 .../resources/conf/attributes/default-rules.xml    |   3 +-
 7 files changed, 256 insertions(+), 3 deletions(-)

diff --git a/idp-conf/src/main/resources/conf/attribute-filter.xml b/idp-conf/src/main/resources/conf/attribute-filter.xml
index 7787d0c53..c2bf890ec 100644
--- a/idp-conf/src/main/resources/conf/attribute-filter.xml
+++ b/idp-conf/src/main/resources/conf/attribute-filter.xml
@@ -14,6 +14,14 @@
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="urn:mace:shibboleth:2.0:afp http://shibboleth.net/schema/idp/shibboleth-afp.xsd">
 
+
+    <!-- Release home org signifier to everybody. -->
+    <AttributeFilterPolicy id="alwaysRelease">
+        <PolicyRequirementRule xsi:type="ANY" />
+        
+        <AttributeRule attributeID="schacHomeOrganization" permitAny="true" />
+    </AttributeFilterPolicy>
+
     <!--
     Example rule relying on a locally applied tag in metadata to trigger attribute
     release of some specific attributes. Add additional attributes as desired.
diff --git a/idp-conf/src/main/resources/conf/attribute-resolver.xml b/idp-conf/src/main/resources/conf/attribute-resolver.xml
index 8d16a59b9..dd5545fee 100644
--- a/idp-conf/src/main/resources/conf/attribute-resolver.xml
+++ b/idp-conf/src/main/resources/conf/attribute-resolver.xml
@@ -66,7 +66,10 @@ list of possible components and their options.
     <!--      Data Connectors                       -->
     <!-- ========================================== -->
 
-    <DataConnector id="staticAttributes" xsi:type="Static">
+    <DataConnector id="staticAttributes" xsi:type="Static" exportAttributes="schacHomeOrganization">
+        <Attribute id="schacHomeOrganization">
+            <Value>%{idp.scope}</Value>
+        </Attribute>
         <Attribute id="affiliation">
             <Value>member</Value>
         </Attribute>
diff --git a/idp-conf/src/main/resources/conf/attributes/default-rules.xml b/idp-conf/src/main/resources/conf/attributes/default-rules.xml
index c865157ee..db8f1a1ee 100644
--- a/idp-conf/src/main/resources/conf/attributes/default-rules.xml
+++ b/idp-conf/src/main/resources/conf/attributes/default-rules.xml
@@ -23,6 +23,7 @@
     <import resource="inetOrgPerson.xml" />
     <import resource="eduPerson.xml" />
     <import resource="eduCourse.xml" />
+    <import resource="schac.xml" />
     <import resource="samlSubject.xml" />
 
 </beans>
diff --git a/idp-conf/src/main/resources/conf/attributes/schac.xml b/idp-conf/src/main/resources/conf/attributes/schac.xml
new file mode 100644
index 000000000..24c9a5a42
--- /dev/null
+++ b/idp-conf/src/main/resources/conf/attributes/schac.xml
@@ -0,0 +1,230 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:context="http://www.springframework.org/schema/context"
+       xmlns:util="http://www.springframework.org/schema/util"
+       xmlns:p="http://www.springframework.org/schema/p"
+       xmlns:c="http://www.springframework.org/schema/c"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
+
+       default-init-method="initialize"
+       default-destroy-method="destroy">
+
+    <bean parent="shibboleth.TranscodingRuleLoader">
+    <constructor-arg>
+    <list>
+         <bean parent="shibboleth.TranscodingProperties">
+            <property name="properties">
+                <props merge="true">
+                    <prop key="id">schacMotherTongue</prop>
+                    <prop key="transcoder">SAML2StringTranscoder</prop>
+                    <prop key="saml2.name">urn:oid:1.3.6.1.4.1.25178.1.2.1</prop>
+                    <prop key="saml1.name">urn:oid:1.3.6.1.4.1.25178.1.2.1</prop>
+                    <prop key="displayName.en">Mother Tongue</prop>
+                </props>
+            </property>
+        </bean>
+
+         <bean parent="shibboleth.TranscodingProperties">
+            <property name="properties">
+                <props merge="true">
+                    <prop key="id">schacGender</prop>
+                    <prop key="transcoder">SAML2StringTranscoder</prop>
+                    <prop key="saml2.name">urn:oid:1.3.6.1.4.1.25178.1.2.2</prop>
+                    <prop key="saml1.name">urn:oid:1.3.6.1.4.1.25178.1.2.2</prop>
+                    <prop key="displayName.en">Gender</prop>
+                </props>
+            </property>
+        </bean>
+
+         <bean parent="shibboleth.TranscodingProperties">
+            <property name="properties">
+                <props merge="true">
+                    <prop key="id">schacDateOfBirth</prop>
+                    <prop key="transcoder">SAML2StringTranscoder</prop>
+                    <prop key="saml2.name">urn:oid:1.3.6.1.4.1.25178.1.2.3</prop>
+                    <prop key="saml1.name">urn:oid:1.3.6.1.4.1.25178.1.2.3</prop>
+                    <prop key="displayName.en">Date or Birth</prop>
+                </props>
+            </property>
+        </bean>
+
+        <bean parent="shibboleth.TranscodingProperties">
+            <property name="properties">
+                <props merge="true">
+                    <prop key="id">schacPlaceOfBirth</prop>
+                    <prop key="transcoder">SAML2StringTranscoder</prop>
+                    <prop key="saml2.name">urn:oid:1.3.6.1.4.1.25178.1.2.4</prop>
+                    <prop key="saml1.name">urn:oid:1.3.6.1.4.1.25178.1.2.4</prop>
+                    <prop key="displayName.en">Place of Birth</prop>
+                </props>
+            </property>
+        </bean>
+
+        <bean parent="shibboleth.TranscodingProperties">
+            <property name="properties">
+                <props merge="true">
+                    <prop key="id">schacCountryOfCitizenship</prop>
+                    <prop key="transcoder">SAML2StringTranscoder</prop>
+                    <prop key="saml2.name">urn:oid:1.3.6.1.4.1.25178.1.2.5</prop>
+                    <prop key="saml1.name">urn:oid:1.3.6.1.4.1.25178.1.2.5</prop>
+                    <prop key="displayName.en">Country of Citizenship</prop>
+                </props>
+            </property>
+        </bean>
+
+        <bean parent="shibboleth.TranscodingProperties">
+            <property name="properties">
+                <props merge="true">
+                    <prop key="id">schacHomeOrganization</prop>
+                    <prop key="transcoder">SAML2StringTranscoder</prop>
+                    <prop key="saml2.name">urn:oid:1.3.6.1.4.1.25178.1.2.9</prop>
+                    <prop key="saml1.name">urn:oid:1.3.6.1.4.1.25178.1.2.9</prop>
+                    <prop key="displayName.en">Home Organization</prop>
+                    <prop key="displayName.fi">Kotiorganisaatio</prop>
+                    <prop key="displayDescription.en">The domain name of the person's home organisation</prop>
+                    <prop key="displayDescription.fi">Henkilön kotiorganisaation domain-nimi</prop>
+                </props>
+            </property>
+        </bean>
+
+        <bean parent="shibboleth.TranscodingProperties">
+            <property name="properties">
+                <props merge="true">
+                    <prop key="id">schacHomeOrganizationType</prop>
+                    <prop key="transcoder">SAML2StringTranscoder</prop>
+                    <prop key="saml2.name">urn:oid:1.3.6.1.4.1.25178.1.2.10</prop>
+                    <prop key="saml1.name">urn:oid:1.3.6.1.4.1.25178.1.2.10</prop>
+                    <prop key="displayName.en">Home organization type</prop>
+                    <prop key="displayName.fi">Kotiorganisaation tyyppi</prop>
+                    <prop key="displayDescription.en">Home organisation type: university, polytechnic, etc</prop>
+                    <prop key="displayDescription.fi">Kotiorganisaation tyyppi: yliopisto, ammattikorkeakoulu jne</prop>
+                </props>
+            </property>
+        </bean>
+
+         <bean parent="shibboleth.TranscodingProperties">
+            <property name="properties">
+                <props merge="true">
+                    <prop key="id">schacCountryOfResidence</prop>
+                    <prop key="transcoder">SAML2StringTranscoder</prop>
+                    <prop key="saml2.name">urn:oid:1.3.6.1.4.1.25178.1.2.11</prop>
+                    <prop key="saml1.name">urn:oid:1.3.6.1.4.1.25178.1.2.11</prop>
+                    <prop key="displayName.en">Country of Reseidence</prop>
+                </props>
+            </property>
+        </bean>
+
+         <bean parent="shibboleth.TranscodingProperties">
+            <property name="properties">
+                <props merge="true">
+                    <prop key="id">schacUserPresenceID</prop>
+                    <prop key="transcoder">SAML2StringTranscoder</prop>
+                    <prop key="saml2.name">urn:oid:1.3.6.1.4.1.25178.1.2.12</prop>
+                    <prop key="saml1.name">urn:oid:1.3.6.1.4.1.25178.1.2.12</prop>
+                    <prop key="displayName.en">User Presence ID</prop>
+                </props>
+            </property>
+        </bean>
+
+         <bean parent="shibboleth.TranscodingProperties">
+            <property name="properties">
+                <props merge="true">
+                    <prop key="id">schacPersonalPosition</prop>
+                    <prop key="transcoder">SAML2StringTranscoder</prop>
+                    <prop key="saml2.name">urn:oid:1.3.6.1.4.1.25178.1.2.13</prop>
+                    <prop key="saml1.name">urn:oid:1.3.6.1.4.1.25178.1.2.13</prop>
+                    <prop key="displayName.en">Personal Position</prop>
+                </props>
+            </property>
+        </bean>
+
+        <bean parent="shibboleth.TranscodingProperties">
+            <property name="properties">
+                <props merge="true">
+                    <prop key="id">schacPersonalUniqueCode</prop>
+                    <prop key="transcoder">SAML2StringTranscoder</prop>
+                    <prop key="saml2.name">urn:oid:1.3.6.1.4.1.25178.1.2.14</prop>
+                    <prop key="saml1.name">urn:oid:1.3.6.1.4.1.25178.1.2.14</prop>
+                    <prop key="displayName.en">Personal Unique Code</prop>
+                </props>
+            </property>
+        </bean>
+
+	<bean parent="shibboleth.TranscodingProperties">
+            <property name="properties">
+                <props merge="true">
+                    <prop key="id">schacPersonalUniqueID</prop>
+                    <prop key="transcoder">SAML2StringTranscoder</prop>
+                    <prop key="saml2.name">urn:oid:1.3.6.1.4.1.25178.1.2.15</prop>
+                    <prop key="saml1.name">urn:oid:1.3.6.1.4.1.25178.1.2.15</prop>
+                    <prop key="displayName.en">Personal Unique ID</prop>
+                </props>
+            </property>
+        </bean>
+
+        <bean parent="shibboleth.TranscodingProperties">
+            <property name="properties">
+                <props merge="true">
+                    <prop key="id">schacExpiryDate</prop>
+                    <prop key="transcoder">SAML2StringTranscoder</prop>
+                    <prop key="saml2.name">urn:oid:1.3.6.1.4.1.25178.1.2.17</prop>
+                    <prop key="saml1.name">urn:oid:1.3.6.1.4.1.25178.1.2.17</prop>
+                    <prop key="displayName.en">Expiry Date</prop>
+                </props>
+            </property>
+        </bean>
+
+        <bean parent="shibboleth.TranscodingProperties">
+            <property name="properties">
+                <props merge="true">
+                    <prop key="id">schacUserPrivateAttribute</prop>
+                    <prop key="transcoder">SAML2StringTranscoder</prop>
+                    <prop key="saml2.name">urn:oid:1.3.6.1.4.1.25178.1.2.18</prop>
+                    <prop key="saml1.name">urn:oid:1.3.6.1.4.1.25178.1.2.18</prop>
+                    <prop key="displayName.en">User Private Attribute</prop>
+                </props>
+            </property>
+        </bean>
+
+        <bean parent="shibboleth.TranscodingProperties">
+            <property name="properties">
+                <props merge="true">
+                    <prop key="id">schacUserStatus</prop>
+                    <prop key="transcoder">SAML2StringTranscoder</prop>
+                    <prop key="saml2.name">urn:oid:1.3.6.1.4.1.25178.1.2.19</prop>
+                    <prop key="saml1.name">urn:oid:1.3.6.1.4.1.25178.1.2.19</prop>
+                    <prop key="displayName.en">User Status</prop>
+                </props>
+            </property>
+        </bean>
+
+        <bean parent="shibboleth.TranscodingProperties">
+            <property name="properties">
+                <props merge="true">
+                    <prop key="id">schacProjectMembership</prop>
+                    <prop key="transcoder">SAML2StringTranscoder</prop>
+                    <prop key="saml2.name">urn:oid:1.3.6.1.4.1.25178.1.2.20</prop>
+                    <prop key="saml1.name">urn:oid:1.3.6.1.4.1.25178.1.2.20</prop>
+                    <prop key="displayName.en">Project Membership</prop>
+                </props>
+            </property>
+        </bean>
+
+        <bean parent="shibboleth.TranscodingProperties">
+            <property name="properties">
+                <props merge="true">
+                    <prop key="id">schacProjectSpecificRole</prop>
+                    <prop key="transcoder">SAML2StringTranscoder</prop>
+                    <prop key="saml2.name">urn:oid:1.3.6.1.4.1.25178.1.2.21</prop>
+                    <prop key="saml1.name">urn:oid:1.3.6.1.4.1.25178.1.2.21</prop>
+                    <prop key="displayName.en">Project Specific Role</prop>
+                </props>
+            </property>
+        </bean>
+    </list>
+    </constructor-arg>
+    </bean>
+</beans>
diff --git a/idp-conf/src/test/resources/conf/attribute-filter.xml b/idp-conf/src/test/resources/conf/attribute-filter.xml
index 2ae3b0dc3..2cced080e 100644
--- a/idp-conf/src/test/resources/conf/attribute-filter.xml
+++ b/idp-conf/src/test/resources/conf/attribute-filter.xml
@@ -16,6 +16,13 @@
         xsi:schemaLocation="urn:mace:shibboleth:2.0:afp http://shibboleth.net/schema/idp/shibboleth-afp.xsd
                             urn:mace:shibboleth:2.0:afp:oidc http://shibboleth.net/schema/oidc/shibboleth-afp-oidc.xsd">
 
+    <!-- Release home org signifier to everybody. -->
+    <AttributeFilterPolicy id="alwaysRelease">
+        <PolicyRequirementRule xsi:type="ANY" />
+        
+        <AttributeRule attributeID="schacHomeOrganization" permitAny="true" />
+    </AttributeFilterPolicy>
+
     <!--
     Example rule relying on a locally applied tag in metadata to trigger attribute
     release of some specific attributes. Add additional attributes as desired.
diff --git a/idp-conf/src/test/resources/conf/attribute-resolver.xml b/idp-conf/src/test/resources/conf/attribute-resolver.xml
index 2f5496472..5b1fbdabc 100644
--- a/idp-conf/src/test/resources/conf/attribute-resolver.xml
+++ b/idp-conf/src/test/resources/conf/attribute-resolver.xml
@@ -97,7 +97,10 @@ list of possible components and their options.
     </DataConnector>
     -->
 
-    <DataConnector id="staticAttributes" xsi:type="Static">
+    <DataConnector id="staticAttributes" xsi:type="Static" exportAttributes="schacHomeOrganization">
+        <Attribute id="schacHomeOrganization">
+            <Value>%{idp.scope}</Value>
+        </Attribute>
         <Attribute id="affiliation">
             <Value>member</Value>
         </Attribute>
diff --git a/idp-conf/src/test/resources/conf/attributes/default-rules.xml b/idp-conf/src/test/resources/conf/attributes/default-rules.xml
index 7c6c1e916..4ac3f51e8 100644
--- a/idp-conf/src/test/resources/conf/attributes/default-rules.xml
+++ b/idp-conf/src/test/resources/conf/attributes/default-rules.xml
@@ -23,8 +23,9 @@
     <import resource="inetOrgPerson.xml" />
     <import resource="eduPerson.xml" />
     <import resource="eduCourse.xml" />
+    <import resource="schac.xml" />
     <import resource="samlSubject.xml" />
 
-<!--     <import resource="oidc-claim-rules.xml" /> -->
+    <import resource="oidc-claim-rules.xml" />
 
 </beans>

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list