皆様こんにちは。
今週のブログは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
: パスワードのプロファイル情報です。ForceChangePasswordNextSignIn
がtrue
の場合、次回のサインイン時にパスワードの変更を要求します。Password
にはユーザーのパスワードが設定されます。
プログラムを実行すると指定されたユーザーが作成できていることを確認できました。
この例では、Userクラスを使用して新しいユーザーオブジェクトを作成し、GraphServiceClientのUsersリクエストを介してMicrosoft Entra IDに追加しています。
5. 終わりに
今回はAzure.IdentityとMicrosoft.Graphを使用してC#でMicrosoft Entra IDにユーザーを登録する基本的な手順が完了しました。
今回は簡単な例を使用していますが、適切なエラーハンドリングやセキュリティポリシーの確認を行いながら、実際のプロジェクトに適用してください。
本番環境では機密情報の適切な管理、例外処理、およびセキュリティ対策が必要です。Azure.IdentityおよびMicrosoft.Graphの最新のドキュメントも参照しながら、より安全で信頼性の高い実装を心がけましょう。
最後までご覧いただきありがとうございました。次回もよろしくお願いいたします。