Skip to content

Instantly share code, notes, and snippets.

@kenoir
Created April 22, 2020 10:17
Show Gist options
  • Save kenoir/bd924d441aafe2a0999e9b7b3983a859 to your computer and use it in GitHub Desktop.
Save kenoir/bd924d441aafe2a0999e9b7b3983a859 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
# ~/.azuresso
#
# {
# "AZURE_USER_ID": "user@domain"
# "AZURE_TENANT_ID" : "11111111-1111-1111-11111111111",
# "AZURE_APP_ID_URI" : "11111111-1111-1111-11111111111"
# }
#
# Expects an application password in OSX Keychain with "Account" matching "AZURE_USER_ID"
#
set_credentials() {
CONFIG=$(\
cat ~/.azuresso | \
docker run -i stedolan/jq ".AZURE_USER_ID , .AZURE_TENANT_ID , .AZURE_APP_ID_URI" -r \
)
USERNAME=$(echo $CONFIG | cut -d$' ' -f1)
PASSWORD=$(security find-generic-password -wa $USERNAME)
echo "Signing in as $USERNAME"
AZURE_TENANT_ID=$(echo $CONFIG | cut -d$' ' -f2)
AZURE_APP_ID_URI=$(echo $CONFIG | cut -d$' ' -f3)
}
generate_aws_login() {
# Generate login credentials
docker run --volume $HOME/.aws:/root/.aws \
--env AZURE_TENANT_ID=$AZURE_TENANT_ID \
--env AZURE_APP_ID_URI=$AZURE_APP_ID_URI \
--env AZURE_DEFAULT_USERNAME=$USERNAME \
--env AZURE_DEFAULT_PASSWORD=$PASSWORD \
--env AZURE_DEFAULT_ROLE_ARN=default \
--env AZURE_DEFAULT_DURATION_HOURS=1 \
-it wellcome/aws-azure-login --no-prompt --profile default
}
set_credentials
echo "Starting credentials auto-refresh (refreshes every 5 mins)"
while true; do
generate_aws_login
sleep 3000
echo ""
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment