Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "I-Card"

(Provider (managed) I-Cards)
(I-Card: Representation in Personal Data Model)
 
(62 intermediate revisions by 5 users not shown)
Line 1: Line 1:
This page describes the Higgins concept of an [[I-Card]].  
+
{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}
 +
[[Image:Higgins_logo_76Wx100H.jpg|right]]
 +
== Generic Definitions ==
 +
* See http://en.wikipedia.org/wiki/I-card (The page Paul started)
 +
* See http://en.wikipedia.org/wiki/Information_Card (The page Mike Jones (Microsoft) started)
 +
* For the good of the industry Paul and Mike are *trying* to converge the definitions. This involves compromises on both sides. Microsoft claims that "Information Card" is a generic term, but historically has used it to mean the two kinds of cards supported by CardSpace. Through discussion they've been updating Information Card wikipedia page to be less CardSpace-limited.
  
===What is an I-Card?===
+
== I-Card: Representation in Persona Data Model ==
* A visual metaphor representing identity information about one or more [[Digital Subject]]s in a context
+
* [[I-Card]]s are icons that are displayed, created, edited, and selected in a graphical user interface
+
* The card metaphor is related to things we know like library cards, association cards, business cards, credit cards, badges, etc. but in other ways it is different.
+
* Unlike physical cards, I-Cards are not limited as to size/length/capacity, and they can be easily copied (if desired)
+
* An I-Card holds only metadata. The metadata references identity information that is external to the card itself, and stored locally or remotely
+
* [[I-Card]]s are created by an entity known as a ''creator''
+
* Some kinds of I-Cards are used for authentication interactions where the holder of the card is presenting its associated claims to a relying party.
+
* If the claims are trusted by the relying party, these claims will allow the holder to take some further action, be granted access to resources, etc. In this usage the card acts like a key.
+
* Some [[I-Card]]s can be used to enable to long term, dynamic, sharing of identity information between two or more parties. Whether or not attributes supported by the card are editable and by which party, depends on the context.
+
  
===Supported Claims Schema===
+
* See [[Persona Data Model 2.0]]
* [[I-Card]]s declare the schema of the claims/attributes they support.
+
 
* This schema is used by Higgins [[I-Card Selector Service]] to match against the relying system’s policy requirements
+
== I-Cards: As implemented in Higgins [[I-Card Service 1.1]] ==
* At its simplest, the schema is a linear list of claim types described as a URI (e.g. a URI for "surname")
+
* [[I-Card]]: An object implemented and managed by an [[I-Card Provider]] plug-in
* An [[I-Card]] may reference information about multiple [[Digital Subject]]s (e.g. a buddy list or directory).
+
* [[I-Card]]s are the basis for user-visible [[I-Card]]s (described previously) appear in the [[ISS Web UI]] (On Firefox, currently part of [[Higgins Browser Extension]]), [[ISS Client UI]] or the [[I-Card Manager]] UI as rectangular icons
* Further, an I-Card may support complex attribute types (e.g. postal address) whose values contain structure
+
* The [[I-Card]] schema is used by the Higgins [[I-Card Selector Service]] to match against the relying system’s policy requirements
* The schema of these more complex I-Cards is captured in an OWL-DL schema
+
  
 
===I-Card Types===
 
===I-Card Types===
* Higgins defines several [[I-Card Interfaces]] one or more of which are implemented by specific types of I-Cards
+
* [[I-Card]]s are implemented, instantiated, managed by [[I-Card Provider]]s that plug in to the [[I-Card Registry]]  
* [[I-Card]]s are implemented, instantiated, managed by [[I-Card Provider]]s that plug in to the [[I-Card Registry]]
+
* See [[I-Card Provider]] for a description of the types of [[I-Card]]s under development or planned  
* Note: See [[I-Card Provider]] for a description of the types of [[I-Card]]s under development or planned
+
Higgins defines three [[I-Card Interface]]s. Two are required and one is optional
* I-Cards do not talk to relying parties directly. The [[RP Protocol Support]] component consumes [[I-Card]]s and uses their metadata to obtain data with which to exchange with RP sites & systems.
+
* Example 1
+
** Some types of [[I-Card]]s can (by delegating to a Token Service) package and encrypt their information as a [[Digital Identity]] in token form that can be used by relying parties for authentication purposes.
+
** Higgins is developing a CardSpace compatible I-Card type that can interoperate with CardSpace-compatible relying parties, as well as request [[Digital Identity|Digital Identities]] from CardSpace/WS-Trust compatible identity providers (STSes).
+
** Higgins plans to develop a card compatible with OpenID relying parties and OpenID servers.
+
* Example 2
+
** Other types of [[I-Card]]s can be used to support a periodic or continuous, uni- or bi-directional data exchange channels with external network endpoints.
+
** [[RP Protocol Support]] will support an RSS-SSE channel between the RP site and a site-specific I-Card
+
**This can allow the external site or service some level of authentication/recognition but can also allows it to update, and/or append information represented by the [[I-Card]].
+
  
