看了一下GOOGLE的SAML实现,大跌眼镜,他不是像Windows Live ID一样提供身份信息的,相反,他是google application作为service provider,接收3rdparty传过来的saml assertion的。google现在卖他们的gmail等服务,其实就是以前做得企业邮箱,当然,还有gtalk,google doc之类的程序,这些东西加起来,卖50$一个账号。这也挺好的,我老婆这样的单位就不需要买一个服务器做邮箱了,还老维护,还老当机。
话说回来,Google把这些服务卖给一个公司之后,可以接收这个公司传给google的saml2的token,这样,google可以不维护身份信息,也不维护密码。要是windows live id可以提供saml2 token的话,他们两个就可以连起来了,哈哈。
当然,要一个公司实现一个saml2 token的producer,也不容易,google提供了sample。我诧异于这个sample的实现。他使用了一个最简单的xml生成办法,文本替换。做了一个template文件,然后替换其中的某些特殊符号,就生成了xml文档。当然,xml文档的签名没法这么做,只能programmatically的实现。这个很像hydra以前用php实现移动的的web service接口的方法,也是类似的。xml parsing也只是字符串搜索,嗯,其实,这样只要结果是对的,who cares?
哪天用weblogic做一个identity provider,看看能不能跟google连起来。不过似乎要一个域名,也挺麻烦。