fix: signBytes for impersonated credentials (#506)

* fix: signBytes doesn't work for impersonated credentials

Fixes #338

* black
diff --git a/google/auth/impersonated_credentials.py b/google/auth/impersonated_credentials.py
index 84df484..4299802 100644
--- a/google/auth/impersonated_credentials.py
+++ b/google/auth/impersonated_credentials.py
@@ -264,7 +264,10 @@
 
         iam_sign_endpoint = _IAM_SIGN_ENDPOINT.format(self._target_principal)
 
-        body = {"payload": base64.b64encode(message), "delegates": self._delegates}
+        body = {
+            "payload": base64.b64encode(message).decode("utf-8"),
+            "delegates": self._delegates,
+        }
 
         headers = {"Content-Type": "application/json"}