返回首页

简介 本文试图给你一个快速启动Windows CardSpace中的基本概念,也完成这篇文章后,您将能够创建自己的"CardSpace的启用网页"。如果这没有任何意义,请继续阅读。让我们掌握一些嗡嗡声字第一为了得到更好地了解了该技术。数字身份这些都是我们使用我们的数字世界(互联网世界)就像我们在现实世界中的物理身份(信用卡,许可证等)的身份。这些数字身份来在各种形状和大小,也许你已经与雅虎的电子邮件帐户,或与各种商业组织,如Amazon或eBay帐户,如MySpace.com等网站的标识,。数字身份安全令牌表示,在网络上传输时。安全令牌只是一个字节表示关于数字身份信息。此信息包含一个或多个债权,其中每个都包含一些关于这个标识传达了总信息的一部分。一个简单的安全令牌可能只包括一个包含用户名的索赔,而一个更复杂的可能包括包含用户的名字,姓氏,家庭住址,和更多的索赔。某些数字标识的安全令牌可能还包括声称含有敏感信息,如信用卡号码。 身份认证提供者标识提供者正是顾名思义:为用户提供数字身份的东西,例如,身份提供者通常是一个系统,如政府机构的问题,你一个社会安全号码。身份提供者可能是您的银行或大学,身份提供者是有效的,因为你定义自己的用户名和密码。它可以是任何网站www.msn.com等。不同标识提供者创建的数字标识,可以携带不同的信息和用户真正是谁,他声称,提供不同层次的保证。依赖方依赖方是一个应用程序,以某种方式依赖于数字标识。依赖方将经常使用的身份(ie.the声称此标识的安全令牌中包含的信息)来验证用户,然后作出授权决定,如允许该用户访问一些信息。依赖方也可以使用的身份获得的信用卡号码,验证相同的用户访问,在不同的时间,或作其他用途。依赖方的典型例子包括互联网网站,网上书店和拍卖网站,任何应用程序,通过Web服务接受的请求。身份选择这是一个机制,提示用户选择一个可能很多的"信息卡",代表拥有/管理任何数量的不同标识提供的数据,以及相匹配的类型依赖方要求索赔。请注意该卡仅仅是一个指向数据的指针,它不包含任何数据。标识元系统就像我们有多个适合不同场合的物理身份,没有单一的数字身份,足以在数字世界。此外,这些不同的身份,将提供从不同的来源,因为没有哪一个身份提供者就足够了,无论是。这意味着,解决的办法是不规定一个单一的系统数字身份,而是要找到一个一致的方法来使用多个数字标识系统。我们需要的是一个身份metasystemfocused systemsa系统。如果这听起来混乱,下一节将使其更清晰。Windows CardSpace的Windows CardSpace是微软的一个标识元系统,使用户可以选择从他们的数字身份组合,并在他们接受的背景下,独立的身份,用于基础的身份识别系统中使用它们的具体实施。CardSpace是一个软件客户端,运行在Microsoft Windows,并可以参与身份标识元系统的框架内选择,一个Web服务框架,利用WS - *协议,三方之间的沟通要求:身份提供者(IP)依赖方(RP),和身份选择器。要记住的要点CardSpace是刚刚实施3部分系统的一个组成部分之一,很多人说"CardSpace的",指的不只是客户,但整个过程包括身份提供,依靠党和身份选择。这不是完美的使用,但它得到普遍的观点。该applet开始从被称为"数字身份",但现在它被称为"Windows CardSpace的"使用控制面板的CardSpace。CardSpace和Windows的卡服务(WCS)是同样的事情,他们都使用了被称为"InfoCard的"。的CardSpace客户端安装NET Framework 3.0的#8243;作为"的一部分。子系统(原名WinFX的)。CardSpace的客户端可触发方式有两种:从IE7中(用于Firefox的扩展也被释放)从使用Windows Communication Foundation(以前的靛蓝)构建服务。信息卡可分为两种类型:自发行(现在称为"个人):这是由用户创建的卡,这些卡相关的数据来自一个地方的身份提供商,建成的CardSpace客户端和编辑用户。在自我发行的信用卡有固定的债权(在本文末尾列出),用户可以编辑。管理:与这些卡相关的数据必须来自一些第三方的"权威"。 InfoCard的只包含元数据,没有真正的数据存储,当用户选择托管卡,CardSpace中获取连接的STS(安全令牌服务)运行指的元数据标识提供者。它是服务,实际上是负责提供安全令牌包含真正的索赔。用户可能无法编辑这些卡使用CardSpace的索赔,他们必须去给第三方使用第三方提供任何机制。创建了一个网站(依赖方)接受的InfoCard(信息卡)让我们循序渐进的过程,看到我们如何才能从用户创建依赖方接受信息卡(而不是标准的用户名和密码),并可以安全令牌解密得到用户的细节。首先,你必须安装SSL和CA证书,SSL证书(安全套接字层)证书,这是在确保主机(您的网站)和客户端之间的通道的一个组成部分。 CA证书的基本上都是高保证的核证机关所提供的证书,抢本文提供的示例代码。解压的样品和浏览的子目录"证书",其中包含所需的证书。按照文件"安装Instructions.doc"为您的系统上成功安装证书提供。成功安装证书后,我们将建立我们的应用程序的目录,并创建一个login.htm页面。使用VS​​ 2005创建一个新的网站。使用IIS管理器创建一个虚拟目录指向这个目录,并赋予它一个别名。我们不使用VS2005开发服务器,因为我们需要一个HTTPS(SSL)连接。这login.htm到我们的应用程序的入口点。此页将让我们选择,我们将最终提交到网站身份证。为了让我们选择一个卡,我们需要指示IE 7中调用CardSpace的选择。有两种方法,我们可以在其中声明页内的CardSpace选择;​​ OBJECT标签的使用,或使用一些XHTML。对于本示例,我选择的对象标记。这里是Login.htm的内容:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"



 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



 <html>



 <head>



 <title>Sample 1</title>



 </head>  



 <body>



 <form id="form1" method="post" action="carddetails.aspx">



 <button type="submit">Click here to sign in with your information card</button>



 <object type= "application/x-informationcard" name="xmlToken">



 <param name="tokenType" value="urn:oasis:names:tc:SAML:1.0:assertion"/>



 <param name="issuer" value="http://schemas.xmlsoap.org/ws/2005/05/identity/issuer/self" />



 <param name="requiredClaims" value=

 

  "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 



  http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier" />



 </object>



 </form>



 </body>



 </html>

 
