3 As outlined in the [gRPC authentication guide](https://grpc.io/docs/guides/auth.html) there are a number of different mechanisms for asserting identity between an client and server. We'll present some code-samples here demonstrating how to provide TLS support encryption and identity assertions as well as passing OAuth2 tokens to services that support it.
5 # Enabling TLS on a gRPC client
8 conn, err := grpc.Dial(serverAddr, grpc.WithTransportCredentials(credentials.NewClientTLSFromCert(nil, "")))
11 # Enabling TLS on a gRPC server
14 creds, err := credentials.NewServerTLSFromFile(certFile, keyFile)
16 log.Fatalf("Failed to generate credentials %v", err)
18 lis, err := net.Listen("tcp", ":0")
19 server := grpc.NewServer(grpc.Creds(creds))
24 # Authenticating with Google
26 ## Google Compute Engine (GCE)
29 conn, err := grpc.Dial(serverAddr, grpc.WithTransportCredentials(credentials.NewClientTLSFromCert(nil, "")), grpc.WithPerRPCCredentials(oauth.NewComputeEngine()))
35 jwtCreds, err := oauth.NewServiceAccountFromFile(*serviceAccountKeyFile, *oauthScope)
37 log.Fatalf("Failed to create JWT credentials: %v", err)
39 conn, err := grpc.Dial(serverAddr, grpc.WithTransportCredentials(credentials.NewClientTLSFromCert(nil, "")), grpc.WithPerRPCCredentials(jwtCreds))