A implementation of a openid provider