Create a NIEF Attribute Registry
About
Shibboleth 4 has a concept of Attribute Definitions distinct from Resolution and Filtering. We should generate a conformant XML version representing the NIEF Bundles.
Sample
Here is a template that should be used to generate:
<bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">eduPersonOrcid</prop> <prop key="transcoder">SAML2StringTranscoder SAML1StringTranscoder</prop> <prop key="saml2.name">urn:oid:1.3.6.1.4.1.5923.1.1.1.16</prop> <prop key="saml1.name">urn:oid:1.3.6.1.4.1.5923.1.1.1.16</prop> <prop key="displayName.en">ORCID</prop> <prop key="description.en">ORCID researcher identifier(s) belonging to a person.</prop> </props> </property> </bean>
Template
<bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">InternalAttributeName</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:2.0:user:blah</prop> <prop key="displayName.en">Attribute Name</prop> <prop key="description.en">Attribute Definition.</prop> </props> </property> </bean>
NIEF File
<bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefEmail</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:EmailAddressText</prop> <prop key="displayName.en">Email Address Text</prop> <prop key="description.en">Email Address Text</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefEmployer</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:EmployerName</prop> <prop key="displayName.en">Employer Name</prop> <prop key="description.en">Employer Name</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefFedId</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:FederationId</prop> <prop key="displayName.en">Federation Id</prop> <prop key="description.en">Federation Id</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefGivenName</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:GivenName</prop> <prop key="displayName.en">Given Name</prop> <prop key="description.en">Given Name</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefIdentityProviderId</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:IdentityProviderId</prop> <prop key="displayName.en">Identity Provider Id</prop> <prop key="description.en">Identity Provider Id</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefSurName</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:SurName</prop> <prop key="displayName.en">Sur Name</prop> <prop key="description.en">Sur Name</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefTelephoneNumber</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:TelephoneNumber</prop> <prop key="displayName.en">Telephone Number</prop> <prop key="description.en">Telephone Number</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefIdentityProviderId</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">nief:user:1.0:IdentityProviderId</prop> <prop key="displayName.en">Identity Provider Id</prop> <prop key="description.en">Identity Provider Id</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefUniqueSubjectId</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">nief:user:1.0:UniqueSubjectId</prop> <prop key="displayName.en">Unique Subject Id</prop> <prop key="description.en">Unique Subject Id</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">nief28CFR</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:28CFRCertificationIndicator</prop> <prop key="displayName.en">28 CFR Certification Indicator</prop> <prop key="description.en">28 CFR Certification Indicator</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefElectronicAuthenticationAssuranceLevelCode</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.2.0:ElectronicAuthenticationAssuranceLevelCode</prop> <prop key="displayName.en">Electronic Authentication Assurance Level Code</prop> <prop key="description.en">Electronic Authentication Assurance Level Code</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefORI</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:EmployerORI</prop> <prop key="displayName.en">Employer ORI</prop> <prop key="description.en">Employer ORI</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefEmployerOrganizationGeneralCategoryCode</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:EmployerOrganizationGeneralCategoryCode</prop> <prop key="displayName.en">Employer Organization General Category Code</prop> <prop key="description.en">Employer Organization General Category Code</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefEmployerStateCode</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:EmployerStateCode</prop> <prop key="displayName.en">Employer State Code</prop> <prop key="description.en">Employer State Code</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefIdentityProofingAssuranceLevelCode</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:IdentityProofingAssuranceLevelCode</prop> <prop key="displayName.en">Identity Proofing Assurance Level Code</prop> <prop key="description.en">Identity Proofing Assurance Level Code</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefPSO</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:PublicSafetyOfficerIndicator</prop> <prop key="displayName.en">Public Safety Officer Indicator</prop> <prop key="description.en">Public Safety Officer Indicator</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefSLEO</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:SwornLawEnforcementOfficerIndicator</prop> <prop key="displayName.en">Sworn Law Enforcement Officer Indicator</prop> <prop key="description.en">Sworn Law Enforcement Officer Indicator</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefAAL</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">nief:user:1.0:AuthenticatorAssuranceLevel</prop> <prop key="displayName.en">Authenticator Assurance Level</prop> <prop key="description.en">Authenticator Assurance Level</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefFAL</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">nief:user:1.0:FederationAssuranceLevel</prop> <prop key="displayName.en">Federation Assurance Level</prop> <prop key="description.en">Federation Assurance Level</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefIAL</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">nief:user:1.0:IdentityAssuranceLevel</prop> <prop key="displayName.en">Identity Assurance Level</prop> <prop key="description.en">Identity Assurance Level</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefIntelligenceAnalystIndicator</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">nief:user:1.0:IntelligenceAnalystIndicator</prop> <prop key="displayName.en">Intelligence Analyst Indicator</prop> <prop key="description.en">Intelligence Analyst Indicator</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefCounterTerrorismDataSelfSearchHomePrivilegeIndicator</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:CounterTerrorismDataSelfSearchHomePrivilegeIndicator</prop> <prop key="displayName.en">Counter Terrorism Data Self Search Home Privilege Indicator</prop> <prop key="description.en">Counter Terrorism Data Self Search Home Privilege Indicator</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefCriminalHistoryDataSelfSearchHomePrivilegeIndicator</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:CriminalHistoryDataSelfSearchHomePrivilegeIndicator</prop> <prop key="displayName.en">Criminal History Data Self Search Home Privilege Indicator</prop> <prop key="description.en">Criminal History Data Self Search Home Privilege Indicator</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefCriminalIntelligenceDataSelfSearchHomePrivilegeIndicator</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:CriminalIntelligenceDataSelfSearchHomePrivilegeIndicator</prop> <prop key="displayName.en">Criminal Intelligence Data Self Search Home Privilege Indicator</prop> <prop key="description.en">Criminal Intelligence Data Self Search Home Privilege Indicator</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefCriminalInvestigativeDataSelfSearchHomePrivilegeIndicator</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:CriminalInvestigativeDataSelfSearchHomePrivilegeIndicator</prop> <prop key="displayName.en">Criminal Investigative Data Self Search Home Privilege Indicator</prop> <prop key="description.en">Criminal Investigative Data Self Search Home Privilege Indicator</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefDisplayName</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:DisplayName</prop> <prop key="displayName.en">Display Name</prop> <prop key="description.en">Display Name</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefGovernmentDataSelfSearchHomePrivilegeIndicator</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:GovernmentDataSelfSearchHomePrivilegeIndicator</prop> <prop key="displayName.en">Government Data Self Search Home Privilege Indicator</prop> <prop key="description.en">Government Data Self Search Home Privilege Indicator</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefLocalId</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:LocalId</prop> <prop key="displayName.en">Local Id</prop> <prop key="description.en">Local Id</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefNCICCertificationIndicator</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:NCICCertificationIndicator</prop> <prop key="displayName.en">NCIC Certification Indicator</prop> <prop key="description.en">NCIC Certification Indicator</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefNDExPrivilegeIndicator</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:NDExPrivilegeIndicator</prop> <prop key="displayName.en">NDEx Privilege Indicator</prop> <prop key="description.en">NDEx Privilege Indicator</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefPCIICertificationIndicator</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">gfipm:user:2.0:PCIICertificationIndicator</prop> <prop key="displayName.en">PCII Certification Indicator</prop> <prop key="description.en">PCII Certification Indicator</prop> </props> </property> </bean> <bean parent="shibboleth.TranscodingProperties"> <property name="properties"> <props merge="true"> <prop key="id">niefFICAMAssuranceLevelCode</prop> <prop key="transcoder">SAML2StringTranscoder</prop> <prop key="saml2.name">nief:user:1.0:FICAMAssuranceLevelCode</prop> <prop key="displayName.en">FICAM Assurance Level Code</prop> <prop key="description.en">FICAM Assurance Level Code</prop> </props> </property> </bean>