Qu'est-ce que la revendication de type http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier
doit être utilisé pour?
Telle est la question principale, et en voici d'autres.
En quoi diffère-t-il de http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
prétendre?
Est-ce permanent pour un utilisateur particulier par opposition à une revendication de nom?
Est-il de portée mondiale ou de portée IdP?
Name
, n'est qu'un nom. Si nous parlons de personne, pensez "Eric"; un serveur "file01".
Un NameIdentifier
est l'ID d'un objet. Revenant à notre objet personne, l'ID utilisateur d'Eric peut être 435 dans votre base de données. Pour le serveur, l'identifiant pourrait être quelque chose comme un FQDN ou un SID.
Selon cet article , apparemment, l'identificateur de nom était une propriété SAML 1.1 et est remplacé par NameID
dans SAML 2.0.
Je voulais répondre au commentaire de @ Jason et au message de @ nzpcmad. Je ne vois pas l'unicité comme une exigence claire. La question est balisée adfs2. mais le schéma référencé appartient à OASIS. Ce sont donc les interprétations des deux parties que nous devons équilibrer.
La position de Microsoft pour ADFS est clairement qu'il existe une exigence unique. Nous le constatons dans l'article " The Role of Claims ". Sans aucun doute, ADFS jette une grande ombre, mais cela semble être un détail d'implémentation.
En regardant la spécification SAML 1.1 , cependant, je ne vois pas une telle affirmation. Le plus proche que nous obtenons dans la section 2.4.2.2 de la spécification est:
L'élément spécifie un sujet par une combinaison d'un qualificatif de nom, d'un nom et d'un format. L'élément a les attributs suivants:
...
NameQualifier [facultatif] Le domaine de sécurité ou administratif qui qualifie le nom du sujet. Cet attribut fournit un moyen de fédérer les noms de magasins d'utilisateurs disparates sans collision.
Le texte de la spécification me dit que je dois pouvoir trouver une personne en utilisant une combinaison des trois attributs, mais il ne fait aucune affirmation quant à l'unicité. Ne pourrais-je pas avoir deux entrées pointant vers le même utilisateur? Semble si. De plus, la spécification n'indiquerait-elle pas que l'attribut NameQualifier
était requis dans les cas où NameIdentifier
était insuffisant pour identifier le nom de manière unique?
Alors, à quoi tout cela mène-t-il?
Par Le rôle des revendications ,
Nom Le nom unique de l'utilisateur
Identifiant de nom L'identifiant de nom SAML de l'utilisateur
Ces deux revendications font partie du groupe de revendications qu'AD FS 2.0 configure par défaut.
Cela implique qu'ils ont une portée IP.
par exemple. lorsque vous vous connectez à Google en utilisant ACS, "nameidentifier" est l'unique GUID associé à votre compte par Google tandis que le nom est votre identifiant Google par exemple "[email protected]".
ClaimTypes.Name
Est pour UserName et ClaimTypes.NameIdentifier
Spécifie l'identité de l'utilisateur. Si vous les ajoutez dans l'objet ClaimIdentity
qui vous permet d'accéder aux méthodes User.Identity
Qui sont GetUserName()
et GetUserId()
.