Matt Dunkin wrote:

> I know this attribute has been discussed before but I can't find any
> reference to my question anywhere.

This is quite a complicated and confusing area, so I think we should all 
expect it to come around every so often...

> Is there a way to get a user ID from a TargetedID using some sort of
> script?

For the SP, absolutely not, they are opaque values.

For the IdP, that would depend on how the values are generated.  For 
most IdPs at present, though, the answer here is again no.

As Simon says, if some SP wants to point the finger at a particular 
user, they can easily give you other information you *can* backtrack 
from.  As well as the subject's transient identifier (what used to be 
called the "handle" back in 1.2 days) another thing that is generally 
logged at both ends is the ID value for the actual assertion issued by 
the IdP.

> The differences of opinion vary all over the internet. The UK
> Federation website recommends the Salt value which I have to agree is
> the most straight forward to implement.

In fact, the UK recommendations and what is said on the Internet2 site 
aren't intended to be read as being that far apart.  In addition, the 
"salt" thing is a bit of a red herring here, as that's more about how 
you generate the values than about how you manipulate them.

The Internet2 people recommend against using a purely computational 
approach primarily because you can't revoke those and thus give a user a 
new ePTI value for a particular SP.  In addition, they have less in the 
way of legal constraints on the use of things like ePPN so not having 
ePTI available isn't so much of an issue for them.  The result is that 
deployment of ePTI in any form is pretty rare in places like InCommon 
(as I understand it).

Over here, we have real problems with ePPN because it has to be treated 
as personal data.  So although our recommendations are intended to be 
read as saying that storage-based ePTI is better (for the same reasons 
as the Internet2 people cite) we'd say that computational ePTI is 
*acceptable*, particularly as the alternative is passing around personal 
information.  The result is that deployment of ePTI in the UK is pretty 
much universal, although almost everyone is using computational 
implementations just now.

In the Shibboleth 2.0 IdP, for the first time, there's a bundled ePTI 
system that allows values to be stored in an SQL database: this gives 
the revocation quality and also the ability for the IdP's administrator 
to look up the user from an ePTI value.  It *generates* initial values 
in a compatible way to the old implementation, too, so it's 
backwards-compatible if you're upgrading.

If people are deploying Shibboleth 2.0 IdPs, I'd recommend that they 
look into this facility.

> One site says it's more secure because it's different for each
> Service Provider so they can't ring each other up and compare
> personal information based on a targetedID value.

This is the essential property of a *targeted* identifier, whether 
computational or stored, salted or not.

> The Shibboleth site states that the use of the Salt value isn't
> recommended for production use and that a stored value should be
> used. Easier for tracing, less security, contradicts the two sites
> above but answers my question easily. I know at least one site in the
> UK is doing this.

The stored value system in Shibboleth 2.0 also uses a salt to allow it 
to generate backwards-compatible values of ePTI.  So, there's no 
contradiction here.

	-- Ian