diff --git a/action.yml b/action.yml index 93467b50b..3dc2ae9ee 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' diff --git a/lib/main.js b/lib/main.js index c2ed27af9..26f5b2740 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 diff --git a/src/main.ts b/src/main.ts index 49473977c..860bce291 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.`); } }