fix: migrate signBlob to iamcredentials.googleapis.com (#553)
* Migrate signBlob from iam.googleapis.com to iamcredentials.googleapis.com.
This API is deprecated and will be shutdown in one year.
This is used google.auth.iam.Signer.
Added a system_test to sanity check the implementation.
diff --git a/tests/compute_engine/test_credentials.py b/tests/compute_engine/test_credentials.py
index 98def0f..363dc9d 100644
--- a/tests/compute_engine/test_credentials.py
+++ b/tests/compute_engine/test_credentials.py
@@ -354,11 +354,11 @@
signature = base64.b64encode(b"some-signature").decode("utf-8")
responses.add(
responses.POST,
- "https://iam.googleapis.com/v1/projects/-/serviceAccounts/"
- "service-account@example.com:signBlob?alt=json",
+ "https://iamcredentials.googleapis.com/v1/projects/-/"
+ "serviceAccounts/service-account@example.com:signBlob?alt=json",
status=200,
content_type="application/json",
- json={"keyId": "some-key-id", "signature": signature},
+ json={"keyId": "some-key-id", "signedBlob": signature},
)
id_token = "{}.{}.{}".format(
diff --git a/tests/test_iam.py b/tests/test_iam.py
index c98a138..ea7d08a 100644
--- a/tests/test_iam.py
+++ b/tests/test_iam.py
@@ -78,7 +78,7 @@
def test_sign_bytes(self):
signature = b"DEADBEEF"
encoded_signature = base64.b64encode(signature).decode("utf-8")
- request = make_request(http_client.OK, data={"signature": encoded_signature})
+ request = make_request(http_client.OK, data={"signedBlob": encoded_signature})
credentials = make_credentials()
signer = iam.Signer(request, credentials, mock.sentinel.service_account_email)