在对象标记requiredClaims参数的重要参数之一。此参数概述卡必须发送什么样的信息才能被接受。可以看到,它需要四个组索赔的第一个名字,姓,电子邮件地址和私人的个人识别。这里的最后一个重要的,因为它提供了一个唯一的字符串这个特殊的卡。这是唯一的索赔,由内置的CardSpace的STS,用户不能编辑生成。有一个完整的索赔,在这篇文章的末尾清单。因此,页面是一个非常简单的。浏览此页使用IE 7。你还记得我们这里已经安装了一个www.fabrikam.com和CA证书adatom.com的SSL证书,所以应该是绿色的地址栏。点击该按钮打开卡选择界面。因此,一旦用户选择并发送一个卡到我们的应用程序,我们用它做什么呢?信息的传输使用安全的SSL连接,此外,票务信息也被加密。它的XML,但我们有一点点的工作要做之前,我们实际上可以读取和消费。如果你回去的示例应用程序创建一个标准的HTTP变量称为xmlToken,你还记得,提交的加密令牌。这是给你创建的信息卡对象的名称。为了查看此令牌,你需要创建一个叫做carddetails.aspx页面。这是形式的目标。在我们的应用程序,这将是carddetails.aspx责任提取和解密令牌。然后,它将直接显示卡内包含的信息。{C}这是一个非常简单的形式,同一个目标,显示卡的内容提交。打开login.htm,选择一张牌。然后重定向carddetails.aspx,你就可以看到加密卡的详细信息。它应该看起来像这个片段的东西。1H3mV/pJAlVZAst/Dt0rqbBd67g = E 63xBFdkPYFxOn0oIIj0bJ4P5l4Dl8f4neqZgI 91R eUGPrJPPfCd40Ilf66cWIz1Lr3po2nI2huF5wWqEOAoqutcHTBiMaFUAUNnrQbIdySxCsv??幸运的是微软已经为您下载的样品套件的一部分,包括所谓的令牌类型,需要照顾所有的解密和处理的XML卡。我不打算详细讲述这一类,因为它主要包含了基于证书的解密,这是本文的范围之外。如果你有兴趣的,但是,打开类看一看。这将允许您推出自己的类,如果您认为合适的的。首先,xmlToken字符串必须被解密。从样本下载网站/ App_Code目录中,你应该能够找到一个名为TokenProcessor.cs。这个文件包含了我刚才提到的Token类。这个文件添加到您自己的App_Code目录在Visual Studio。一旦你这样做,你需要修改Carddetails.aspx调用这个类,使我们可以访问我们的身份证的细节。删除LT; scriptgt从Codedetails.aspx块,新增4个标签的ID givenname,姓氏,电子邮件和上Codedetails.aspx PPID。打开代码隐藏页的Page_Load方法中添加以下代码:
Token token = new Token(Request.Params["xmlToken"]);

 

