<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title><![CDATA[[SecurityRatty] tag: informationcard]]></title>
    <link>http://securityratty.com/tag/informationcard</link>
    <description></description>
    <pubDate>Sun, 16 Dec 2007 03:42:00 +0000</pubDate>
    <generator>iRatty Engine</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <item>
      <title><![CDATA[Introducing Microsoft Code Name Zermatt]]></title>
      <link>http://securityratty.com/article/732b3e6ffabbf1bdf556615c13244f16</link>
      <guid>http://securityratty.com/article/732b3e6ffabbf1bdf556615c13244f16</guid>
      <description><![CDATA[For a couple of years now, I've been giving talks about &quot;claims-based identity&quot;, and &quot;claims-aware applications&quot;. The most concrete example of a claims-based identity architecture that I've been able...]]></description>
      <content:encoded><![CDATA[<p>For a couple of years now, I&#39;ve been giving talks about &quot;claims-based identity&quot;, and &quot;claims-aware applications&quot;. The most concrete example of a claims-based identity architecture that I&#39;ve been able to show so far is Active Directory Federation Services v1 (ADFS) and Windows CardSpace. And the claims programming model I&#39;ve been using is the one that shipped with WCF in the System.IdentityModel assembly.<br /><br />But today I&#39;m happy to announce that there&#39;s a new path forward in the claims world. <a href="https://connect.microsoft.com/Downloads/DownloadDetails.aspx?SiteID=642&amp;DownloadID=12937">Zermatt</a> is the &quot;identity framework&quot; that I&#39;ve been itching to talk about, but until today, hasn&#39;t been announced publicly.<br /><br />Well, <a href="http://blogs.msdn.com/vbertocci/">Vittorio</a> just made the <a href="http://blogs.msdn.com/vbertocci/archive/2008/07/09/announcing-the-beta-release-of-zermatt-developer-identity-framework.aspx">announcement</a> just a moment ago, and now you can get your hands on this new framework. With it, you can build web applications and services that rely on claims to discover identity details about users. And you can easily build a security token service (STS) that supplies those claims. Zermatt makes this possible by supplying all of the plumbing that implements WS-Trust (for web services) and WS-Federation (for browser-based web applications). All you have to do is figure out what claims you want to issue based on what you know about the user and what you know about the application (aka relying party).<br /><br />I was fortunate to be asked by the team to write the <a href="https://connect.microsoft.com/Downloads/DownloadDetails.aspx?SiteID=642&amp;DownloadID=12901">white paper</a> introducing Zermatt to developers. You can download it here. The paper introduces the ideas behind claims-based identity, and talks about how you can use Zermatt to centralize authentication (and to some degree, authorization) in an STS, thus making it easy to achieve single sign on in your applications, and even be ready to federate with other organizations or platforms should that need arise.<br /><br />Here are some highlights of what you&#39;ll find in Zermatt:<br /><br />Zermatt includes a new claims programming model, with IClaimsPrincipal and IClaimsIdentity, two new interfaces that extend the existing IPrincipal and IIdentity that you already know and love from the .NET Framework. IClaimsIdentity adds a collection of claims. Zermatt&#39;s claims programming model is in many ways simpler than that in WCF - the Claim class exposes the value of claims as strings (always) and calls the value of a claim &quot;Value&quot;, instead of &quot;Resource&quot; as WCF did. But the model is also more sophisticated - multi-hop delegation is supported, so one user can &quot;Act As&quot; another user, and the relying party will see the entire chain of delegation as a linked list of IClaimsIdentity objects.<br /><br />Zermatt includes an HttpModule that you can wire into your ASP.NET application that will implement WS-Federation for you. This module (called the FAM) is a lot like the &quot;Web Agent&quot; from ADFS, and it makes it quite easy to build a web application that relies on claims.<br /><br />Zermatt includes plumbing that sits on top of WCF and simplifies building claims-based web services and clients.<br /><br />Zermatt also includes a couple of ASP.NET controls for adding SignIn functionality to websites. The first is a passive sign-in control which simply redirects the browser to an STS to get claims. The second is the highly anticipated InformationCard control that pops the user&#39;s identity selector and lets her choose which identity she wants to use.<br /><br />Zermatt comes with a bunch of sample code to help you get started.<br /><br />All you need to test-drive Zermatt is Visual Studio 2008 and your curiosity. Download the beta now, read the whitepaper, experiment with the samples, and see what claims-based identity is all about!<br /><br />For more on Zermatt, you&#39;ll want to watch <a href="http://blogs.msdn.com/vbertocci/">Vittorio&#39;s blog</a>. I&#39;ll also be talking more about it in the future!</p><div style="clear:both;"></div><img src="http://www.pluralsight.com/community/aggbug.aspx?PostID=51689" width="1" height="1">]]></content:encoded>
      <pubDate>Wed, 09 Jul 2008 16:27:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/zermatt">zermatt</category>
      <category domain="http://securityratty.com/tag/claims world">claims world</category>
      <category domain="http://securityratty.com/tag/claims">claims</category>
      <category domain="http://securityratty.com/tag/zermatt includes">zermatt includes</category>
      <category domain="http://securityratty.com/tag/includes">includes</category>
      <category domain="http://securityratty.com/tag/claims-aware applications">claims-aware applications</category>
      <category domain="http://securityratty.com/tag/framework">framework</category>
      <category domain="http://securityratty.com/tag/identity framework">identity framework</category>
      <category domain="http://securityratty.com/tag/identity">identity</category>
      <source url="http://www.pluralsight.com/community/blogs/keith/archive/2008/07/09/introducing-microsoft-code-name-zermatt.aspx">Introducing Microsoft Code Name Zermatt</source>
    </item>
    <item>
      <title><![CDATA[Identity Framework Probable Feature List]]></title>
      <link>http://securityratty.com/article/aa0c59df629f14d92a899149a6e24756</link>
      <guid>http://securityratty.com/article/aa0c59df629f14d92a899149a6e24756</guid>
      <description><![CDATA[Vittorio has just concluded a series of posts where he's sharing a sneak preview of the Identity Framework (Fx for this post). Based on what he's shown and his descriptions, I've put together a little...]]></description>
      <content:encoded><![CDATA[<p><a href="http://blogs.msdn.com/vbertocci/">Vittorio</a> has just concluded a <a href="http://blogs.msdn.com/vbertocci/archive/2007/12/13/developing-a-minimal-sts-with-adfs-2-identity-framework-part-iii-creating-a-relying-party.aspx">series of posts</a> where he's sharing a sneak preview of the Identity Framework (Fx for this post). Based on what he's shown and his descriptions, I've put together a little list of some features we can probably expect from the Fx. This is all pre-alpha stuff and the API will probably change, but the core features being shown will probably be similar.</p> <p>These are a rather concise set notes that I've taken while looking over his code more closely. I created a <a href="http://www.pluralsight.com/wiki/default.aspx/Keith/IdentityFrameworkProbableFeatureList.html">wiki page</a> to quickly hack up this list. Here's what it looks like now:</p> <ul> <li>Fx helps you implement a custom STS  <ul> <li>STS can issue managed cards (see below)  <li>Fx provides a base class for your STS, (it's currently called SecurityTokenService)  <li>You derive from this base class and supply a "ScopeProvider" implementation which answers (at least) two questions:  <ul> <li>What type of claims your STS can issue (you have to generate a list of claim URIs that you will be issuing)  <ul> <li>This is helpful for issuing managed cards, which need to specify which claims an IdP supplies </li></ul> <li>What claims should be issued for a given user request, which consists of:  <ul> <li>Information about the target relying party (AppliesTo), which is not always known (an auditing STS will know this, for example)  <li>The AuthorizationContext for the user requesting the token (this gives you the incoming set of claims from the user)  <li>The actual RST if you want to look at it (this is a WS-Trust thing)  <li>The issuer's credentials (you need this to generate the claim set) </li></ul></li></ul> <li>User authentication methods (an STS needs to authenticate the user before issuing a token)  <ul> <li>Kerberos  <li>X509 Certificates  <li>SAML from personal cards  <li>Username/Password </li></ul></li></ul> <li>Fx helps you expose your STS using WCF  <ul> <li>Fx supplies a custom ServiceHostFactory (currently called WindowsInformationCardServiceHostFactory)  <li>This allows you to create a .SVC file for a WCF endpoint to expose your STS </li></ul> <li>Fx supplies an HttpModule for the traditional ASP.NET authentiation pipeline  <ul> <li>According to Vittorio, this "automates a lot of the validation work in the framework". It's called FederatedAuthenticationModule, which gives a hint as to its function. It probably sets up HttpContext.User like a traditional authn module would. It's probably not specific to building an STS (remember the Fx is also used to build relying parties)  <li>There's a custom config section that configures this module. Vittorio uses it to say, "use my SSL cert as my relying party cert". This is probably required in case the client wants to authenticate using a card. </li></ul> <li>Issuing managed cards  <ul> <li>Fx provides a function to generate a managed card, as well as a class that represents it (it's currently called InformationCard)  <ul> <li>You can specify the default name and image for the card you issue, controlling what the client sees when she installs your card  <li>Fx provides an information card serializer: InformationCard&lt;--&gt;XML (this is what the user installs into her identity selector - an XML representation of the card) </li></ul></li></ul> <li>Fx provides a utility to generate a PPID, which is a pretty complicated task!  <ul> <li>Currently takes three inputs to gen a PPID for the relying party to use:  <ul> <li>Client's AuthorizationContext  <li>The relying party (AppliesTo)  <li>Issuer's credentials </li></ul></li></ul> <li>Fx provides some helpers for reading claims from an AuthorizationContext  <ul> <li>I notice a ClaimsContext class that allows you to write code like I show below, although I'm not sure how it figures out how it deals with multiple ClaimSets. </li></ul></li></ul><pre>string email = myClaimsContext[ClaimTypes.Email]
</pre>
<ul>
<li>Fx provides a set of ASP.NET login controls (three right now): 
<ul>
<li>FederatedPassiveSignIn (I'm guessing this is for doing traditional ADFS v1 style logons) 
<li>InformationCard (login control that accepts information cards) 
<li>SignInStatus (probably similar features to ASP.NET's LoginStatus) </li></ul>
<li>Fx helps you build relying parties 
<ul>
<li>InformationCard login control 
<ul>
<li>You can specify whether you want to accept personal or managed cards 
<li>If you accept managed cards, a wizard will take a card file as input to automatically configure the control (great idea, guys!) 
<li>Wizard shows claims supported by the managed card, and you can select which ones you want (either optionally or required) 
<li>There appears to be a SignInMode that you can use to establish a session. I'm guessing that this issues an ASP.NET Forms logon cookie or something equivalent. This is probably one of the things that the HttpModule deals with (reading that cookie and using it to configure HttpContext.User). 
<li>Here are the control's identity-related events: 
<ul>
<li>SecurityTokenReceived 
<li>SecurityTokenValidated 
<li>SignedIn 
<li>SignInError </li></ul>
<li>Here's a picture Vittorio shows that shows a number of the properties of the control if you want to try to guess more about what it's going to do: </li></ul></li></ul></li></ul>
<p><img src="http://blogs.msdn.com/blogfiles/vbertocci/WindowsLiveWriter/DevelopingaminimalSTSwithADFS2IdentityFr_1401D/image_284b864e-95ce-4152-a548-46b9519a9963.png"></p><img src ="http://pluralsight.com/blogs/keith/aggbug/49445.aspx" width = "1" height = "1" />]]></content:encoded>
      <pubDate>Sun, 16 Dec 2007 03:42:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/informationcard login control">informationcard login control</category>
      <category domain="http://securityratty.com/tag/login control">login control</category>
      <category domain="http://securityratty.com/tag/information card serializer">information card serializer</category>
      <category domain="http://securityratty.com/tag/information">information</category>
      <category domain="http://securityratty.com/tag/control">control</category>
      <category domain="http://securityratty.com/tag/user authentication methods">user authentication methods</category>
      <category domain="http://securityratty.com/tag/user">user</category>
      <category domain="http://securityratty.com/tag/custom sts">custom sts</category>
      <category domain="http://securityratty.com/tag/card">card</category>
      <source url="http://pluralsight.com/blogs/keith/archive/2007/12/16/49445.aspx">Identity Framework Probable Feature List</source>
    </item>
  </channel>
</rss>
