Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [higgins-dev] Questions about I-Card Interface

I think my question is somewhat related to this thread...

I am implementing the Display Token for CardSpace interaction with the 
STS:

"Windows CardSpace is agnostic of specific token types that may be 
requested by a relying party and issued by an identity provider. The token 
returned by an IP/STS may be completely opaque to Windows CardSpace which 
simply provides a conduit. However, to allow informed user consent and 
release, the Information Card model introduces the notion of a display 
token. It is an informational token associated with the actual security 
token that essentially contains a friendly representation of the claims 
carried in the security token. Its friendly content can be displayed to 
the user in user interfaces."

The format is:

<wst:RequestSecurityTokenResponse>
  ...
  <ic:RequestedDisplayToken>
    <ic:DisplayToken xml:lang=?en-us?>
      <ic:DisplayClaim 
Uri=?http://.../ws/2005/05/identity/claims/givenname?>
        <ic:DisplayTag>Given Name</ic:DisplayTag>
        <ic:DisplayValue>John</ic:DisplayValue>
      </ic:DisplayClaim>
      <ic:DisplayClaim 
Uri=?http://.../ws/2005/05/identity/claims/surname?>
        <ic:DisplayTag>Last Name</ic:DisplayTag>
        <ic:DisplayValue>Doe</ic:DisplayValue>
      </ic:DisplayClaim>
    <ic:DisplayToken>
  </ic:RequestedDisplayToken>
</wst:RequestSecurityTokenResponse>

The current STS is given an RST with the Claim URIs and uses the 
IDigitalSubject to retrieve the associated attribute values:

attribute = digitalSubject.getAttribute(uriAttribute);

However, there is no current way for the STS to get the "friendly" 
DisplayTag value for the DisplayToken. Can we add the following to the 
IAttribute interface?

String getName();

Thanks,
Mike

higgins-dev-bounces@xxxxxxxxxxx wrote on 11/29/2006 11:58:41 AM:

> Hi Paul, 
> 
> wow! you are quick.
> 
> See below.
> 
> > > (1) The I-Card also has a getSupportedSimpleClaimTypes() method, but 
it
> > > does not have a getClaimValues() method.  In fact, we discussed at
> > > length how the I-Card is just a pointer to the claim values. 
However,
> > > when we display the Icard to the user, and then the user clicks 
"show me
> > > what i would send under this card," these values must be extracted 
to
> > > display an I-card to the user.
> > > 
> > > By what method(s) should the caller retrieve these values?  Are they
> > > Idas methods?
> > 
> > The idea was that they not IdAS methods. (In the Higgins is layered, 
I-Card
> > Provider implementations do not necessarily use IdAS at all (though 
many
> > will)). 
> > 
> > The real answer is that this is a design flaw. The methods that you 
need are
> > missing from the base ICard interface here
> > 
(http://wiki.eclipse.org/index.php/I-Card_Interfaces#Base_ICard_Interface).
> > For "simple" claim types, I've just added this:
> > 
> > // Retrieve the value of a simple claim type
> > // Note: Implementations of this method will likely retrieve and cache 
all 
> > // supported simple claim type values in a single operation 
> > // Returns the value of the claim type ClaimType
> > String getClaimValue(String ClaimType);
> > 
> > The above proposed method is a stop-gap to let you proceed with your 
work
> > though it sidesteps the issue of how to get complex values. 
> 
> How would this be implemented?  Would the I-card now also cache its
> ClaimValues?  Otherwise, if the card is "managed," would every
> invocation of this function initiate a web-transaction with the remote
> identity provider that retrieves the latest value to display to the
> user?  If the remote idp requires authentication, you could imagine that
> this spirals out of control---unless, of course, the i-card now also
> contains a cached version of boths its claimtype and its claimvalue.
> 
> 
> > > 
> > > (2) The I-Card interface currently has an isMatch method.
> > > Philosophically, this means that the I-Card needs to be aware of 
Policy
> > > semantics.  Of course, there will have to be some component which 
knows
> > > about both I-Cards and Policies.  I would like to argue against this
> > > being the I-Card.  While there are many alternatives, does anyone 
have
> > > strong feelings about putting it into the I-Card?
> > 
> > I *think* I can guess why you think this matching logic shouldn't be
> > encapsulated within an I-Card (e.g. matching against policies that 
require
> > claims to be culled out of multiple cards), but could you please 
explain the
> > requirements as you see them. 
> 
> yes indeed. the practical reason is that separating it this way also
> makes it cleaner for handling idemix policies which are more complex
> than just a list-of-claimtypes.
> 
> beyond that, conceptually, i think the role of an i-card should be crisp
> and limited: it represents claimtypes and claimvalues. 
> 
> why should it know about the semantics of the claimtype (which is tied
> to the policy language)? 
> 
> as a use-case, i envision using all types of identity cards in all types
> of environments.  i can use my managed infocard in an idemix setting,
> and perhaps i can use my openid card as part of a larger assertion
> involving infocards and idemix.  to support this requires a more
> complicated policy-matcher---but the point is that architecture
> decisions should not limit the use of an identity.
> 
> 
> ~a
> 
> _______________________________________________
> higgins-dev mailing list
> higgins-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/higgins-dev



Back to the top