Office365個人に割当てられているライセンス取得

前回の記事では、テナントに割当てられている、ライセンス一覧を取得してみたが、今回は個人に割当てられている、ライセンスを取得してみる。

取得するには、アプリケーションに下記の権限が必要。

  • User.Read
  • User.Read.All
  • User.ReadWrite.All
  • Directory.Read.All
  • Directory.ReadWrite.All

※これも何故Writeが必要なのだろう??

個人に割当てられているライセンスを取得するには、下記のようなコードを書けばよい。

// Graph Client
var cli = new GraphServiceClient(cred);

// サインインしているユーザーのライセンス取得
var lic = await cli.Me.LicenseDetails.GetAsync();

// 指定ユーザーのライセンス取得(権限が必要)
var lic = await cli.Users[UserPrincipalName].LicenseDetails.GetAsync();

List<LicenseDetails?>がlic.Valueに返される。LicenseDetailsの内容だが、必要なのはSkuPartNumberだろう。これは、前回の記事と同様の文字列である。

以下実行例

// Graph Client
var cli = new GraphServiceClient(cred);
// 指定ユーザーのライセンス取得(権限が必要)
var lic = await cli.Users[UserPrincipalName].LicenseDetails.GetAsync();
if (lic?.Value == null) {
	Console.WriteLine("取得失敗");
	return;
}

Console.WriteLine($"{UserPrincipalName}には以下のライセンスがアサインされている");
foreach(var v in lic!.Value!) {
    Console.Write($"{v.SkuPartNumber},");
}
Console.WriteLine();
/* 実行例
boo@foo.comには以下のライセンスがアサインされている
OFFICESUBSCRIPTION,EXCHANGESTANDARD,
*/

takezou について

ソフトウェア開発会社(ITと言う言葉は大嫌い)で働く、元技術者。 未だに、社内システム位は作ってますが・・・ プログラミング言語はC#が好き。 好きなことだけ拾って投稿しているので、内容にはあまり期待しないでねw
カテゴリー: .NET, C#, Microsoft Graph, 技術系 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください