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
|