diff --git a/lib/main.js b/lib/main.js index b6371b1a..cfb181c5 100644 --- a/lib/main.js +++ b/lib/main.js @@ -140,6 +140,8 @@ function main() { if (!!federatedToken) { if (environment != "azurecloud") throw new Error(`Your current environment - "${environment}" is not supported for OIDC login.`); + let [issuer, subjectClaim] = yield jwtParser(federatedToken); + console.log("Federated token details: \n issuer - " + issuer + " \n subject claim - " + subjectClaim); } else { throw new Error("Could not get ID token for authentication."); @@ -230,4 +232,12 @@ function executeAzCliCommand(command, silent, execOptions = {}, args = []) { yield exec.exec(`"${azPath}" ${command}`, args, execOptions); }); } +function jwtParser(federatedToken) { + return __awaiter(this, void 0, void 0, function* () { + let tokenPayload = federatedToken.split('.')[1]; + let bufferObj = Buffer.from(tokenPayload, "base64"); + let decodedPayload = JSON.parse(bufferObj.toString("utf8")); + return [decodedPayload['iss'], decodedPayload['sub']]; + }); +} main(); diff --git a/src/main.ts b/src/main.ts index e02ae750..617e7739 100644 --- a/src/main.ts +++ b/src/main.ts @@ -118,6 +118,8 @@ async function main() { if (!!federatedToken) { if (environment != "azurecloud") throw new Error(`Your current environment - "${environment}" is not supported for OIDC login.`); + let [issuer, subjectClaim] = await jwtParser(federatedToken); + console.log("Federated token details: \n issuer - " + issuer + " \n subject claim - " + subjectClaim); } else { throw new Error("Could not get ID token for authentication."); @@ -227,4 +229,10 @@ async function executeAzCliCommand( execOptions.silent = !!silent; await exec.exec(`"${azPath}" ${command}`, args, execOptions); } +async function jwtParser(federatedToken: string) { + let tokenPayload = federatedToken.split('.')[1]; + let bufferObj = Buffer.from(tokenPayload, "base64"); + let decodedPayload = JSON.parse(bufferObj.toString("utf8")); + return [decodedPayload['iss'], decodedPayload['sub']]; +} main(); \ No newline at end of file