EC-SEAL / request-manager

0 stars 0 forks source link

How to let the SP query a specific dataSet or link to the RM from a PDS #23

Open faragom opened 3 years ago

faragom commented 3 years ago

This spec proposal derives from this discussion , although it is quite different. We decided to postpone implementing this to a later stage.

Background

Considerations

storeEntry.id syntax

Proposed syntaxes:

urn:mace:project-seal.eu:id:link:{module_id}:{linkIssuer_id}:{firstIdentity}:{secondIdentity}
urn:mace:project-seal.eu:id:dataset:{module_id}:{identity_issuer}:{subject}

PDS search string syntax

Main syntax rules:

Syntax of the search string:

{source_id}|{mode}|{entry_id_prefix};{entry_id_prefix};{entry_id_prefix}

Search

Example:

storeEntry1.id -> 'urn:mace:project-seal.eu:id:dataset:eIDAS:ES:subjectIdentifier'
storeEntry2.id -> 'urn:mace:project-seal.eu:id:dataset:eIDAS:GR:subjectIdentifier'
search -> 'urn:mace:project-seal.eu:id:dataset:eIDAS'
result: [storeEntry1, storeEntry2]
storeEntry1.id -> 'urn:mace:project-seal.eu:id:dataset:eIDAS:ES:subjectIdentifier'
storeEntry2.id -> 'urn:mace:project-seal.eu:id:dataset:eIDAS:GR:subjectIdentifier'
search -> 'urn:mace:project-seal.eu:id:dataset:eIDAS:ES'
result: [storeEntry1]
storeEntry1.id -> 'urn:mace:project-seal.eu:id:dataset:eIDAS:ES:subjectIdentifier'
storeEntry2.id -> 'urn:mace:project-seal.eu:id:dataset:eIDAS:GR:subjectIdentifier'
search -> 'urn:mace:project-seal.eu:id:dataset:eIDAS:ES:subjectIdentifier'
result: [storeEntry1]
storeEntry1.id -> 'urn:mace:project-seal.eu:id:dataset:eIDAS:ES:subjectIdentifier'
storeEntry2.id -> 'urn:mace:project-seal.eu:id:dataset:eIDAS:GR:subjectIdentifier'
search -> 'urn:mace:project-seal.eu:id:dataset:eIDAS:*:subjectIdentifier'
result: [storeEntry1, storeEntry2]

Examples

Given all the above, here are examples of the incremental syntax we propose:

Requesting PDS source only (selector of objects will be shown):

spSource = "PDS"

Requesting PDS source and an eIDAS dataset (any eIDAS dataset from any country, with default behaviour):

spSource = "PDS||urn:mace:project-seal.eu:id:eIDAS"

Requesting PDS source and an spanish eIDAS dataset and asking for consent:

spSource = "PDS|consent|urn:mace:project-seal.eu:id:dataset:eIDAS:ES"

Requesting PDS source and an spanish eIDAS dataset, with its link to an uji.es identity (from any link module and issuer):

spSource = "PDS|consent|urn:mace:project-seal.eu:id:dataset:eIDAS:https%3A%2F%2Feidas.redsara.es;urn:mace:project-seal.eu:id:link:*:*:*:https%3A%2F%2Feidas.redsara.es:*:uji.es"
faragom commented 3 years ago

A practical case that wa son the mails. I document it here

For an module like EduGAIN, whe multiple attributes can be available or not, depending on the IdP, we need a persistent and robust way to determin the identifier, by establishing a strict order for the attributes to be checked if existing and used:

faragom commented 3 years ago

As discussed on the mail thread:

  1. we drop eduPersonTargetedID from the list.
  2. We add the future persistent identifier urn:oasis:names:tc:SAML:attribute:subject-id to the list (as it is expected to be widely supported in the future)