スタッフブログ

C# を使用した Microsoft Entra ID ユーザーの作成方法


皆様こんにちは。

今週のブログはT.S.が担当させていただきます。

今回は普段私が業務で頭を悩ませながら書いているC#を使用して、 Microsoft Entra IDへユーザー登録を行う方法について紹介します。

1. 開発環境のセットアップ

Visual Studioや他の適切な統合開発環境をセットアップし、Azure Portalでアプリケーションを登録して必要な情報(クライアントID、テナントID、クライアントシークレット)を取得します。

アプリ登録のAPIアクセス許可については以下の通りです。

アクセス許可の種類 アクセス許可 (特権の小さいものから大きいものへ)
委任 (職場または学校のアカウント) User.ReadWrite.All、Directory.ReadWrite.All
委任 (個人用 Microsoft アカウント) サポートされていません。
アプリケーション User.ReadWrite.All、Directory.ReadWrite.All

2. NuGet パッケージのインストール

Install-Package Microsoft.Graph
Install-Package Azure.Identity

プロジェクトにAzure.IdentityとMicrosoft.Graphを導入します。

3. GraphServiceClientの初期化

Azure.Identityを使用して認証し、GraphServiceClientを初期化します。

上記の例では、ClientSecretCredentialを使ってMicrosoft Entra IDにアプリケーションを認証し、その認証情報をGraphServiceClientに渡しています。これで、graphClientを使用してMicrosoft Graph APIを呼び出すことができます。

4. ユーザーの作成

Azure ADに新しいユーザーを作成するには、Userクラスを使用してユーザーオブジェクトを作成し、GraphServiceClientを介してMicrosoft Entra IDに追加します。以下は、簡単な例です。

  • AccountEnabled: ユーザーアカウントの有効/無効を示すブール値です。trueの場合、アカウントは有効になります。
  • DisplayName: ユーザーの表示名です。例では “CSharpTestUser01” としていますが、必要に応じて変更してください。
  • MailNickname: ユーザーのメールエイリアスです。通常はユーザー名などの一意の識別子が使われます。
  • UserPrincipalName: ユーザーのプリンシパル名 (ユーザーログイン名) です。Microsoft Entra IDでのユーザーの一意の識別子です。メールアドレス形式が一般的ですが、他の形式も使用できます。
  • PasswordProfile: パスワードのプロファイル情報です。ForceChangePasswordNextSignIntrueの場合、次回のサインイン時にパスワードの変更を要求します。Passwordにはユーザーのパスワードが設定されます。

プログラムを実行すると指定されたユーザーが作成できていることを確認できました。

この例では、Userクラスを使用して新しいユーザーオブジェクトを作成し、GraphServiceClientのUsersリクエストを介してMicrosoft Entra IDに追加しています。

5. 終わりに

今回はAzure.IdentityとMicrosoft.Graphを使用してC#でMicrosoft Entra IDにユーザーを登録する基本的な手順が完了しました。

今回は簡単な例を使用していますが、適切なエラーハンドリングやセキュリティポリシーの確認を行いながら、実際のプロジェクトに適用してください。

本番環境では機密情報の適切な管理、例外処理、およびセキュリティ対策が必要です。Azure.IdentityおよびMicrosoft.Graphの最新のドキュメントも参照しながら、より安全で信頼性の高い実装を心がけましょう。

最後までご覧いただきありがとうございました。次回もよろしくお願いいたします。