こんにちは、アーキテクトのやまぱんです。
補足コメントや質問、いいね、拡散、是非お願いします🥺!
間違ってたら優しく教えてください!
きっかけ
マネージド ID の トークンの中身がみれるらしいので見てみましょう
トークンの内容をみてみよう
トークンはBASE64でエンコードされているので、以下のMicrosoft(マイクロソフト)が運営しているサイトでデコードして人が読める形で確認可能。
このサイトは主にAzure AD(Azure Active Directory)やMicrosoftの認証サービスを利用する開発者向けに、JWT(JSON Web Token)のデコードおよびデバッグツールを提供しています。
JWT(JSON Web Token)をデコードし、その内容を表示するためのWebサイトです。以下の機能を提供します。
- JWTのデコード: JWTを入力すると、そのヘッダー、ペイロード、署名をデコードして表示します。
- クレームの確認: デコードされたJWTのクレームを確認し、トークンに含まれている情報を簡単に閲覧できます。
- エラーの特定: 不正なJWTやエラーがある場合、それを識別し、どの部分に問題があるかを示します。
実際のトークンを載せるのは良くないのでまずはサンプル
MS Learn にあるサンプルを使います。
- トークンの形式 MS Learn
https://learn.microsoft.com/ja-jp/entra/identity-platform/access-tokens#token-formats
jwt
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Imk2bEdrM0ZaenhSY1ViMkMzbkVRN3N5SEpsWSIsImtpZCI6Imk2bEdrM0ZaenhSY1ViMkMzbkVRN3N5SEpsWSJ9.eyJhdWQiOiJlZjFkYTlkNC1mZjc3LTRjM2UtYTAwNS04NDBjM2Y4MzA3NDUiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9mYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTUyMjIyOS8iLCJpYXQiOjE1MzcyMzMxMDYsIm5iZiI6MTUzNzIzMzEwNiwiZXhwIjoxNTM3MjM3MDA2LCJhY3IiOiIxIiwiYWlvIjoiQVhRQWkvOElBQUFBRm0rRS9RVEcrZ0ZuVnhMaldkdzhLKzYxQUdyU091TU1GNmViYU1qN1hPM0libUQzZkdtck95RCtOdlp5R24yVmFUL2tES1h3NE1JaHJnR1ZxNkJuOHdMWG9UMUxrSVorRnpRVmtKUFBMUU9WNEtjWHFTbENWUERTL0RpQ0RnRTIyMlRJbU12V05hRU1hVU9Uc0lHdlRRPT0iLCJhbXIiOlsid2lhIl0sImFwcGlkIjoiNzVkYmU3N2YtMTBhMy00ZTU5LTg1ZmQtOGMxMjc1NDRmMTdjIiwiYXBwaWRhY3IiOiIwIiwiZW1haWwiOiJBYmVMaUBtaWNyb3NvZnQuY29tIiwiZmFtaWx5X25hbWUiOiJMaW5jb2xuIiwiZ2l2ZW5fbmFtZSI6IkFiZSAoTVNGVCkiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMjIyNDcvIiwiaXBhZGRyIjoiMjIyLjIyMi4yMjIuMjIiLCJuYW1lIjoiYWJlbGkiLCJvaWQiOiIwMjIyM2I2Yi1hYTFkLTQyZDQtOWVjMC0xYjJiYjkxOTQ0MzgiLCJyaCI6IkkiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiJsM19yb0lTUVUyMjJiVUxTOXlpMmswWHBxcE9pTXo1SDNaQUNvMUdlWEEiLCJ0aWQiOiJmYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTU2ZmQ0MjkiLCJ1bmlxdWVfbmFtZSI6ImFiZWxpQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJGVnNHeFlYSTMwLVR1aWt1dVVvRkFBIiwidmVyIjoiMS4wIn0.D3H6pMUtQnoJAGq6AHd
実際のマネージド ID のアクセストークン を見てみる
#すきやねんAzure のセッションの中ではこちらのPowerShellでトークンを取得して、実際のトークンを使ってデコードしてました。
https://github.com/hiyoshino/Sukiyanen_ManagedID/blob/main/scripts/demoscript3.ps1
上記をベースに以下のスクリプトを作成
# Set the resource URL
$resource = "https://management.azure.com/"
# Construct the IMDS URL
$authuri = "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=" + $resource
# Get the token from IMDS
$authContext = Invoke-WebRequest -Uri $authuri -Method GET -Headers @{Metadata="true"}
# Extract the token from the response
$authResponse = $authContext.Content | ConvertFrom-Json
$accessToken = $authResponse.access_token
# Display the access token
$accessToken
得られたトークンを https://jwt.ms/ に張り付けて、確認
以上!