===Appearance===
+
===I-Card Types: Required Interfaces===
* [[I-Card]]s appear in the [[ISS Web UI]], [[ISS Client UI]] or the [[I-Card Manager]] UI as rectangular icons
+
* All [[I-Card]]s implement the generic, base ''ICard'' interface. It includes methods to get the issuer of a card, the background image of a card, the display name of a card, the supported attribute/claim schema of the data retrieveable by the card, a way to retrieve the current value(s) of the claim(s) of the card, and so on.
* Cards have a name that is displayed as a text string (called the ''CardName'') that is set by the card’s ''creator'' 
+
* All [[I-Card]]s implement the ''ITokenCard'' interface whose prominent feature is the ''getDigitalIdentity'' method that returns a signed security token that includes the claims and their values
* Cards display in a text string the name of the issuer who originated the card (''IssuerName'')
+
* Card display in a text string the name of the ''creator'' of the card
+
* Cards may have a (GIF or JPEG) background image (''CardImage'') set by the card’s issuer
+
* By pressing a "Retrieve" button with a card selected the user can retrieve and display the latest values of the card's contained claims/attributes.
+
  
===Token Issuing I-Cards===
+
==[[I-Card]]s and the [[I-Card Registry]]==
* Token issuing cards encrypt and digitally sign a set of claims about a ''single'' Digital Subject
+
* [[I-Card]]s are implemented, instantiate and managed by plug-ins called [[I-Card Provider]]s
* This signing process (e.g. STS) is called the card issuer
+
* All [[I-Card Provider]]s must support the two required interfaces (including ''ITokenCard'')
* As an example, an I-Card used to present credit card information would used signed data
+
* Managed [[I-Card Provider]]s are responsible for interactions with external IdP/STSes and/or attribute sources (e.g. IdAS)
 
+
* [[I-Card Provider]]s are responsible for persistence and encryption of their I-Card instances (user can control where (e.g. on the net, in thumbdrive) each card is stored)
===IdAS I-Cards===
+
* IdAS I-Cards are channels to information stored in IdAS Contexts
+
* IdAS I-Cards manage two metadata fields: the endpoint reference of an IdAS service and a ContextRef URI of a Context
+
* This URI may be an XRI
+
 
+
===I-Card Issuers===
+
* Managed cards are cards issued by an external party (person or organization) and made available to you
+
* Examples of managed cards include credit cards and driver’s licenses
+
* You can also create your own cards (and for these you are the issuer) called personal (aka self-issued) cards
+
 
+
===Managed I-Cards===
+
* Managed cards reference identity data from the issuer that provided the card to the person
+
* For example, CardSpace managed cards retrieve their Digital Identities (in token form) from an external Identity Provider using WS-Trust
+
 
+
===Provider vs. Personal I-Cards===
+
* ''Provider'' cards reference identity data from the issuer entity that provided the card to the person
+
* For example, CardSpace provider cards retrieve their Digital Identities (in token form) from an external Identity Provider using WS-Trust
+
* ''Personal'' cards are created by a person for their own use
+
 
+
===Access Control===
+
* Each card has an Access Control List (ACL)  
+
* The ACL is a list of URLs
+
* Each URL is a site that has been granted access.
+
* Future: support regular expressions, wildcards and exceptions
+
 
