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 "IPhone Selector 1.1"

(moved it from nursery/ to apps/)
 
(42 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}
+
 
 
[[Image:Higgins_logo_76Wx100H.jpg|right]]
 
[[Image:Higgins_logo_76Wx100H.jpg|right]]
  
 
==Introduction==
 
==Introduction==
  
This solution consists of two projects:
+
This is a standalone iPhone application that can be launched both from the iPhone main menu and from a relying party website. It uses the remote [[I-Card Service]] for retrieving and managing the user's i-cards.
* '''I-Card Selector''' (org.eclipse.higgins.iphone.icm) - This is a standalone iPhone application that can be launched both from the iPhone main menu and from a relying party website.
+
* '''I-Card Plug-In''' (org.eclipse.higgins.iphone.ics) - This is an experimental MobileSafari plug-in that can be launched from a relying party website without leaving the browser.
+
  
These two components share common configuration settings but are otherwise independent from each other, i.e. you can choose to install just one or both. Both components use the remote [[I-Card Service Web App]] for retrieving and managing the user's i-cards.
+
== End-User Perspective  ==
  
==End-User Perspective ==
+
=== Functionality  ===
  
===I-Card Selector===
+
The I-Card Selector allows users to:
 +
* view and delete all i-cards
 +
* lock and unlock p-cards
 +
* use cards at relying parties (websites).
  
The I-Card Selector allows users to manage, preview and delete i-cards, as well as to select and use them at relying parties.
+
The selector works:
 +
* at RPs that support the icard-http(s) protocol
 +
* at RPs that render the application/x-informationCard object in a standard form. This is accomplished by means of the bookmarklet, which converts that object to an icard-http(s) link.
  
'''This component only works at relying parties that explicitly support it.''' See the Relying Parties section of this page for more information.
+
The selector does not work at RPs that use other selector-triggering technology, such as RPs that use javascript to trigger a PC-based selector.  
  
