web-dev-qa-db-fra.com

Quels sont les différents formats NameID utilisés?

Dans le fichier de métadonnées SAML, plusieurs formats NameID sont définis, par exemple:

<NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</NameIDFormat>

<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</NameIDFormat>

<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>

Quelqu'un peut-il expliquer à quoi servent-ils? Quelles sont les différences?

51
performanceuser

Reportez-vous à la section 8.3 de cette noyau SAML pdf de la spécification SAML d'oasis.

SP et IdP communiquent généralement sur un sujet. Ce sujet doit être identifié par un identifiant NAME-IDentifier, qui doit être présenté sous un format permettant à l'autre partie de l'identifier facilement à l'aide du format.

Tous ceux-ci

1.urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified [default]

2.urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress

3.urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

4.urn:oasis:names:tc:SAML:2.0:nameid-format:transient

sont le format des identificateurs de nom.

Le format de nom pour une ID transitoire dans SAML 1 est urn: mace: shibboleth: 1.0: nameIdentifier et dans SAML 2 est urn: oasis: noms: tc: SAML: 2.0: nomid-format: transitoire

Transient est pour [section 8.3.8 de SAML Core ]

Indique que le contenu de l'élément est un identifiant avec une sémantique transitoire et DEVRAIT être traité comme une valeur opaque et temporaire par la partie utilisatrice.

Unspecified peut être utilisé et cela dépend uniquement de la mise en œuvre des entités à leur guise.

53
mavis

À propos de cela, je pense que vous pouvez faire référence à http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html .

Voici ce que j'ai compris à ce sujet, avec le cas d'utilisation de la fédération d'identité pour fournir des détails sur ces concepts:

  • Identifiants persistants

Le fournisseur d'identité fournit les identifiants de persistance, ils sont utilisés pour la liaison aux comptes locaux dans les SP, mais ils s'identifient en tant que profil d'utilisateur pour le service spécifique. Par exemple, les identifiants persistants sont un peu comme: johnForAir, jonhForCar, johnForHotel, tous pour un seul service spécifié, car il doit être lié à son identité locale dans le service.

  • Identifiants transitoires

Les identifiants transitoires sont ce que les IdP indiquent au SP que les utilisateurs de la session ont été autorisés à accéder à la ressource sur SP, mais que les identités des utilisateurs n'offrent pas réellement à SP. Par exemple, l’affirmation telle que "Anonymat (l’Idp ne dit pas à SP qui il est) est autorisée à accéder à/une ressource sur SP". SP l’a eu et laisse le navigateur y accéder, mais ne connaît toujours pas le vrai nom d’Anonymity.

  • identificateurs non spécifiés-

L'explication correspondante dans la spécification est "L'interprétation du contenu de l'élément est laissée à des implémentations individuelles". Ce qui signifie que le fournisseur d'identité définit le format réel, et suppose que SP sait comment analyser les données de format qui répondent à partir du fournisseur d'identité. Par exemple, IdP donne les données de format "UserName = XXXXX Country = US", SP obtenir l'assertion, puis peut l'analyser et extraire le nom d'utilisateur "XXXXX".

13
Ron

Il s’agit simplement d’un indice pour le fournisseur de services sur ce qu’il faut attendre de l’identifiant NameID renvoyé par le fournisseur d’identité. Ça peut être:

  1. unspecified
  2. emailAddress - par exemple [email protected]
  3. X509SubjectName - par exemple. CN=john,O=Company Ltd.,C=US
  4. WindowsDomainQualifiedName - par exemple CompanyDomain\John
  5. kerberos– par exemple john@realm
  6. entity - celui-ci est utilisé pour identifier les entités fournissant des services basés sur SAML et ressemblant à un URI
  7. persistent - il s'agit d'un identifiant opaque spécifique au service, qui doit inclure une valeur pseudo-aléatoire et ne doit pas être traqué par l'utilisateur réel. Il s'agit donc d'une fonctionnalité de confidentialité.
  8. transient - identifiant opaque qui doit être traité comme temporaire.
6
kirelagin

1 et 2 sont SAML 1.1 car ces URI faisaient partie de la norme OASIS SAML 1.1. La section 8.3 du lien PDF pour le standard OASIS SAML 2. explique ceci:

Dans la mesure du possible, un URN existant est utilisé pour spécifier un protocole. Dans le cas des protocoles IETF, l'URN du RFC le plus récent spécifiant le protocole est utilisé. Les références d'URI créées spécifiquement pour SAML ont l'un des racines suivantes, selon la version du jeu de spécifications dans laquelle elles ont été introduites pour la première fois:

urn:oasis:names:tc:SAML:1.0:
urn:oasis:names:tc:SAML:1.1:
urn:oasis:names:tc:SAML:2.0:
4
Wes