(In order to access online services securely, users need to authenticate on the service, that is, provide proof of their identity. For a program that wants to access third-party services, security issues are even more messy. Not only do users need to authenticate before accessing services, but also programs need to authenticate to authorize users.)