+
===Release Policy===
+
* Each card is marked one of: (EveryTime, FirstTime, Never).
+
* As in “ask the user (EveryTime, FirstTime, or Never) before releasing this information to an external site/person”
+
 
+
===Editability===
+
* Varies by card...
+
* Personal cards (e.g. those issued by you) may be completely editable by you
+
* Some cards (e.g. a CardSpace provider card) are not editable at all by you
+
* Some cards (e.g. a IdAS card) may have some fields that you can edit and some fields that you can’t
+
  
 
===I-Card Accessed List===
 
===I-Card Accessed List===
* Each card has an accessed list that provides the history of what parties have at one time or another been granted access to the card
+
* The [[I-Card Registry]] maintains an ''accessed list'' for each card that provides the history of what parties have at one time or another been granted access to the card
 
* It is list of triples:
 
* It is list of triples:
 
** Relying Party’s URL
 
** Relying Party’s URL
 
** Timestamp of first access
 
** Timestamp of first access
 
** Timestamp of most recent access
 
** Timestamp of most recent access
 +
* Notes
 +
** Valery thinks that this accessed list maintenance should be an [[I-Card Provider]] responsibility
 +
** This ''accessed list'' history is not exported with the card when a card is exported.
 +
** Should the ''accessed list'' be "clearable" by the user?
 +
** Should we be able to export an entire [[I-Card Registry]]?
 +
  
===I-Card Providers===
+
== See Also ==
* I-Cards are implemented by plug-ins called I-Card Providers
+
* [[R-Card]]
* Different I-Card Providers implement different identity exchange protocols with external IdPs
+
* Other I-Card Providers use IdAS as their source of identity data
+
* Some I-Card Providers use both IdAS (to get the attributes) and a Token Service (to package and sign the attributes)
+
  
==See Also==
+
[[Category:Higgins Data Model]]
* [[I-Card Interfaces]], [[I-Card Provider]]
+
* [[Higgins Wiki]]
+

Latest revision as of 09:17, 3 May 2010

{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}

Higgins logo 76Wx100H.jpg

Generic Definitions

  • See http://en.wikipedia.org/wiki/I-card (The page Paul started)
  • See http://en.wikipedia.org/wiki/Information_Card (The page Mike Jones (Microsoft) started)
  • For the good of the industry Paul and Mike are *trying* to converge the definitions. This involves compromises on both sides. Microsoft claims that "Information Card" is a generic term, but historically has used it to mean the two kinds of cards supported by CardSpace. Through discussion they've been updating Information Card wikipedia page to be less CardSpace-limited.

I-Card: Representation in Persona Data Model

I-Cards: As implemented in Higgins I-Card Service 1.1

I-Card Types

Higgins defines three I-Card Interfaces. Two are required and one is optional

I-Card Types: Required Interfaces

  • All I-Cards implement the generic, base ICard interface. It includes methods to get the issuer of a card, the background image of a card, the display name of a card, the supported attribute/claim schema of the data retrieveable by the card, a way to retrieve the current value(s) of the claim(s) of the card, and so on.
  • All I-Cards implement the ITokenCard interface whose prominent feature is the getDigitalIdentity method that returns a signed security token that includes the claims and their values

I-Cards and the I-Card Registry

  • I-Cards are implemented, instantiate and managed by plug-ins called I-Card Providers
  • All I-Card Providers must support the two required interfaces (including ITokenCard)
  • Managed I-Card Providers are responsible for interactions with external IdP/STSes and/or attribute sources (e.g. IdAS)
  • I-Card Providers are responsible for persistence and encryption of their I-Card instances (user can control where (e.g. on the net, in thumbdrive) each card is stored)

I-Card Accessed List

  • The I-Card Registry maintains an accessed list for each card that provides the history of what parties have at one time or another been granted access to the card
  • It is list of triples:
    • Relying Party’s URL
    • Timestamp of first access
    • Timestamp of most recent access
  • Notes
    • Valery thinks that this accessed list maintenance should be an I-Card Provider responsibility
    • This accessed list history is not exported with the card when a card is exported.
    • Should the accessed list be "clearable" by the user?
    • Should we be able to export an entire I-Card Registry?


See Also

Back to the top