How would you design and implement OpenID components?
(Was "How does OpenId work")
I realize this question is somewhat of a duplicate, and yes, I have read the spec and the wikipedia article.
After reading the materials mentioned above, I still don't have a complete picture in my head of how each step in the process is handled. Maybe what's missing is a good workflow diagram for how an implementation of OpenID works.
I'm considering incorporating OpenID into one of my applications to accomodate a B2B single-sign-on scenario, and I will probably go with DotNetOpenID instead of trying to implement it myself, but I still want a better grasp of the particulars before I get started.
Can anyone recommend books or websites that do a good job of explaining it all? It wouldn't hurt to have an answer that covers the basics here on this site as well.
[Edit]
I changed the title to be more implementation-specific, since there are obviously plenty of places to get the ten-thousand-foot view.