Microsoft Intune
概要
Microsoft Intuneは、マイクロソフトが提供するクラウドベースのエンドポイント管理およびモバイルデバイス管理(MDM)/モバイルアプリケーション管理(MAM)プラットフォームです。組織のデバイス、アプリケーション、データを統合的に管理し、従業員が安全かつ生産的に働ける環境を提供します。
Microsoft Endpoint Manager(現在はMicrosoft Intune管理センターと呼ばれる)の一部として、Configuration Manager、Windows Autopilot、その他のサービスと統合されています。
主要な機能
モバイルデバイス管理(MDM)
デバイス全体を管理し、セキュリティポリシーを適用する機能です。
対応プラットフォーム:
- Windows 10/11
- iOS/iPadOS
- Android
- macOS
主な機能:
- デバイス登録: 組織のデバイスをIntuneに登録し管理対象化
- 構成プロファイル: Wi-Fi、VPN、メール設定などを一元管理
- コンプライアンスポリシー: デバイスが組織の基準を満たすことを保証
- デバイス構成: セキュリティ設定、機能の有効化/無効化
- リモート操作: ロック、ワイプ、パスコードリセットなど
// 例: Intuneコンプライアンス状態の確認(Microsoft Graph API)
import { Client } from '@microsoft/microsoft-graph-client';
async function checkDeviceCompliance(deviceId: string, client: Client) {
try {
const device = await client
.api(`/deviceManagement/managedDevices/${deviceId}`)
.get();
return {
isCompliant: device.complianceState === 'compliant',
complianceState: device.complianceState,
lastSyncDateTime: device.lastSyncDateTime,
deviceName: device.deviceName
};
} catch (error) {
console.error('Error checking device compliance:', error);
throw error;
}
}
モバイルアプリケーション管理(MAM)
個人所有デバイスでも、企業データを保護しながらアプリケーションを管理できます。
主な機能:
- アプリ保護ポリシー: コピー/ペースト制限、データ暗号化、PIN要求
- アプリ構成ポリシー: アプリの設定を一元管理
- 条件付きアクセス: デバイスの状態に基づいてアクセスを制御
- 選択的ワイプ: デバイスから企業データのみを削除
// 例: アプリ保護ポリシーの適用状態を確認
async function checkAppProtectionStatus(userId: string, client: Client) {
try {
const appProtectionStatus = await client
.api(`/users/${userId}/managedAppRegistrations`)
.get();
return appProtectionStatus.value.map((app: any) => ({
applicationName: app.applicationName,
platform: app.platformVersion,
lastSyncDateTime: app.lastSyncDateTime,
version: app.version
}));
} catch (error) {
console.error('Error checking app protection:', error);
throw error;
}
}
条件付きアクセス
Azure Active Directory(Microsoft Entra ID)と統合し、きめ細かなアクセス制御を実現します。
主な条件:
- デバイスのコンプライアンス状態
- ユーザーの場所(IPアドレス、国/地域)
- アプリケーション
- デバイスプラットフォーム
- サインインリスク
アクセス制御:
- アクセスのブロック
- 多要素認証(MFA)の要求
- 承認済みクライアントアプリの要求
- アプリ保護ポリシーの要求
Windows Autopilot統合
新しいデバイスの展開を自動化し、エンドユーザーエクスペリエンスを向上させます。
主な機能:
- ゼロタッチ展開: デバイスを電源を入れるだけで自動的にセットアップ
- セルフサービス展開: ユーザー主導のセットアップ
- White Glove: IT部門による事前プロビジョニング
セキュリティ機能
エンドポイント保護
Microsoft Defender for Endpointとの統合:
- リアルタイムの脅威検出
- ウイルス対策とマルウェア対策
- ファイアウォール管理
- 攻撃面の減少
データ保護
Azure Information Protection(AIP)との統合:
- データの分類とラベル付け
- 暗号化と権限管理
- データ漏洩防止(DLP)
BitLocker暗号化:
- ディスク全体の暗号化
- 回復キーのエスクロー
ゼロトラストセキュリティ
Intuneはゼロトラストセキュリティモデルの主要コンポーネントとして機能します:
- 明示的な検証: 常にデバイスとユーザーを認証・認可
- 最小権限アクセス: 必要最小限のアクセス権のみを付与
- 侵害の想定: 常に監視し、異常を検出
主要なユースケース
1. BYOD(Bring Your Own Device)
従業員が個人デバイスで企業リソースに安全にアクセスできるようにします。
実装例:
// アプリ保護ポリシーの構成(擬似コード)
const appProtectionPolicy = {
displayName: "BYOD - iOS App Protection",
targetedAppManagementLevels: "unmanaged",
periodOfflineBeforeAccessCheck: "PT12H", // 12時間
periodOfflineBeforeWipeIsEnforced: "P90D", // 90日
pinRequired: true,
minimumPinLength: 6,
dataBackupBlocked: true,
encryptAppData: true,
allowedDataTransfer: "managedApps",
allowedOutboundClipboardSharingLevel: "managedAppsWithPasteIn"
};
2. リモートワーク環境
在宅勤務者のデバイスを安全に管理します。
主要な構成:
- VPN構成の自動配布
- Wi-Fi設定の管理
- デバイスコンプライアンス監視
- リモートヘルプデスク機能
3. 業界規制への対応
GDPR、HIPAA、PCI DSSなどの規制要件を満たすための設定を実施します。
コンプライアンス設定例:
- デバイス暗号化の強制
- パスワードポリシーの適用
- アプリケーションの制限
- 監査ログの取得
Microsoft Graph APIとの統合
Intuneは、Microsoft Graph APIを通じてプログラマティックに管理できます。
デバイス情報の取得
import { Client } from '@microsoft/microsoft-graph-client';
import 'isomorphic-fetch';
// 認証とクライアントの初期化
const client = Client.init({
authProvider: (done) => {
done(null, accessToken); // アクセストークンを提供
}
});
// 管理対象デバイスの一覧取得
async function getManagedDevices() {
try {
const response = await client
.api('/deviceManagement/managedDevices')
.select('deviceName,operatingSystem,complianceState,lastSyncDateTime')
.top(100)
.get();
return response.value;
} catch (error) {
console.error('Error fetching devices:', error);
throw error;
}
}
// デバイスにリモートアクションを実行
async function remoteLockDevice(deviceId: string) {
try {
await client
.api(`/deviceManagement/managedDevices/${deviceId}/remoteLock`)
.post({});
console.log('Device locked successfully');
} catch (error) {
console.error('Error locking device:', error);
throw error;
}
}
コンプライアンスポリシーの作成
async function createCompliancePolicy() {
const policy = {
"@odata.type": "#microsoft.graph.windowsCompliancePolicy",
"displayName": "Windows 10 Compliance Policy",
"description": "Basic compliance requirements for Windows 10 devices",
"passwordRequired": true,
"passwordMinimumLength": 8,
"passwordRequiredType": "alphanumeric",
"passwordMinutesOfInactivityBeforeLock": 15,
"passwordExpirationDays": 90,
"passwordPreviousPasswordBlockCount": 5,
"osMinimumVersion": "10.0.19041",
"osMaximumVersion": null,
"storageRequireEncryption": true,
"securityBlockJailbrokenDevices": true,
"defenderEnabled": true,
"defenderVersion": null,
"signatureOutOfDate": false,
"rtpEnabled": true,
"antivirusRequired": true,
"antiSpywareRequired": true
};
try {
const response = await client
.api('/deviceManagement/deviceCompliancePolicies')
.post(policy);
return response;
} catch (error) {
console.error('Error creating compliance policy:', error);
throw error;
}
}
ライセンスと価格
Microsoft Intuneには複数のライセンスオプションがあります:
| ライセンス | 含まれる機能 | 対象 |
|---|---|---|
| Intune単体 | MDM、MAM、基本的なエンドポイント保護 | 中小企業 |
| Microsoft 365 E3 | Intune + Office 365 + Windows 10/11 Enterprise | 企業 |
| Microsoft 365 E5 | E3 + 高度なセキュリティ機能 + コンプライアンス | 大企業 |
| Enterprise Mobility + Security (EMS) E3 | Intune + Azure AD Premium P1 + Azure Information Protection | エンタープライズ |
| EMS E5 | E3 + Microsoft Defender for Endpoint + Azure AD Premium P2 | エンタープライズ(高度なセキュリティ要件) |
実装のベストプラクティス
1. 段階的な展開
推奨アプローチ:
- パイロット段階: IT部門やアーリーアダプターで試験的に導入
- 部門展開: 各部門ごとに段階的に展開
- 全社展開: 全従業員への展開
- 最適化: フィードバックを基に継続的に改善
2. コンプライアンスポリシーの設計
推奨設定:
-
Windows 10/11:
- BitLocker暗号化の有効化
- Windows Defender有効化
- OS最小バージョンの設定
- パスワード要件(最小8文字、複雑性要求)
-
iOS/iPadOS:
- パスコード要求
- ジェイルブレイク検出
- OS最小バージョンの設定
- Touch ID/Face ID要求
-
Android:
- デバイス暗号化
- ルート化検出
- Google Play Protect有効化
- OS最小バージョンの設定
3. アプリ保護ポリシーの構成
// 推奨されるアプリ保護ポリシー設定
const recommendedAppProtectionSettings = {
// データ保護
dataTransferPolicy: {
allowedDataTransfer: "managedApps", // 管理対象アプリ間のみ
allowedOutboundClipboard: "managedAppsWithPasteIn",
allowedInboundDataTransfer: "allApps",
organizationalCredentialsRequired: false,
allowPrintData: "blocked"
},
// アクセス要件
accessRequirements: {
pinRequired: true,
minimumPinLength: 6,
pinCharacterSet: "numeric",
periodBeforePinReset: "P30D", // 30日
fingerprintRequired: false,
disableAppPinIfDevicePinIsSet: false
},
// 条件付き起動
conditionalLaunch: {
maxPinAttempts: 5,
periodOfflineBeforeAccessCheck: "PT12H", // 12時間
periodOfflineBeforeWipeIsEnforced: "P90D", // 90日
minAppVersion: null,
minSDKVersion: null
},
// データ暗号化
encryption: {
encryptAppData: true,
encryptionMethod: "AfterDeviceRestart"
}
};
4. 条件付きアクセスの実装
推奨される条件付きアクセスポリシー:
// 擬似コード: 条件付きアクセスポリシーの例
const conditionalAccessPolicy = {
displayName: "Require compliant device for Office 365",
state: "enabled",
conditions: {
users: {
includeUsers: ["All"],
excludeUsers: ["break-glass-admin@company.com"]
},
applications: {
includeApplications: ["Office365"] // Office 365すべて
},
platforms: {
includePlatforms: ["all"]
},
locations: {
includeLocations: ["All"],
excludeLocations: ["AllTrusted"]
}
},
grantControls: {
operator: "AND",
builtInControls: [
"compliantDevice", // デバイスコンプライアンス要求
"mfa" // 多要素認証要求
]
},
sessionControls: {
signInFrequency: {
value: 1,
type: "days"
}
}
};
5. レポートと監視
重要な監視項目:
- デバイスのコンプライアンス状態
- アプリのインストール状況
- ポリシーの適用状態
- デバイスの登録トレンド
- セキュリティインシデント
// Intuneレポートデータの取得
async function getComplianceSummary(client: Client) {
try {
const report = await client
.api('/deviceManagement/reports/getDeviceNonComplianceReport')
.post({
reportName: "DeviceNonComplianceReport",
filter: "",
select: [
"DeviceName",
"UserName",
"ComplianceState",
"LastContact",
"OSVersion"
]
});
return report;
} catch (error) {
console.error('Error fetching compliance report:', error);
throw error;
}
}
トラブルシューティング
よくある問題と解決策
1. デバイスが登録できない
考えられる原因:
- ライセンス不足
- デバイス制限の超過
- ネットワーク接続の問題
- MDM機関の設定ミス
解決策:
// デバイス登録制限の確認
async function checkEnrollmentRestrictions(client: Client) {
try {
const restrictions = await client
.api('/deviceManagement/deviceEnrollmentConfigurations')
.get();
restrictions.value.forEach((config: any) => {
console.log(`Config: ${config.displayName}`);
console.log(`Priority: ${config.priority}`);
console.log(`Platform: ${config.platformType}`);
});
return restrictions.value;
} catch (error) {
console.error('Error checking enrollment restrictions:', error);
throw error;
}
}
2. ポリシーが適用されない
チェックリスト:
- ポリシーが正しいグループに割り当てられているか
- デバイスがIntuneと同期しているか
- ポリシーの優先順位が適切か
- 競合するポリシーがないか
// デバイスの同期状態とポリシー適用状態の確認
async function checkDevicePolicyStatus(deviceId: string, client: Client) {
try {
const device = await client
.api(`/deviceManagement/managedDevices/${deviceId}`)
.expand('deviceConfigurationStates')
.get();
console.log('Last Sync:', device.lastSyncDateTime);
console.log('Configuration States:');
device.deviceConfigurationStates.forEach((state: any) => {
console.log(`- ${state.displayName}: ${state.state}`);
});
return device;
} catch (error) {
console.error('Error checking policy status:', error);
throw error;
}
}
3. アプリが配布されない
確認事項:
- アプリの割り当て設定
- デバイスのプラットフォームとアプリの互換性
- ライセンスの状態
- ネットワーク接続
まとめ
Microsoft Intuneは、モダンな企業において不可欠なエンドポイント管理プラットフォームです。以下の点で特に優れています:
主な利点:
- 包括的な管理: Windows、iOS、Android、macOSをすべて管理
- 柔軟な導入: BYODから完全管理まで対応
- 強力な統合: Microsoft 365とシームレスに統合
- ゼロトラスト対応: 現代のセキュリティ要件に適合
- スケーラビリティ: 小規模から大規模組織まで対応
ユースケース:
- リモートワークの実現
- BYODの安全な実装
- コンプライアンス要件への対応
- エンドポイントセキュリティの強化
- デバイスライフサイクル管理の自動化
Microsoft Intuneを適切に実装することで、組織はセキュリティを維持しながら、従業員の生産性を最大化できます。