<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>About Relying Party STSs (a.k.a, what is RequireFederatedIdentityProvisioning?)</title><link>http://blogs.msdn.com/card/archive/2007/12/18/about-relying-party-stss-a-k-a-what-is-requirefederatedidentityprovisioning.aspx</link><description>A useful, yet sparsely documented feature of Windows CardSpace is its support for resource side Security Token Services (STSs) &amp;#8211; STSs that are used by relying parties rather than Identity Providers. Vittorio has done an excellent job helping to</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: About Relying Party STSs (a.k.a, what is RequireFederatedIdentityProvisioning?)</title><link>http://blogs.msdn.com/card/archive/2007/12/18/about-relying-party-stss-a-k-a-what-is-requirefederatedidentityprovisioning.aspx#6796081</link><pubDate>Tue, 18 Dec 2007 15:21:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6796081</guid><dc:creator>kingbing</dc:creator><description>&lt;p&gt;Wow. Great post, thanks. Between this and Vittorio's post, I'm all sorted on IP and RP STSes.&lt;/p&gt;
&lt;p&gt;Unfortunately, it now raises a couple of questions about RequiresFederatedIdentityProvisioning. This is something I'm finding difficult to wrap my head around. I wonder if you there's another post needed just for this subject.&lt;/p&gt;
&lt;p&gt;Let me try and talk through what I think happens. If the policy for STS1 states it requires an IssuedToken from STS2, CardSpace (or an alternative WS stack, such as WCF) will retrieve the policy for STS2. If that policy states it needs an IssedToken for STS3, the policy for STS3 is retrieved.&lt;/p&gt;
&lt;p&gt;Is RequireFederatedIdentityProvisioning an indication that the WS stack should stop retrieving policies and prompt the user to resolve the current policy? Or is it really an indication that this STS requires a managed card? (Are they the same thing?)&lt;/p&gt;
&lt;p&gt;Thinking out loud, I could simply keep resolving policies until I reached an STS policy that no longer required an IssuedToken but a username token, X059 cert or Kerberos ticket. I could then display the identity selector to resolve the current policy, picking a card that matches the current issuer and required claims (if one exists), and getting prompted for username, smart card, etc. And the current STS might well be the self-issued card STS.&lt;/p&gt;
&lt;p&gt;Why would I need a policy element to tell me to prompt the user when I can just keep resolving until I hit the last STS?&lt;/p&gt;
&lt;p&gt;The only reasons I can think of are:&lt;/p&gt;
&lt;p&gt;1. Using an alternative stack, I wouldn't know to display CardSpace, but would prompt the user myself. But then the RequireFederatedIdentityProvisioning becomes DisplayCardSpaceIdentitySelector, which is a little specific...&lt;/p&gt;
&lt;p&gt;2. The algorithm relies of a known set of &amp;quot;final&amp;quot;, unresolvable tokens (username, x509, etc) Future expansion is made more difficult&lt;/p&gt;
&lt;p&gt;3. Picking a different identity earlier in the chain. If I'm trying to log onto my bank, and they give me a managed card backed by a self-issued card, would I want to pick the managed card from my bank, or the self-issued card I'd backed it with? In my simple algorithm, I'd have to select the self-issued card. What happens if I have 2 managed cards? What if both managed cards are backed by the same self-issued card?&lt;/p&gt;
&lt;p&gt;I think this last one is the clincher for me. If the bank's STS specifies RequireFederatedIdentityProvisioning, I know that the user has a managed card, and should let them choose which one. If that choice then requires more resolving, I do so after the choice.&lt;/p&gt;
&lt;p&gt;Am I anywhere near right?&lt;/p&gt;
&lt;p&gt;Sorry for rambling, but this is a subtle topic that I'm finding difficult to properly understand. Plus it's really interesting. Great post, please keep them coming!&lt;/p&gt;
&lt;p&gt;Cheers&lt;/p&gt;
&lt;p&gt;Matt&lt;/p&gt;
&lt;p&gt;PS. The docs for &amp;lt;useManagedPresentation&amp;gt; are a bit poor: &amp;quot;Represents a binding element that specifies that managed presentation to be used. This element has no attribute and is present as an empty switch.&amp;quot; Nowhere near as useful as this post...&lt;/p&gt;
</description></item><item><title>re: About Relying Party STSs (a.k.a, what is RequireFederatedIdentityProvisioning?)</title><link>http://blogs.msdn.com/card/archive/2007/12/18/about-relying-party-stss-a-k-a-what-is-requirefederatedidentityprovisioning.aspx#6804154</link><pubDate>Wed, 19 Dec 2007 11:21:21 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6804154</guid><dc:creator>CardSpaceBlog</dc:creator><description>&lt;p&gt;Thanks for asking the clarifying questions, I’ll add a new post to try and explain RequireFederatedIdentityProvisioning. &amp;nbsp;To quickly answer some of your questions.&lt;/p&gt;
&lt;p&gt;First, you say &amp;nbsp;‘CardSpace (or an alternative WS stack, such as WCF)’. &amp;nbsp;I understand what you are saying here, but just to be clear, CardSpace is not a WS stack. &amp;nbsp;In the browser case, it contains the logic to follow the policy chain, but it sits upon WCF when it does it, making WCF calls to retrieve policy and make the token requests.&lt;/p&gt;
&lt;p&gt;I’d say RequireFederatedIdentityProvisioningis really a hint that the STS that has this element in its policy should be accessed via a pre-provisioned card, and in most cases this means user interaction as well. &amp;nbsp;So the user needs to have a managed card to use the STS (by use I mean get a token from the STS that can be used to auth to another STS or RP).&lt;/p&gt;
&lt;p&gt;Say the policy ends by requiring a Kerberos ticket. &amp;nbsp;Even in a WCF scenario, there is no guarantee that CardSpace should be called without the RequireFederatedIdentityProvisioning element being present. &amp;nbsp;It could be that auth is done with no user interaction, in many cases inside an organization this might be desirable. &amp;nbsp;Similarly for username/password and X509 auth, the WCF application could provide a custom UI for collecting credentials, so again, no CardSpace should show. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;In all of these cases, when called from the browser and CardSpace follows the chains, &amp;nbsp;it could ignore the elements and behave as you suggest. &amp;nbsp;But there is a nice architectural consistency to have the same behavior in both cases. &lt;/p&gt;
&lt;p&gt;Now for the self-issued backed card case, I think the element is critical even in the browser scenario, since it differentiates between the RP STS and IP STS scenario ( I explain this one in more detail in the post when I introduce RequireFederatedIdentityProvisioning)&lt;/p&gt;
&lt;p&gt;Yep absolutely want to avoid any reference in the protocol that is CardSpace specific. &amp;nbsp;So DisplayCardSpaceIdentitySelector is out, maybe UseInformationCardIdentitySelector would probably work, but without a major need to rename it probably won’t happen now.&lt;/p&gt;
&lt;p&gt;You are right on with your second point, it makes additions in the future easier.&lt;/p&gt;
&lt;p&gt;Your point 3 is good to, similar to the one I was making about wanting to be able to have a difference between a RP STS that accepts a self-issued card and an IP STS that accepts a self-issued card.&lt;/p&gt;
&lt;p&gt;I very much appreciate the questions. &amp;nbsp;It is subtle, I’ve explained in several times both inside and outside of MS, so really want to get the post to be as helpful as possible.&lt;/p&gt;
&lt;p&gt;thanks,&lt;/p&gt;
&lt;p&gt;Caleb&lt;/p&gt;
</description></item><item><title>re: About Relying Party STSs (a.k.a, what is RequireFederatedIdentityProvisioning?)</title><link>http://blogs.msdn.com/card/archive/2007/12/18/about-relying-party-stss-a-k-a-what-is-requirefederatedidentityprovisioning.aspx#6811032</link><pubDate>Thu, 20 Dec 2007 02:29:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6811032</guid><dc:creator>Pedro Felix</dc:creator><description>&lt;p&gt;Hello&lt;/p&gt;
&lt;p&gt;This is a very interesting post, dealing with some questions for which I don’t have a clear answer.&lt;/p&gt;
&lt;p&gt;First of all, when does the “chase” of the policy chain ends? The specs, namely [1], don’t deal with this issue and I’ve seen different answers to this question, namely:&lt;/p&gt;
&lt;p&gt;a) &amp;nbsp;&lt;a rel="nofollow" target="_new" href="http://blogs.msdn.com/vbertocci/archive/2007/09/24/the-resource-sts-r-sts-rp-sts-a-sts-the-other-face-of-token-issuing.aspx"&gt;http://blogs.msdn.com/vbertocci/archive/2007/09/24/the-resource-sts-r-sts-rp-sts-a-sts-the-other-face-of-token-issuing.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;“When the selector encounters such an element, it will fetch (via WS-MetadataExchange) the policy of the resource STS. If that policy happen to be satisfied by one or more cards (...) owned by the user, the identity selector will pop up”&lt;/p&gt;
&lt;p&gt;b) &amp;nbsp;&lt;a rel="nofollow" target="_new" href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1668019&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1668019&amp;amp;SiteID=1&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;“The policy traversal ends when either of following is seen:&lt;/p&gt;
&lt;p&gt;1. The IssuedToken being asked for has issuer as self (&lt;a rel="nofollow" target="_new" href="http://schemas.xmlsoap.org/ws/2005/05/identity/issuer/self"&gt;http://schemas.xmlsoap.org/ws/2005/05/identity/issuer/self&lt;/a&gt;), anonymous, or not specified&lt;/p&gt;
&lt;p&gt;2. issuedtoken whose mex address is unavailable or not specified&lt;/p&gt;
&lt;p&gt;3. credential being asked for is not a issued-token (like username/X509/Kerberos) in managed card case”&lt;/p&gt;
&lt;p&gt;Does the policy chain “chase” stops when exists a card “satisfying” the policy requirements?&lt;/p&gt;
&lt;p&gt;Shouldn’t this behavior be *clearly* described in the infocard specs ([1]) for all identity selectors? Or is this an issue that can be handled differently by each identity selector?&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
&lt;p&gt;Pedro &lt;/p&gt;
&lt;p&gt;[1] “A Guide to the Identity Selector Interoperability Profile V1.0“, April, 2007&lt;/p&gt;</description></item><item><title>re: About Relying Party STSs (a.k.a, what is RequireFederatedIdentityProvisioning?)</title><link>http://blogs.msdn.com/card/archive/2007/12/18/about-relying-party-stss-a-k-a-what-is-requirefederatedidentityprovisioning.aspx#6811344</link><pubDate>Thu, 20 Dec 2007 03:10:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6811344</guid><dc:creator>Pedro Felix</dc:creator><description>&lt;p&gt;Hello again.&lt;/p&gt;
&lt;p&gt;I’ve a couple of comments regarding your statement “by choosing to trust the RP site, the user indirectly trusts the services that site chooses to use”&lt;/p&gt;
&lt;p&gt;Consider the following scenario:&lt;/p&gt;
&lt;p&gt;1) An RP requires a token issued by a third party “age STS” (similar to the one at Identity Lab), containing an “age” claim. However, the organizations running the RP and the “age STS” are not the same. &lt;/p&gt;
&lt;p&gt;2) This third party “age STS” requires a token issued from an IP, containing a “DateOfBirth” claim.&lt;/p&gt;
&lt;p&gt;3) A user U has a managed token from this IP.&lt;/p&gt;
&lt;p&gt;When the CardSpace requests the disclosure authorization from the user U, it presents the following information: the claim is “DateOfBirth” and the requesting site is RP.&lt;/p&gt;
&lt;p&gt;However, the trust relation that U has with RP and with “age STS” can be very different. &lt;/p&gt;
&lt;p&gt;Namely, consider the scenario where user U “trusts” “age STS” enough to reveal its date of birth but do not “trusts” RP enough to disclosure the same type of information. In this situation, the information presented by the CardSpace UI will be misleading.&lt;/p&gt;
&lt;p&gt;In my opinion, this problem arises because the “age STS” is not really a “RP STS”. Instead, its role is of a “third party claim transformer”, which isn’t necessarily the same: a “RP STS” is an RP-side implementation detail (they are inside the same boundary); a “third party claim transformer” cannot be considered an implementation detail and must be explicitly considered on the user’s trust decision.&lt;/p&gt;
&lt;p&gt;Am I missing something here?&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
&lt;p&gt;Pedro&lt;/p&gt;
</description></item><item><title>re: About Relying Party STSs (a.k.a, what is RequireFederatedIdentityProvisioning?)</title><link>http://blogs.msdn.com/card/archive/2007/12/18/about-relying-party-stss-a-k-a-what-is-requirefederatedidentityprovisioning.aspx#7017672</link><pubDate>Mon, 07 Jan 2008 20:22:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7017672</guid><dc:creator>CardSpaceBlog</dc:creator><description>&lt;p&gt;Thanks for the good questions Pedro. &amp;nbsp;I'm just getting back in after the holidays, but will write another post soon to try and address them.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Caleb&lt;/p&gt;
</description></item><item><title>CardSpace: Behind The Code : About Relying Party STSs (a.k.a, what is RequireFederatedIdentityProvisioning?)</title><link>http://blogs.msdn.com/card/archive/2007/12/18/about-relying-party-stss-a-k-a-what-is-requirefederatedidentityprovisioning.aspx#8575446</link><pubDate>Thu, 05 Jun 2008 18:16:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8575446</guid><dc:creator>Weddings</dc:creator><description>&lt;p&gt;A useful, yet sparsely documented feature of Windows CardSpace is its support for resource side Security Token Services (STSs) &amp;amp;amp;#8211; STSs that are used by relying parties rather than Identity Providers. Vittorio has done an excellent job helping&lt;/p&gt;
</description></item></channel></rss>