72 lines
3.1 KiB
XML
72 lines
3.1 KiB
XML
|
<afp:AttributeFilterPolicyGroup
|
||
|
xmlns="urn:mace:shibboleth:2.0:afp:mf:basic"
|
||
|
xmlns:saml="urn:mace:shibboleth:2.0:afp:mf:saml"
|
||
|
xmlns:basic="urn:mace:shibboleth:2.0:afp:mf:basic"
|
||
|
xmlns:afp="urn:mace:shibboleth:2.0:afp"
|
||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||
|
|
||
|
<!-- Shared rule for affiliation values. -->
|
||
|
<afp:PermitValueRule id="eduPersonAffiliationValues" xsi:type="OR">
|
||
|
<Rule xsi:type="AttributeValueString" value="faculty"/>
|
||
|
<Rule xsi:type="AttributeValueString" value="student"/>
|
||
|
<Rule xsi:type="AttributeValueString" value="staff"/>
|
||
|
<Rule xsi:type="AttributeValueString" value="alum"/>
|
||
|
<Rule xsi:type="AttributeValueString" value="member"/>
|
||
|
<Rule xsi:type="AttributeValueString" value="affiliate"/>
|
||
|
<Rule xsi:type="AttributeValueString" value="employee"/>
|
||
|
<Rule xsi:type="AttributeValueString" value="library-walk-in"/>
|
||
|
</afp:PermitValueRule>
|
||
|
|
||
|
<!--
|
||
|
Shared rule for all "scoped" attributes, but you'll have to manually apply it inside
|
||
|
an AttributeRule for each attribute you want to check.
|
||
|
-->
|
||
|
<afp:PermitValueRule id="ScopingRules" xsi:type="basic:ANY"/>
|
||
|
<!-- # Hacked for Nikhef federation
|
||
|
<afp:PermitValueRule id="ScopingRules" xsi:type="AND">
|
||
|
<Rule xsi:type="NOT">
|
||
|
<Rule xsi:type="AttributeValueRegex" regex="@"/>
|
||
|
</Rule>
|
||
|
<Rule xsi:type="saml:AttributeScopeMatchesShibMDScope"/>
|
||
|
</afp:PermitValueRule>
|
||
|
-->
|
||
|
<afp:AttributeFilterPolicy>
|
||
|
<!-- This policy is in effect in all cases. -->
|
||
|
<afp:PolicyRequirementRule xsi:type="ANY"/>
|
||
|
|
||
|
<!-- Filter out undefined affiliations and ensure only one primary. -->
|
||
|
<afp:AttributeRule attributeID="affiliation">
|
||
|
<afp:PermitValueRule xsi:type="AND">
|
||
|
<RuleReference ref="eduPersonAffiliationValues"/>
|
||
|
<RuleReference ref="ScopingRules"/>
|
||
|
</afp:PermitValueRule>
|
||
|
</afp:AttributeRule>
|
||
|
<afp:AttributeRule attributeID="unscoped-affiliation">
|
||
|
<afp:PermitValueRuleReference ref="eduPersonAffiliationValues"/>
|
||
|
</afp:AttributeRule>
|
||
|
<afp:AttributeRule attributeID="primary-affiliation">
|
||
|
<afp:PermitValueRuleReference ref="eduPersonAffiliationValues"/>
|
||
|
</afp:AttributeRule>
|
||
|
|
||
|
<afp:AttributeRule attributeID="eppn">
|
||
|
<afp:PermitValueRuleReference ref="ScopingRules"/>
|
||
|
</afp:AttributeRule>
|
||
|
|
||
|
<afp:AttributeRule attributeID="targeted-id">
|
||
|
<afp:PermitValueRuleReference ref="ScopingRules"/>
|
||
|
</afp:AttributeRule>
|
||
|
|
||
|
<!-- Require NameQualifier/SPNameQualifier match IdP and SP entityID respectively. -->
|
||
|
<afp:AttributeRule attributeID="persistent-id">
|
||
|
<afp:PermitValueRule xsi:type="saml:NameIDQualifierString"/>
|
||
|
</afp:AttributeRule>
|
||
|
|
||
|
<!-- Catch-all that passes everything else through unmolested. -->
|
||
|
<afp:AttributeRule attributeID="*">
|
||
|
<afp:PermitValueRule xsi:type="ANY"/>
|
||
|
</afp:AttributeRule>
|
||
|
|
||
|
</afp:AttributeFilterPolicy>
|
||
|
|
||
|
</afp:AttributeFilterPolicyGroup>
|