givenname.Text = token.Claims(ClaimTypes.GivenName); 



surname.Text= token.Claims(ClaimTypes.Surname);



email.Text=token.Claims(ClaimTypes.Email);



ppid.Text=token.Claims(ClaimTypes.PPID); 

显示卡的信息你必须导入两个命名空间,以使此代码正确编译,System.IdentityModel.Claims命名空间,也Microsoft.IdentityModel.TokenProcessor命名空间。此代码将解密令牌,访问令牌内的索赔,他们显示页面。如果导航回Login.htm,选择提交和发送卡,你应该看到这页面上的信息:
Neha蒂瓦里
nehatiwari@indiatimes.com
dio5cXHTu3V4nr92C/6/fXVuWBpQ5cUvYr5hiFTQis0 =这些,我提交的卡内包含的四个索赔的价值。 privatepersonalidentifier唯一标识我们的名片。所以这是它。你刚刚完成了一个简单的端到端应用程序使用CardSpace的。索赔清单现在,我想返回到我们指定的requiredClaims。在这个例子中,我们只发送四个信息,但正如您所看到的,你可以包括得多。这些说法都有一个特定的命名空间。在这里,他们是:由于名称= http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname电子邮件地址= http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress姓= http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname街道地址= 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/genderPPID = http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier 网站= http://schemas.xmlsoap.org/ws/2005/05/identity/claims/website[此列表是从{A}]参考文献:{A2}{A3}{A4}{A5}

回答

评论会员:NixBure 时间:2011/12/14
当我试图使用的名称空间:"Microsoft.IdentityModel.TokenProcessor",使用Visual Basic或C#asp.net我得到这个消息
"BC40056:进口的命名空间或Microsoft.IdentityModel.TokenProcessor'指定的类型不包含任何公共成员或无法找到。"
ü知道为什么它的发生
评论会员:?拉维Sindri 时间:2011/12/14
您好所有,
我开发的ASP。NET的网站,我想结帐页面上调用身份选择... ...我的问题如下:
1)如果网站如http://位置....或https:// ..或文件Syetem ...
2)我需要强制使用IIS的ASP(IIS 6.0)。CardSpace的NET开发服务器?
3)我的网站工作,当我按CTRL F5键和相应的页面上,然后当我点击一个按钮的标识选择应该被调用...这是我应该去吗?
4)每个cardspace.netfx3.com样品运行和IE7的图标,这个属性的一个... ...目标iexplore.exe和"https://www.fabrikam.com/CardSpace",这需要你有样品的链接到同一页...应该做些什么,使我们可以显示我们的网站开始页面? ...

请告诉我需要做什么... ...任何帮助将不胜感激! ...


Sameer
评论会员:ramsharma 时间:2011/12/14
我发现这篇文章非常有趣和有用的的{S0}