From 14a755a4e2fd6dff25794233def4f2cf3f866955 Mon Sep 17 00:00:00 2001 From: Balaga Gayatri Date: Tue, 21 Jun 2022 16:43:50 +0530 Subject: [PATCH] Id token errormsg (#234) * putting id-token generation in try catch block * Updating node version in action.yml --- action.yml | 2 +- lib/main.js | 24 +++++++++++++----------- src/main.ts | 22 ++++++++++++---------- 3 files changed, 26 insertions(+), 22 deletions(-) diff --git a/action.yml b/action.yml index 5bb4998e..636ccc27 100644 --- a/action.yml +++ b/action.yml @@ -34,5 +34,5 @@ branding: icon: 'login.svg' color: 'blue' runs: - using: 'node12' + using: 'node16' main: 'lib/main.js' \ No newline at end of file diff --git a/lib/main.js b/lib/main.js index ccfed1e0..26f5b274 100644 --- a/lib/main.js +++ b/lib/main.js @@ -132,17 +132,19 @@ function main() { // OIDC specific checks if (enableOIDC) { console.log('Using OIDC authentication...'); - //generating ID-token - let audience = core.getInput('audience', { required: false }); - federatedToken = yield core.getIDToken(audience); - 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); + try { + //generating ID-token + let audience = core.getInput('audience', { required: false }); + federatedToken = yield core.getIDToken(audience); + 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."); + catch (error) { + core.error(`${error.message.split(':')[1]}. Please make sure to give write permissions to id-token in the workflow.`); } } // Attempting Az cli login @@ -239,4 +241,4 @@ function jwtParser(federatedToken) { return [decodedPayload['iss'], decodedPayload['sub']]; }); } -main(); \ No newline at end of file +main(); diff --git a/src/main.ts b/src/main.ts index aff75d14..adca4be8 100644 --- a/src/main.ts +++ b/src/main.ts @@ -110,17 +110,19 @@ async function main() { // OIDC specific checks if (enableOIDC) { console.log('Using OIDC authentication...') - //generating ID-token - let audience = core.getInput('audience', { required: false }); - federatedToken = await core.getIDToken(audience); - 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); + try { + //generating ID-token + let audience = core.getInput('audience', { required: false }); + federatedToken = await core.getIDToken(audience); + 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."); + catch (error) { + core.error(`${error.message.split(':')[1]}. Please make sure to give write permissions to id-token in the workflow.`); } }