Hi Indunil, On Tue, Feb 27, 2018 at 3:56 PM, Indunil Upeksha Rathnayake < [email protected]> wrote:
> Hi, > > eIDAS (electronic IDentification, Authentication and trust Services) is an > EU regulation on electronic identification and trust services for > electronic transactions in the internal market. The eIDAS interoperability > framework including its national entities (eIDAS-Connector and > eIDAS-Service) need to exchange messages including personal and technical > attributes to support cross-border identification and authentication > processes (Please refer [1] for more information). For the exchange of > messages, the use of the SAML 2.0 specifications has been agreed and there > are eIDAS compliant set of technical specifications in [2], which Member > States of EU to use to develop their own eIDAS-compliant implementation. > > > As per the "eIDAS SAML Message Format" specification, handling and > inclusion of attributes into exchanged messages is defined as follows. > > - Attributes MUST be requested as <eidas:RequestedAttributes> and > *<eidas:RequestedAttributes> > MUST be included in the <saml2p:Extensions> element of the SAML > AuthnRequest.* > > Ex: > > <saml2p:AuthnRequest xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" > xmlns:ds="http://www.w3.org/2000/09/xmldsig#" > *xmlns:eidas="http://eidas.europa.eu/saml-extensions > <http://eidas.europa.eu/saml-extensions>"* ...> > ............ > *<saml2p:Extensions>* > *<eidas:SPType>public</eidas:SPType>* > *<eidas:RequestedAttributes>* > <eidas:RequestedAttribute FriendlyName="D-2012-17-EUIdentifier" > > Name="http://eidas.europa.eu/attributes/legalperson/D-2012-17-EUIdentifier" > NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" > isRequired="false" /> > <eidas:RequestedAttribute FriendlyName="LegalPersonIdentifier" > > Name="http://eidas.europa.eu/attributes/legalperson/LegalPersonIdentifier" > NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" > isRequired="true" /> > </eidas:RequestedAttributes> > </saml2p:Extensions> > ............. > </saml2p:AuthnRequest> > > > - Apart from the attributes, for indicating whether an authentication > request is made by a private sector or public sector SP, the defined > element *<eidas:SPType> MUST be present* either in the <md:Extensions> > element of SAML metadata or in the <saml2p:Extensions> element of a > <saml2p:AuthnRequest>. > > > As per the SAML Core specification in [3], SAML Extensions is an optional > element in SAML 2.0, allowing arbitrary information to be passed to the > identity provider which are agreed on between the communicating parties. As > mentioned above, eIDAS attributes should be included within SAML extension > element. > > > Currently in IS, *SAML Extensions processing *has not taken into the > consideration. So that, in order to have eIDAS profile support for SAML, > that should be considered. Please find the following proposed > implementation. > > 1. *Register a set of SAML Extension Processors* - extensible > mechanism where we can include any extension processing > 2. *eIDAS Extension Processor *- specifically handled the eIDAS > extension > 3. *Invoke the processors when building the SAML assertion* > - Consider that all the necessary attributes are configured as the > SP requested claims > - In the eIDAS processor, filtering out the requested attributes based > on the "RequestedAttributes" elements in the authentication request > > +1 for the approach. But make sure we don't have to configure FQCN in files and make only one processor work at a given time. Processors should be picked dynamically based on the request. I think like the other processors we have, you can extend from AbtractIdentityHandler and do this via the HandlerManager we have in identity.core. One of the concerns I have is about "RequestedAttributes". We are assuming that the required attributes are configured for the service providers. This coordination is not possible between countries, unless they all agree on a standard set of attributes always, and there are too many service providers to do this. I think we need to fix this and have a way to dynamically request attributes without depending on the service provider configuration. OIDC also suffers from this same limitation. I think we need to fix this problem with this effort. Regards, Johann. > > - > > > Really appreciate your suggestions and comments. > > > [1] https://ec.europa.eu/cefdigital/wiki/display/CEFDIGITAL/How+ > does+it+work+-+eIDAS+solution > [2] https://ec.europa.eu/cefdigital/wiki/display/CEFDIGITAL/ > 2016/12/16/eIDAS+Technical+Specifications+v.+1.1 > [3] https://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf > > Thanks and Regards > > -- > Indunil Upeksha Rathnayake > Software Engineer | WSO2 Inc > Email [email protected] > Mobile 0772182255 > -- *Johann Dilantha Nallathamby* Senior Lead Solutions Engineer WSO2, Inc. lean.enterprise.middleware Mobile: *+94 77 7776950* LinkedIn: *http://www.linkedin.com/in/johann-nallathamby <http://www.linkedin.com/in/johann-nallathamby>* Medium: *https://medium.com/@johann_nallathamby <https://medium.com/@johann_nallathamby>* Twitter: *@dj_nallaa*
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
