Предисловие: Этот ответ предполагает знакомство с OID C, структурой JWT и тем, что вы знаете различия и обязанности access_token
и id_token
.
Этот ответ основан на этом сообщение в блоге: https://mikhail.io/2019/07/how-azure-cli-manages-access-tokens/
Когда пользователь запускает az login
и поток аутентификации OID C успешен, тогда CLI Azure (az
) сохранит текущее состояние учетных данных на диск в ~/.azure/
. По состоянию на март 2020 года исполняемый файл az
не пытается зашифровать или иным образом защитить свои кэшированные токены OID C от других пользовательских процессов (к лучшему или к худшему) - в этом случае это хорошо - при условии, что вы этого не сделаете Не забывайте, что вредоносное ПО легко захватывает ваши учетные данные.
Адрес электронной почты пользователя (по крайней мере, адрес электронной почты, связанный с его учетной записью AzureAD) будет находиться внутри его идентификатора OW C токена идентификации JWT (id_token
) - это, похоже, не кэшируется az login
, поэтому вам нужно будет использовать клиент OID C, чтобы использовать открытый текст access_token
, извлеченный из файла ~/.azure/accessTokens.json
, для запроса OID C userinfo
(Ресурс профиля пользователя) из службы AzureAD OID C (при условии, что access_token
предоставляет вам доступ в первую очередь к ресурсу профиля пользователя).
Но при условии, что у вас do есть доступ к ресурсу профиля пользователя адрес электронной почты пользователя будет в свойстве email
претензии .