TIL

Today I Learned


Project maintained by gushwell Hosted on GitHub Pages — Theme by mattgraham

DefaultAzureCredential を使用して、Azureに認証した場合のログイン名を取得するサンプルコード

// KeyValut Secretsに接続する
var credential =  new DefaultAzureCredential();
var client = new SecretClient(new Uri(kvUri), credential);

// 認証されたユーザ情報を得る
string[] scopes = ["https://graph.microsoft.com/.default"];
var token = await credential.GetTokenAsync(new Azure.Core.TokenRequestContext(scopes));
var handler = new JwtSecurityTokenHandler();
var jsonToken = handler.ReadToken(token.Token) as JwtSecurityToken;

// upn(ユーザープリンシパル名:メールアドレス)とユーザ名を得る
var upn = jsonToken.Claims.First(c => c.Type == "upn").Value;
var name = jsonToken.Claims.First(c => c.Type == "name").Value;

upn, nameには以下のような値が入る

upn: gushwell@example.com
name: 山田太郎