Skip to content

Commit 98b4788

Browse files
authored
fix(auth): Migrated IAM sign endpoint to iamcredentials.googleapis.com (#916)
1 parent 9b3a2ab commit 98b4788

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

src/auth/token-generator.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,13 +151,13 @@ export class IAMSigner implements CryptoSigner {
151151
return this.getAccountId().then((serviceAccount) => {
152152
const request: HttpRequestConfig = {
153153
method: 'POST',
154-
url: `https://iam.googleapis.com/v1/projects/-/serviceAccounts/${serviceAccount}:signBlob`,
155-
data: {bytesToSign: buffer.toString('base64')},
154+
url: `https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/${serviceAccount}:signBlob`,
155+
data: {payload: buffer.toString('base64')},
156156
};
157157
return this.httpClient.send(request);
158158
}).then((response: any) => {
159159
// Response from IAM is base64 encoded. Decode it into a buffer and return.
160-
return Buffer.from(response.data.signature, 'base64');
160+
return Buffer.from(response.data.signedBlob, 'base64');
161161
}).catch((err) => {
162162
if (err instanceof HttpError) {
163163
const error = err.response.data;

test/unit/auth/token-generator.spec.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -127,13 +127,13 @@ describe('CryptoSigner', () => {
127127
});
128128

129129
describe('explicit service account ID', () => {
130-
const response = {signature: Buffer.from('testsignature').toString('base64')};
130+
const response = {signedBlob: Buffer.from('testsignature').toString('base64')};
131131
const input = Buffer.from('input');
132132
const signRequest = {
133133
method: 'POST',
134-
url: `https://iam.googleapis.com/v1/projects/-/serviceAccounts/test-service-account:signBlob`,
134+
url: `https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/test-service-account:signBlob`,
135135
headers: {Authorization: `Bearer ${mockAccessToken}`},
136-
data: {bytesToSign: input.toString('base64')},
136+
data: {payload: input.toString('base64')},
137137
};
138138
let stub: sinon.SinonStub;
139139

@@ -147,7 +147,7 @@ describe('CryptoSigner', () => {
147147
const requestHandler = new AuthorizedHttpClient(mockApp);
148148
const signer = new IAMSigner(requestHandler, 'test-service-account');
149149
return signer.sign(input).then((signature) => {
150-
expect(signature.toString('base64')).to.equal(response.signature);
150+
expect(signature.toString('base64')).to.equal(response.signedBlob);
151151
expect(stub).to.have.been.calledOnce.and.calledWith(signRequest);
152152
});
153153
});
@@ -179,17 +179,17 @@ describe('CryptoSigner', () => {
179179

180180
describe('auto discovered service account', () => {
181181
const input = Buffer.from('input');
182-
const response = {signature: Buffer.from('testsignature').toString('base64')};
182+
const response = {signedBlob: Buffer.from('testsignature').toString('base64')};
183183
const metadataRequest = {
184184
method: 'GET',
185185
url: `http://metadata/computeMetadata/v1/instance/service-accounts/default/email`,
186186
headers: {'Metadata-Flavor': 'Google'},
187187
};
188188
const signRequest = {
189189
method: 'POST',
190-
url: `https://iam.googleapis.com/v1/projects/-/serviceAccounts/discovered-service-account:signBlob`,
190+
url: `https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/discovered-service-account:signBlob`,
191191
headers: {Authorization: `Bearer ${mockAccessToken}`},
192-
data: {bytesToSign: input.toString('base64')},
192+
data: {payload: input.toString('base64')},
193193
};
194194
let stub: sinon.SinonStub;
195195

@@ -204,7 +204,7 @@ describe('CryptoSigner', () => {
204204
const requestHandler = new AuthorizedHttpClient(mockApp);
205205
const signer = new IAMSigner(requestHandler);
206206
return signer.sign(input).then((signature) => {
207-
expect(signature.toString('base64')).to.equal(response.signature);
207+
expect(signature.toString('base64')).to.equal(response.signedBlob);
208208
expect(stub).to.have.been.calledTwice;
209209
expect(stub.getCall(0).args[0]).to.deep.equal(metadataRequest);
210210
expect(stub.getCall(1).args[0]).to.deep.equal(signRequest);

0 commit comments

Comments
 (0)