[[Image:Shot1.png]]
+
Download [http://download.eclipse.org/technology/higgins/solutions/iphone_selector/AzigoICardSelector.app.zip I-Card Selector]  
[[Image:Shot2.png]]
+
[[Image:Shot3.png]]
+
[[Image:Shot4.png]]
+
  
===I-Card Plug-In===
+
A demo relying party for the I-Card Selector is located at http://www.iphoneicards.com/rp.html
  
The I-Card Plug-In is triggered in the browser by relying party web sites that request i-cards, as well as by identity providers that offer i-cards.  
+
=== Screenshots ===
 +
<table>
 +
<tr>
 +
<td>[[Image:Shot7.png]]<br>RP Interaction</td>
 +
<td>[[Image:Shot1.png]]<br>Card List</td>
 +
</tr><tr><td colspan=2>-</td></tr>
 +
<tr>
 +
<td>[[Image:Shot2.png]]<br>Card Front</td>
 +
<td>[[Image:Shot3.png]]<br>Card Back</td>
 +
</tr><tr><td colspan=2>-</td></tr>
 +
<tr>
 +
<td>[[Image:Shot4 n.png]]<br>Settings</td>
 +
<td>[[Image:Shot6 n.png]]<br>Edit Cards</td></tr>
 +
</table>
  
This component does not require any special relying parties or identity providers and typically works wherever other i-card selectors work too. However, it can only be installed on a custom iPhone device with SSH access.
+
=== Get Bookmarklet  ===
  
[[Image:Shot7.png]]
+
Once installed, when you click this bookmarklet while on a page that accepts Information Cards, it will trigger your iPhone I-Card Selector.  
[[Image:Shot5.png]]
+
  
==Deployer Perspective==
+
Install this bookmarklet as follows:
  
===I-Card Selector===
+
*Copy All text from the following box:<br>
 +
{| width="95%" border="1" cellpadding="1" cellspacing="1"
 +
|-
 +
| <nowiki>javascript:var cnt=0; function getAction(_1,f){try{var _2=f.action; var _3=_1.href; var _4=_3.indexOf("?"); if(_4>0){_3=_3.substring(0,_4); }if(_2!=""&&_2!="undefined"){if(_2.indexOf(":")<0){if(_2.charAt(0)=="."){_2=_2.substring(1); }if(_2.charAt(0)=="/"){_2=_2.substring(1); }var _5=_3.lastIndexOf("/"); if(_5>0){_3=_1.href.substring(0,_5+1); }_2=_3+_2; }}else{_2=_3; }for(var i=0; i<f.elements.length; i++){try{var _6=f.elements[i]; var nm=_6.name; var _7=""; var _8=_6.type.toLowerCase(); if(_8=="text"||_8=="email"||_8=="hidden"||_8=="password"||_8=="textarea"||_8=="checkbox"){_7+=_6.value; }else{if(_8=="select"){_7+=_6.options[_6.selectedIndex].value; }}if(_2.indexOf("?")<0){_2+="?"; }else{_2+="&"; }_2+=encodeURI(nm+"="+_7); }catch(e){}}if(_2.indexOf("?")<0){_2+="?_policy="; }else{_2+="&_policy="; }return _2; }catch(err){return _2; }}; function main(_9){try{var _a=_9.getElementsByTagName("OBJECT"); var _b=0; for(var i=0; i<_a.length; i++){var _c=_a[i]; var _d=_c.getAttribute("TYPE"); if((_d!=null&&_d.toLowerCase()=="application/x-informationcard")){var _e="<"+_c.tagName; for(var k=0; k<_c.attributes.length; k++){var _f=_c.attributes[k]; _e+=" "+_f.name+"=\""+_f.value+"\""; }_e+=">"; for(each in _c.childNodes){var _10=_c.childNodes[each]; if(_10.tagName=="PARAM"){_e+="<param name=\""+_10.name+"\" value=\""+_10.value+"\"/>"; }}_e+="</"+_c.tagName+">"; var _11=getAction(window.location,_c.form); var _12="icard-"+_11+encodeURIComponent(_e).replace(new RegExp("%"+"20","g"),"+"); _c.innerHTML="<a id='_iphone_icard_manager' href='"+_12+"'>Login with iPhone ICard Manager</a>"; cnt+=1; window.location=_12; }}var _13=_9.getElementsByTagName("IC:INFORMATIONCARD"); var _14=_13.length; for(var i=0; i<_13.length; i++){var _15=_13[i]; alert("XHTML is not supported. Please, send Azigo the URL for testing."); cnt+=1; }}catch(e){alert(e); }}; main(document); if(cnt==0){alert("The page doesn't have an  x-informationcard object."); }</nowiki>
 +
|}
 +
*Bookmark this page
 +
*Edit your bookmarks
 +
*Select the 'Run I-Card Manager' bookmark
 +
*Delete the address of the bookmark
 +
*Paste the javascript that was copied in step 1, above
 +
*Close bookmarks
 +
 
 +
==Deployer Perspective==
  
 
There are two ways of installing the I-Card Selector on your iPhone.
 
There are two ways of installing the I-Card Selector on your iPhone.
Line 40: Line 64:
 
====Via App Store====
 
====Via App Store====
  
This is the preferred and simplest installation method. The application can be found in the Apple App Store under the name "I-Card Selector".
+
This is the preferred and simplest installation method. The application can be found in the Apple App Store under the name "I-Card Selector". Or, if you're on an iPhone now click here: itms://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=307416092
  
 
====Via Ad Hoc Method====
 
====Via Ad Hoc Method====
Line 62: Line 86:
 
# Now, in the bottom right corner click the "Sync" button. Now the provisioning profile and the application will be installed on your iPhone.
 
# Now, in the bottom right corner click the "Sync" button. Now the provisioning profile and the application will be installed on your iPhone.
  
===I-Card Plug-In===
 
  
There is currently just one way of installing the I-Card Plug-In on your iPhone. This is experimental and not recommended.
 
  
====Manual Installation====
+
===Configuration===
  
This method requires SSH and SCP access to your iPhone as well as some advanced technical knowledge.
+
Once the I-Card Selector is installed it must be connected to an existing account. Use the ''settings'' tab in the application, or go to the ''Settings'' application to configure the account information.  
  
# mkdir the directory '''/System/Library/Internet Plug-Ins/HigginsSelector.webplugin/''' on your iPhone
+
[[Image:Shot23.png]]
# scp and unzip the file '''dist/ics.tgz''' from the [https://dev.eclipse.org/svnroot/technology/org.eclipse.higgins/trunk/apps/org.eclipse.higgins.iphone.ics/ org.eclipse.higgins.iphone.ics] project into that directory
+
# chown root:wheel * in that directory
+
# reboot the iPhone
+
  
After manual installation, you need to do the following before the I-Card Plug-In will work.
+
==Developer Perspective==
  
# scp the file '''org.eclipse.higgins.iphoneselector.ICardManager.plist''' from the [https://dev.eclipse.org/svnroot/technology/org.eclipse.higgins/trunk/apps/org.eclipse.higgins.iphone.icm/ org.eclipse.higgins.iphone.icm] project into the directory '''/private/var/mobile/Library/Preferences/'''
+
===Architecture===
# chown mobile:mobile that file
+
# unless you want to use the demo account, fill in your own
+
## I-Card Service URL
+
## I-Card Service Username
+
## I-Card Service Password
+
# reboot the iPhone
+
  
===Configuration===
+
[[Image:Iphone-selector-1.1.102.png|center]]
  
After the installation the I-Card Selector and I-Card Plug-In are initialized with a demo account that contains a few example i-cards. If you have your own i-card account you can configure the I-Card Selector to use it via the iPhone Settings applications.
+
''([[Diagram Key]])''
  
[[Image:Shot23.png]]
+
===Components & Services ===
 +
Components:
 +
* [[Components 1.1#iPhone_I-Card_Selector]]
  
==Developer Perspective==
+
Services:
 
+
* [[I-Card Service]]
===Architecture===
+
  
 +
===Processing===
 
The I-Card Selector is a standalone iPhone application written in Objective C and based on the Apple iPhone SDK.
 
The I-Card Selector is a standalone iPhone application written in Objective C and based on the Apple iPhone SDK.
  
Line 100: Line 115:
  
 
[[Image:icm-sequence.png]]
 
[[Image:icm-sequence.png]]
 
The I-Card Plug-In is a WebKit plugin for MobileSafari written in Objective C. It operates in a similar way as the I-Card Selector, but never leaves the MobileSafari browser application.
 
  
 
===Building===
 
===Building===
  
The projects are:
+
'''apps/org.eclipse.higgins.iphone.icm''' project can be checked out from the Eclipse repository at the following SVN URI:
* apps/org.eclipse.higgins.iphone.icm
+
* apps/org.eclipse.higgins.iphone.ics
+
 
+
These projects can be checked out from the Eclipse repository at the following SVN URIs:
+
  
 
{| class="wikitable" style="text-align:left; border="1" cellpadding="5" cellspacing="0"   
 
{| class="wikitable" style="text-align:left; border="1" cellpadding="5" cellspacing="0"   
 
|-
 
|-
| https://dev.eclipse.org/svnroot/technology/org.eclipse.higgins/trunk/apps/org.eclipse.higgins.iphone.icm
+
| https://dev.eclipse.org/svnroot/technology/org.eclipse.higgins/trunk/app/org.eclipse.higgins.iphone.icm
| https://dev.eclipse.org/svnroot/technology/org.eclipse.higgins/trunk/apps/org.eclipse.higgins.iphone.ics
+
|-
+
 
|}
 
|}
  
In order to build the iPhone Selector and I-Card Manager, you need the following:
+
In order to build the iPhone Selector you need the following:
 
* A Mac computer
 
* A Mac computer
 
* The Apple iPhone SDK (including Xcode)
 
* The Apple iPhone SDK (including Xcode)
 
* An account with Apple's iPhone Developer Program
 
* An account with Apple's iPhone Developer Program
  
You should be able to build both projects normally from within Xcode
+
You should be able to build that project normally from within Xcode
  
 
== Relying Parties ==
 
== Relying Parties ==
  
This section describes how relying party websites can use the iPhone I-Card Selector and I-Card Plug-In.
+
This section describes how relying party websites can use the iPhone I-Card Selector.
 
+
=== I-Card Selector ===
+
  
 
The I-Card Selector does NOT recognize the usual '''<object>''' tag in i-card relying party websites. Therefore it requires a web page to support the following alternative selector invocation mechanism:
 
The I-Card Selector does NOT recognize the usual '''<object>''' tag in i-card relying party websites. Therefore it requires a web page to support the following alternative selector invocation mechanism:
Line 169: Line 174:
 
</a>
 
</a>
 
</pre>
 
</pre>
 +
 +
Relying parties wishing to support both the iPhone I-Card Selector and other selectors should examine the HTTP User-Agent header and then either output the usual <object> tag or the special HTML link.
  
 
The good news is that the I-Card Selector will send the security token in the same manner as other selectors do. Therefore a relying party only needs special HTML code where it invokes the I-Card Selector, NOT where it reads and processes the security token.
 
The good news is that the I-Card Selector will send the security token in the same manner as other selectors do. Therefore a relying party only needs special HTML code where it invokes the I-Card Selector, NOT where it reads and processes the security token.
Line 176: Line 183:
 
A demo relying party for the I-Card Selector is located at http://www.iphoneicards.com/rp.html
 
A demo relying party for the I-Card Selector is located at http://www.iphoneicards.com/rp.html
  
=== I-Card Plug-In ===
+
== See Also ==
 
+
The I-Card Plug-In does not require any special relying party code. It gets triggered by two events:
+
 
+
* The presence of an HTML '''<object>''' tag of type '''application/x-informationcard''' in a web page. This will first ask the user to select an i-card and then send a security token.
+
* The download of a .crd file. This will ask the user to import a new i-card into their account.
+
 
+
Therefore, the I-Card Plug-In should work wherever other selectors work too.
+
 
+
== Links ==
+
* [http://www.iphoneicards.com A community website promoting the Higgins iPhone Selector]
+
 
* [http://developer.apple.com/iPhone/program/ Apple iPhone Developer Program]
 
* [http://developer.apple.com/iPhone/program/ Apple iPhone Developer Program]
 
[[Category:Higgins Solutions]]
 

Latest revision as of 15:18, 15 August 2014

Higgins logo 76Wx100H.jpg

Introduction

This is a standalone iPhone application that can be launched both from the iPhone main menu and from a relying party website. It uses the remote I-Card Service for retrieving and managing the user's i-cards.

End-User Perspective

Functionality

The I-Card Selector allows users to:

  • view and delete all i-cards
  • lock and unlock p-cards
  • use cards at relying parties (websites).

The selector works:

  • at RPs that support the icard-http(s) protocol
  • at RPs that render the application/x-informationCard object in a standard form. This is accomplished by means of the bookmarklet, which converts that object to an icard-http(s) link.

The selector does not work at RPs that use other selector-triggering technology, such as RPs that use javascript to trigger a PC-based selector.

Download I-Card Selector

A demo relying party for the I-Card Selector is located at http://www.iphoneicards.com/rp.html

Screenshots

Shot7.png
RP Interaction
Shot1.png
Card List
-
Shot2.png
Card Front
Shot3.png
Card Back
-
Shot4 n.png
Settings
Shot6 n.png
Edit Cards

Get Bookmarklet

Once installed, when you click this bookmarklet while on a page that accepts Information Cards, it will trigger your iPhone I-Card Selector.

Install this bookmarklet as follows:

  • Copy All text from the following box:
javascript:var cnt=0; function getAction(_1,f){try{var _2=f.action; var _3=_1.href; var _4=_3.indexOf("?"); if(_4>0){_3=_3.substring(0,_4); }if(_2!=""&&_2!="undefined"){if(_2.indexOf(":")<0){if(_2.charAt(0)=="."){_2=_2.substring(1); }if(_2.charAt(0)=="/"){_2=_2.substring(1); }var _5=_3.lastIndexOf("/"); if(_5>0){_3=_1.href.substring(0,_5+1); }_2=_3+_2; }}else{_2=_3; }for(var i=0; i<f.elements.length; i++){try{var _6=f.elements[i]; var nm=_6.name; var _7=""; var _8=_6.type.toLowerCase(); if(_8=="text"||_8=="email"||_8=="hidden"||_8=="password"||_8=="textarea"||_8=="checkbox"){_7+=_6.value; }else{if(_8=="select"){_7+=_6.options[_6.selectedIndex].value; }}if(_2.indexOf("?")<0){_2+="?"; }else{_2+="&"; }_2+=encodeURI(nm+"="+_7); }catch(e){}}if(_2.indexOf("?")<0){_2+="?_policy="; }else{_2+="&_policy="; }return _2; }catch(err){return _2; }}; function main(_9){try{var _a=_9.getElementsByTagName("OBJECT"); var _b=0; for(var i=0; i<_a.length; i++){var _c=_a[i]; var _d=_c.getAttribute("TYPE"); if((_d!=null&&_d.toLowerCase()=="application/x-informationcard")){var _e="<"+_c.tagName; for(var k=0; k<_c.attributes.length; k++){var _f=_c.attributes[k]; _e+=" "+_f.name+"=\""+_f.value+"\""; }_e+=">"; for(each in _c.childNodes){var _10=_c.childNodes[each]; if(_10.tagName=="PARAM"){_e+="<param name=\""+_10.name+"\" value=\""+_10.value+"\"/>"; }}_e+="</"+_c.tagName+">"; var _11=getAction(window.location,_c.form); var _12="icard-"+_11+encodeURIComponent(_e).replace(new RegExp("%"+"20","g"),"+"); _c.innerHTML="<a id='_iphone_icard_manager' href='"+_12+"'>Login with iPhone ICard Manager</a>"; cnt+=1; window.location=_12; }}var _13=_9.getElementsByTagName("IC:INFORMATIONCARD"); var _14=_13.length; for(var i=0; i<_13.length; i++){var _15=_13[i]; alert("XHTML is not supported. Please, send Azigo the URL for testing."); cnt+=1; }}catch(e){alert(e); }}; main(document); if(cnt==0){alert("The page doesn't have an x-informationcard object."); }
  • Bookmark this page
  • Edit your bookmarks
  • Select the 'Run I-Card Manager' bookmark
  • Delete the address of the bookmark
  • Paste the javascript that was copied in step 1, above
  • Close bookmarks

Deployer Perspective

There are two ways of installing the I-Card Selector on your iPhone.

Via App Store

This is the preferred and simplest installation method. The application can be found in the Apple App Store under the name "I-Card Selector". Or, if you're on an iPhone now click here: itms://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=307416092

Via Ad Hoc Method

This is an installation method that involves connecting your iPhone to your PC / Mac and transferring the application via iTunes.

To prepare for this, you need to download two files to your computer:

  • The application: Download the file dist/ICardManager.zip from the org.eclipse.higgins.iphone.icm project. Unzip this file. You should now have a folder named ICardManager.app.
  • The provisioning profile: Download the file dist/53D2898F-1EAE-4387-9307-DFAB1FFEB9CA.mobileprovision from the org.eclipse.higgins.iphone.icm project.

Now follow these steps:

  1. If you already have the I-Card Selector on your iPhone, uninstall it first (tap your finger on the I-Card Selector icon for about 2 seconds, then tap the (X) symbol).
  2. Connect your iPhone to your computer via USB.
  3. Launch iTunes on your computer. If iTunes asks you to update the "iPhone software", do this.
  4. In the left menu of iTunes, select the "Applications" entry under "LIBRARY".
  5. Now install the provisioning profile (which you downloaded earlier). You can do this by dragging&dropping the file into the main area of the iTunes window (assuming that "LIBRARY" > "Applications" is selected on the left). If iTunes warns you that this provisioning profile exists already, click "Replace".
  6. Now also drag&drop the application folder (which you also downloaded and unzipped earlier) into the same main area in the iTunes window. The "I-Cards" application should now be visible in the main area.
  7. In the left menu of iTunes, select the "iPhone" entry under "DEVICES".
  8. In the main area of the iTunes window, select the "Applications" tab. Make sure that the settings "Sync applications" and "All applications" are enabled.
  9. In the bottom right corner of the iTunes window, if there is an "Apply" button, click it. If there is no such button, just continue with the next step. If iTunes displays one or more warnings, acknowledge them.
  10. Now, in the bottom right corner click the "Sync" button. Now the provisioning profile and the application will be installed on your iPhone.


Configuration

Once the I-Card Selector is installed it must be connected to an existing account. Use the settings tab in the application, or go to the Settings application to configure the account information.

Shot23.png

Developer Perspective

Architecture

Iphone-selector-1.1.102.png

(Diagram Key)

Components & Services

Components:

Services:

Processing

The I-Card Selector is a standalone iPhone application written in Objective C and based on the Apple iPhone SDK.

This sequence diagram illustrates a typical flow when the I-Card Selector is launched from a web page:

Icm-sequence.png

Building

apps/org.eclipse.higgins.iphone.icm project can be checked out from the Eclipse repository at the following SVN URI:

https://dev.eclipse.org/svnroot/technology/org.eclipse.higgins/trunk/app/org.eclipse.higgins.iphone.icm

In order to build the iPhone Selector you need the following:

  • A Mac computer
  • The Apple iPhone SDK (including Xcode)
  • An account with Apple's iPhone Developer Program

You should be able to build that project normally from within Xcode

Relying Parties

This section describes how relying party websites can use the iPhone I-Card Selector.

The I-Card Selector does NOT recognize the usual <object> tag in i-card relying party websites. Therefore it requires a web page to support the following alternative selector invocation mechanism:

If a web page wishes to accept a security token, it needs to construct a special HTML link whose URI contains

  • A custom uri scheme (either icard-http:// or icard-https://)
  • An absolute target address where the web page wants to receive the security token
  • A policy in the form of the usual <object> tag as a parameter named _policy in the query string

URI Format:

icard-http(s)://www.mysite.com/relyingparty?_policy=%3Cobject.....

Example HTML code for invoking a selector in the usual way:

<form method='post' action='https://xmldap.org/relyingparty/infocard' enctype='application/x-www-form-urlencoded'>

    <object type="application/x-informationcard" name="xmlToken">
        <param name="privacyUrl" value="http://xmldap.org/relyingparty/?privacy.txt"/>
        <param name="requiredClaims" value="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"/>
        <param name="optionalClaims" value="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/streetaddress http://schemas.xmlsoap.org/ws/2005/05/identity/claims/locality http://schemas.xmlsoap.org/ws/2005/05/identity/claims/stateorprovince http://schemas.xmlsoap.org/ws/2005/05/identity/claims/postalcode http://schemas.xmlsoap.org/ws/2005/05/identity/claims/country http://schemas.xmlsoap.org/ws/2005/05/identity/claims/homephone http://schemas.xmlsoap.org/ws/2005/05/identity/claims/otherphone http://schemas.xmlsoap.org/ws/2005/05/identity/claims/mobilephone http://schemas.xmlsoap.org/ws/2005/05/identity/claims/dateofbirth http://schemas.xmlsoap.org/ws/2005/05/identity/claims/gender"/>
        <param name="tokenType" value="urn:oasis:names:tc:SAML:1.0:assertion"/>
        <param name="privacyVersion" value="1"/>
    </object>

    <input type="submit" value="Click here to send an i-card">

</form>

Equivalent HTML code for invoking the selector in the iPhone way:

<a href="icard-https://xmldap.org/relyingparty/infocard?_policy=%3Cobject+type%3D%22application%2Fx-informationcard%22+name%3D%22xmlToken%22%3E%3Cparam+name%3D%22privacyUrl%22+value%3D%22http%3A%2F%2Fxmldap.org%2Frelyingparty%2F%3Fprivacy.txt%22%2F%3E%3Cparam+name%3D%22requiredClaims%22+value%3D%22http%3A%2F%2Fschemas.xmlsoap.org%2Fws%2F2005%2F05%2Fidentity%2Fclaims%2Fprivatepersonalidentifier+http%3A%2F%2Fschemas.xmlsoap.org%2Fws%2F2005%2F05%2Fidentity%2Fclaims%2Fgivenname+http%3A%2F%2Fschemas.xmlsoap.org%2Fws%2F2005%2F05%2Fidentity%2Fclaims%2Fsurname+http%3A%2F%2Fschemas.xmlsoap.org%2Fws%2F2005%2F05%2Fidentity%2Fclaims%2Femailaddress%22%2F%3E%3Cparam+name%3D%22optionalClaims%22+value%3D%22http%3A%2F%2Fschemas.xmlsoap.org%2Fws%2F2005%2F05%2Fidentity%2Fclaims%2Fstreetaddress+http%3A%2F%2Fschemas.xmlsoap.org%2Fws%2F2005%2F05%2Fidentity%2Fclaims%2Flocality+http%3A%2F%2Fschemas.xmlsoap.org%2Fws%2F2005%2F05%2Fidentity%2Fclaims%2Fstateorprovince+http%3A%2F%2Fschemas.xmlsoap.org%2Fws%2F2005%2F05%2Fidentity%2Fclaims%2Fpostalcode+http%3A%2F%2Fschemas.xmlsoap.org%2Fws%2F2005%2F05%2Fidentity%2Fclaims%2Fcountry+http%3A%2F%2Fschemas.xmlsoap.org%2Fws%2F2005%2F05%2Fidentity%2Fclaims%2Fhomephone+http%3A%2F%2Fschemas.xmlsoap.org%2Fws%2F2005%2F05%2Fidentity%2Fclaims%2Fotherphone+http%3A%2F%2Fschemas.xmlsoap.org%2Fws%2F2005%2F05%2Fidentity%2Fclaims%2Fmobilephone+http%3A%2F%2Fschemas.xmlsoap.org%2Fws%2F2005%2F05%2Fidentity%2Fclaims%2Fdateofbirth+http%3A%2F%2Fschemas.xmlsoap.org%2Fws%2F2005%2F05%2Fidentity%2Fclaims%2Fgender%22%2F%3E%3Cparam+name%3D%22tokenType%22+value%3D%22urn%3Aoasis%3Anames%3Atc%3ASAML%3A1.0%3Aassertion%22%2F%3E%3Cparam+name%3D%22privacyVersion%22+value%3D%221%22%2F%3E%3C%2Fobject%3E">
Click here to send an i-card
</a>

Relying parties wishing to support both the iPhone I-Card Selector and other selectors should examine the HTTP User-Agent header and then either output the usual <object> tag or the special HTML link.

The good news is that the I-Card Selector will send the security token in the same manner as other selectors do. Therefore a relying party only needs special HTML code where it invokes the I-Card Selector, NOT where it reads and processes the security token.

The I-Card Selector currently does NOT provide a way to import a new i-card into the user's account.

A demo relying party for the I-Card Selector is located at http://www.iphoneicards.com/rp.html

See Also

Back to the top