You may want to look into RPX (http://rpxnow.com) - it's a commercial provider that does something similar to what I described above. I'm not a huge fan of them being a hosted service, but they do make it really straight-forward to login.
Facebook Apps use OpenID.
http://step2.googlecode.com/svn/spec/openid_oauth_extension/...
OAuth is for giving your application the ability to access someone elses, without users of your application having to supply their credentials to you.
OpenID allows for users of your application to use their credentials for another service authenticate with yours.
OpenID allows users to log into _YOUR_ site with a single login that they can use for other sites that support it. An alternative is your regular user/pass login (which you'll have to implement anyway for users without openid).
OAuth allows you to get data from your users accounts on other websites (twitter, yahoo, gmail etc) in a secure, supported way. An insecure and brittle alternative would be to ask your user to give you their login details for a different site on your site and then screen scrape their account.