サクッとazureのaccess token流用したいときに
azure cliではトークンを取得するために以下のコマンドを打つと思います。
$ az login
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code HOGEHOGE to authenticate.
表示された通りにhttps://microsoft.com/devicelogin にブラウザからアクセスし、codeを入力後ログインすると~/.azure/accesssTokens.jsonにアクセストークンやリフレッシュトークンが保存されます。
ただしこれには過去にログインしてexpireしたものだったり、今流用したいもの以外の情報も含まれています。
そこで以下のスクリプトで一発で最新のトークンをコピーします。
Mac
jqという超便利なJSONコマンドラインパーサを使っているのでまだ入っていない人はbrewで入れてください
$ brew install jq
$ cat ~/.azure/accessTokens.json | jq 'map(select(.tokenType == "Bearer")) | .[-1].accessToken' | pbcopy
1時間でトークンは期限が切れてしまうので、切れたらaz vm listなどしてトークンを更新して上記コマンドを打つことで再取得できます。
環境変数にセット
$ export AZURE_ACCESS_TOKEN=`cat ~/.azure/accessTokens.json | jq 'map(select(.tokenType == "Bearer")) | .[-1].accessToken' -r`
以上です!