I am currently trying to get a Token for Authenticating towards Azure API via Github workflow bash step. The values of the two variables are coming from Azure Keyvault and thats why i need to pass them in form of variables.
The command that i am using is the following:
- run: |
TOKEN=$(curl -X POST \
-d 'grant_type=client_credentials&client_id=${user}&client_secret=${password}&resource=https://management.azure.com/' \
https://login.microsoftonline.com/${tenant_id}/oauth2/token | jq -r '.access_token')
The value of TOKEN is always null.
If i try the same command, but use the values instead of variables ${user} and ${password} the token is created.
TOKEN=$(curl -X POST \
-d 'grant_type=client_credentials&client_id=**MYUSER**&client_secret=**MYPASSWORD**&resource=https://management.azure.com/' \
https://login.microsoftonline.com/${tenant_id}/oauth2/token | jq -r '.access_token')
Interesting is that only the 2 variables ${user} and ${password} are not being picked up, the variable for {tenant_id} works.
Why i cannot use the variables inside of grant_type=client_credentials&client_id=${user}&client_secret=${password}&resource=https://management.azure.com/'
This works in Azure Devops Pipeline , but not in Github Workflows
CodePudding user response:
Use double quotes instead of single quotes, else var substitution doesnt happen "grant_type=client_credentials&client_id=${user}&client_secret=${password}&resource=https://management.azure.com/"