認証とセットアップ


必要なアプリケーション権限
- User.ReadWrite.All: ユーザーアカウントの作成、読み取り、更新、削除を行います。
- User.Read.All: ユーザープロファイルへの読み取り専用アクセスです。
- Group.ReadWrite.All: グループメンバーシップとプロパティを管理します。
- Directory.ReadWrite.All: 高度な操作のためのフルディレクトリアクセスです。
- UserAuthenticationMethod.ReadWrite.All: MFAと認証方法を管理します。
利用可能な操作
すべての必要な権限を設定すると、ツールキットは以下の操作を可能にします。ユーザー管理
- Get User: メール、名前、部署、役職、マネージャーを含むユーザープロファイルを取得します。
- List Users: 部署、場所、またはカスタム属性でフィルタリングし、すべてのユーザーを照会します。
- Create User: UPN、表示名、パスワード、ライセンスを指定して新しいユーザーアカウントをプロビジョニングします。
- Update User: 部署、電話番号、役職、オフィス場所など、ユーザーのプロパティを変更します。
- Delete User: ユーザーアカウントを削除します(ソフト削除;30日間復元可能です)。
- Restore User: ごみ箱からソフト削除されたユーザーを復元します。
- Get User Photo: ユーザープロフィール写真を取得します。
- Set User Photo: ユーザーのプロフィール写真をアップロードします。
パスワード管理
- Reset Password: パスワードのリセットを強制し、一時パスワードを送信します。
- Force Password Change: 次回のサイン時にパスワードの変更を要求します。
- Set Password: ユーザーアカウントに特定のパスワードを設定します。
- Get Password Policies: パスワードの複雑性と有効期限の設定を取得します。
アカウント制御
- Disable Account: アカウントを削除せずにユーザーのサインインをブロックします。
- Enable Account: 無効化されたユーザーアカウントを再有効化します。
- Revoke Sessions: すべてのアクティブなセッションとリフレッシュトークンから強制サインアウトします。
- Block Sign-In: 特定のユーザーがリソースにアクセスするのを防止します。
ライセンス管理
- Assign License: Office 365、Microsoft 365、またはAzureのライセンスをユーザーに割り当てます。
- Remove License: ユーザーからライセンスを解除します。
- Get User Licenses: ユーザーに割り当てられたすべてのライセンスを表示します。
- List Available Licenses: 組織のライセンスプールと空き状況を照会します。
- Batch License Assignment: 複数のユーザーに同時にライセンスを割り当てます。
グループ操作
- Create Group: セキュリティグループ、Microsoft 365グループ、または配布リストを作成します。
- Get Group: メンバーとオーナーを含むグループの詳細を取得します。
- List Groups: フィルタリング付きですべてのグループを照会します。
- Update Group: グループのプロパティを変更します。
- Delete Group: ディレクトリからグループを削除します。
- Add User to Group: ユーザーにグループメンバーシップを付与します。
- Remove User from Group: グループメンバーシップを剥奪します。
- List Group Members: グループ内のすべてのユーザーを取得します。
- List Group Owners: グループの管理者を表示します。
ディレクトリロール
- Assign Role: 管理者ロール(グローバル管理者、ユーザー管理者など)を付与します。
- Remove Role: 管理者権限を剥奪します。
- Get User Roles: ユーザーに割り当てられたすべてのロールを表示します。
- List Available Roles: ディレクトリロールテンプレートを照会します。
マネージャー関係
- Get Manager: ユーザーの直属のマネージャーを取得します。
- Set Manager: ユーザーにマネージャーを割り当てます。
- Remove Manager: マネージャーの割り当てを解除します。
- Get Direct Reports: マネージャーに報告するすべてのユーザーを一覧表示します。
認証方法
- Get Auth Methods: 設定されたMFA方法(電話、メール、認証アプリ)を表示します。
- Add Auth Method: 新しい認証方法を登録します。
- Remove Auth Method: 認証方法を削除します。
- Reset MFA: MFA登録をクリアし、再登録を強制します。
設定オプション
- Default Domain: 新規ユーザー作成用のプライマリドメインを設定します。
- Password Complexity: 最小パスワード要件を設定します。
- License Defaults: 新規ユーザーに特定のライセンスを自動割り当てします。
- Group Templates: 新規ユーザーを追加する標準グループを設定します。
ユースケース
- ユーザーオンボーディング: アカウント作成、ライセンス割り当て、グループメンバーシップを含む新入社員のプロビジョニングを自動化します。
- オフボーディング: 退職社員のアカウント無効化、ライセンス剥奪、グループメンバーシップの削除を行います。
- パスワードリセット: サポートチケットからトリガーされるセルフサービスパスワードリセットワークフローです。
- ライセンス管理: 使用状況に基づいてライセンスの割り当てを最適化し、未使用のライセンスを回収します。
- セキュリティ監査: 管理者ロールの割り当てと特権アクセスを監視します。
- 一括操作: 組織変更(部署異動、役職変更)のための大规模ユーザー更新を行います。
- コンプライアンスレポート: コンプライアンス監査用のユーザーアクセスレポートを生成します。
- HR統合: HRシステムとAzure AD間でユーザーデータを同期します。
ベストプラクティス
- Service Principalの使用: 個人アカウントではなく、専用のアプリ登録を作成してください。
- 最小権限: 操作に必要な最小限の権限を付与してください。
- 管理者同意: テナント管理者がアプリケーション権限への同意を確実に付与してください。
- エラーハンドリング: 同時変更競合を適切に処理してください。
- 一括操作: 大規模なユーザーアップデートにはバッチエンドポイントを使用してください。
- 監査ログ: コンプライアンスのためにすべてのユーザー管理操作を記録してください。
セキュリティに関する考慮事項
- クライアントシークレットは安全に保管し、定期的にローテーションしてください(最大2年の有効期限)。
- Azure AD監査ログでアプリのサインインとAPI使用状況を監視してください。
- 機密操作(ロールの割り当て、削除)には承認ワークフローを実装してください。
- 条件付きアクセスポリシーを使用して管理者操作を保護してください。
よくある問題と対処法
- 権限が不十分です: アプリに管理者同意付きの必要なアプリケーション権限があることを確認してください。
- ライセンスが利用できません: 割り当て前に組織のライセンスプールを確認してください。
- UPNの競合: ユーザー作成時にユーザープリンシパル名が一意であることを確認してください。
- Immutable ID: クラウド専用アカウントのimmutableIdは変更できません。