Hi Prateek The use-case we were going for here is really more like a classic 2-legged oauth scenario. A company has an existing SAML web federation established with a service provider which is providing SSO to it's users. They now want to perform API based integration with the service provider to perform some data integration on-behalf of the user, for instance sync their calendar. This function needs to execute as that user account, and the company does not wish to establish or use passwords at the service provider. They have 10000 users, and do not wish for each of them to go through a classic 3 legged delegation flow; there are too many users to coordinate and 1 single trust decision by a privileged admin will suffice. So - the company / service provider decide to reuse their existing SAML configuration for API federation. (note that nothing about the profile dictates you need to have web sso in place, nor reuse the metadata exchange...just and example )
The company acts as both the IDP and OAuth2 client. Their integration client obtains the assertion and posts it to the token endpoint. The token endpoint generates an access token for the subject of the SAML assertion and the integration client can now execute as that user. The assertion is discarded. So - this is intended to be very much like web sso and use short lived bearer assertions that are exchanged for API sessions. Hope that helps clarify. -cmort ________________________________________ From: oauth-boun...@ietf.org [oauth-boun...@ietf.org] On Behalf Of Prateek Mishra [prateek.mis...@oracle.com] Sent: Wednesday, August 04, 2010 8:08 AM To: Brian Campbell Cc: oauth Subject: Re: [OAUTH-WG] SAML 2.0 Bearer Assertion Profile for OAuth 2.0 draft Brian, it would probably help to clarify that you are proposing this as a additional or follow-on step to SSO implemented via the SAML web browser profiles (right?). Maybe some text could be added to the draft to make that explicit. This is in contrast to more general token exchange scenarios - here are bunch of SAML /XYZ tokens, now give me an OAuth token for for a certain purpose. I agree with you that the latter would require quite a bit of additional work. Here is my understanding of the current use-case - The user delivers a SAML bearer token (issued at an IdP) via a browser profile to an SP. The SP, performs some business service for the user and at some point requires access to user resources at the IdP or at some third-party site. Switching to OAuth terminology, the Client (SP) exchanges the said SAML bearer token to the Authorization server (could be at the IdP - this would be a common case I think) for an OAuth token. This is the exchange you are describing in your draft. Once the client obtains the OAuth token, it can bind it to a request for the user resource. I have some mild SAMology concerns about this - historically the SAML bearer token has been constrained to have a short life-time and the general advice is not to forward it beyond the SP. I am aware that in practice this isnt the case - often the token is bound to some subsequent flows - somewhat along the lines you are proposing. I will follow up with these concerns on the SAML list. - prateek > Seems like a much more complicated scenario. Allowing more than one > assertion, off the top of my head, would necessitate some major > changes to this profile: > > * Define how multiple assertions are encoded into the single > "assertion" form control (samlp:Response, concatenated, something > else?) > * Deal with subject equality across the assertions > * Define the processing rules for multiple assertion (from different > issuers) and the expected behavior when some but not all are valid. > > That seems like it would add significant complexity to the existing > draft (that I'm trying to keep simple) for a particular scenario that > I'm not sure is very common. But maybe I'm wrong. Is this something > that others anticipate needing? If so, does it belong here? > > > On Mon, Aug 2, 2010 at 4:26 PM, Anthony Nadalin <tony...@microsoft.com> wrote: > >> So the scenario we have is where there are multiple tokens from attribute >> and identity providers need to be delivered to an OAuth authorization server >> to satisfy the resource owner's policy of required claims. So this is a case >> where a single SAML token/assertion is not enough to satisfy the claim, we >> still expect that the signature verification is out of scope. >> >> -----Original Message----- >> From: oauth-boun...@ietf.org [mailto:oauth-boun...@ietf.org] On Behalf Of >> Brian Campbell >> Sent: Monday, August 02, 2010 2:53 PM >> To: oauth >> Subject: Re: [OAUTH-WG] SAML 2.0 Bearer Assertion Profile for OAuth 2.0 draft >> >> I guess I'd need to understand the scenario better before I'd have an >> opinion one way or the other. However, I will say that In this >> profile I was specifically looking to avoid the complexity that exists in >> SAML Web SSO by allowing for multiple assertions and multiple subject >> confirmations. >> >> On Mon, Aug 2, 2010 at 3:20 PM, Anthony Nadalin <tony...@microsoft.com> >> wrote: >> >>> There are many cases where we need to have more than 1 SAML assertion be >>> used to represent the authorization token, so would want a provision for >>> multiple SAML tokens and not sure it makes sense to have a separate profile >>> for that or add it as an option here. >>> >>> -----Original Message----- >>> From: oauth-boun...@ietf.org [mailto:oauth-boun...@ietf.org] On Behalf >>> Of Brian Campbell >>> Sent: Thursday, July 15, 2010 1:50 PM >>> To: oauth >>> Subject: [OAUTH-WG] SAML 2.0 Bearer Assertion Profile for OAuth 2.0 >>> draft >>> >>> I'm gong to join the growing list of people attaching a potential I-D >>> to an email due to he cut off time for the I-D submissions. Attached >>> is a draft that aims to tightly define the particular format of a SAML >>> 2.0 bearer assertion in requesting an access token using the assertion >>> grant_type. I've been working with Chuck at Salesforce.com on this >>> and the primary goal is to have some documentation or specification >>> that is sufficient to facilitate interoperability between >>> independently developed implementations or products. This, of course, >>> wouldn't preclude using SAML in other ways - it would only provide one >>> concrete definition to implement against. >>> >>> I intend to submit this as an I-D when the submission process reopens. >>> Any feedback from this group would be appreciated as well as thoughts >>> about this eventually becoming a working group draft. >>> >>> Thanks, >>> Brian Campbell >>> >>> >> _______________________________________________ >> OAuth mailing list >> OAuth@ietf.org >> https://www.ietf.org/mailman/listinfo/oauth >> >> >> > _______________________________________________ > OAuth mailing list > OAuth@ietf.org > https://www.ietf.org/mailman/listinfo/oauth > _______________________________________________ OAuth mailing list OAuth@ietf.org https://www.ietf.org/mailman/listinfo/oauth _______________________________________________ OAuth mailing list OAuth@ietf.org https://www.ietf.org/mailman/listinfo/oauth