When should you use it?
There may be occasions where your client application has resources with a service provider that are owned and consumed by the client application itself, and not by an end-user. For instance, you may be developing a client application that uses Google Cloud SQL to persist its own application data (as opposed to a user's data). In this case, the client credentials grant is ideal. With this workflow, your client application can request an access token on its own behalf, and then subsequently use that access token to access the protected resources it needs. In the case of our example, the client application would use the client credentials grant flow to authenticate its calls to the Google Cloud SQL APIs. No user intervention is required, and no additional risk is exposed.