Put breakpoints and follow the Shibboleth IDP
Cantor, Scott
cantor.2 at osu.edu
Thu Aug 9 20:26:32 EDT 2012
On 8/9/12 7:32 PM, "Manisha Sinha" <manishasinha70 at yahoo.com> wrote:
>I have spent the last few hours trying to get my through the code. I have
>not been able to figure out anything yet. I have worked with other open
>source (though smaller scale), and could understand most of the code. I
>understand that building an IDP is a complex project. Those who are
>working on it may not agree with me....but is there anyone (with not much
>experience with security and spring) who could get a good grasp of it
>quickly. If yes, please share your notes/thoughts.
I know Java only at a basic level (enough to do bad but functional Java
code), knew nothing about Spring. It took me a week or so, maybe a bit
less, to pick up on most of the key pieces. Because I *do* know security
and SAML. If you haven't read the standard and many of the subsequent
profiles, to be honest, you're not even serious. So I'll assume you have.
>
>P.S: Please don't say that I need to put in more effort. I am not looking
>for a shortcut....just more inputs regarding the class/package/project
>structure, how different authentication mechanisms are handled, how the
>assertion is build, communication
> with SP..... I need to understand the IDP quickly so that I can use it
>in my project.
>From memory alone for SSO, probably not 100% correct:
Profile Handler
Message Decoded by OpenSAML layer
Request Context built
Creates Login Context
Control Passed to Authentication Engine
Authn Engine
Analyzes Login Context to identify appropriate Login Handler
Passes control to Login Handler
Login Handler
Does its business and returns authenticated identity and ancillary info
to engine
Authn Engine
Transfers control back to Profile Handler
Profile Handler
Runs attribute resolver and filter
Packages results into assertion
Generates protocol response
Response encoded by OpenSAML layer
Much of the profile work is in base classes for the SAML 1 and SAML 2
profiles and the weakest/hardest part of figuring it all out is that
various handoffs between the classes during profile execution for
populating the request context and generating the response.
-- Scott
More information about the dev
mailing list