implement the saml provider, web interface, and api