Microsoft Identity Manager 2016 のパスワード管理
複数のユーザー アカウントのパスワード管理は、複数のデータ ソースがあるエンタープライズ環境の管理の中でも複雑な作業の 1 つです。 Microsoft Identity Manager 2016 (MIM) には、2 つのパスワード管理ソリューションがあります。
パスワードの同期 - パスワード変更通知サービス (PCNS) を利用して、Active Directory からパスワードの変更をキャプチャし、接続されている他のデータ ソースに反映します。
ユーザーベースのパスワード変更管理 - Web ベースのヘルプ デスクとセルフサービス パスワード リセット アプリケーションを介して Windows Management Instrumentation (WMI) を利用します。
パスワード同期とユーザーベースのパスワード変更管理を使用して、以下を実現できます。
ユーザーが記憶する必要があるパスワード数を減らす。
ユーザーが持つ複数のアカウントのパスワードを同時に同じパスワードに設定または変更する。
ユーザーが Active Directory の自分のパスワードを変更し、パスワードの変更を他のシステムにプッシュできるようにする。
追加のパスワードと資格情報ストアを構築するリスクを排除する。
信頼できるソースとして Active Directory を使用して、複数のデータ ソース全体でパスワードを同期する。
MIM 操作とは関係なく、リアルタイムでパスワード管理操作を実行する。
パスワードの拡張機能
ディレクトリ サーバーの管理エージェントは、パスワードの変更と設定操作を既定でサポートしています。 ファイルベース、データベース、拡張可能な接続管理エージェントの場合、既定ではパスワードの変更と設定操作をサポートしていませんが、.NET パスワード拡張機能のダイナミックリンク ライブラリ (DLL) を作成できます。 .NET パスワード拡張機能の DLL は、このような管理エージェントのいずれかに対してパスワードの変更または設定の呼び出しが開始されるたびに呼び出されます。 管理エージェントのパスワード拡張機能の設定は、Synchronization Service Manager で構成します。 パスワード拡張機能の構成の詳細については、「FIM Developer Reference」 (FIM 開発者向けリファレンス) を参照してください。
パスワード管理は管理エージェントの既定でサポートされている: | パスワード拡張機能を使用すると、管理エージェントでパスワード管理もサポートされる: |
---|---|
Active Directory | 属性値ペア テキスト ファイル |
Active Directory Lightweight Directory Services (ADLDS) | 区切りテキスト ファイル |
IBM Directory Server | ディレクトリ サービス マークアップ言語 (DSML) |
Lotus Notes | Extensible Connectivity |
Novell eDirectory | 固定幅テキスト ファイル |
Sun および Netscape ディレクトリ サーバー | IBM DB2 Universal Database |
LDAP データ交換形式 (LDIF) | |
Microsoft SQL Server | |
Oracle Database |
パスワードの同期
パスワードの同期は、Active Directory ドメイン上のパスワード変更通知サービス (PCNS) と連携します。また、Active Directory から実行されたパスワードの変更を、接続されている他のデータ ソースに自動的に反映できます。 MIM は、Active Directory ドメイン コントローラーからのパスワード変更通知をリッスンするリモート プロシージャ コール (RPC) サーバーとして実行することで、この処理を実行しています。 パスワード変更要求が受信され、認証されると、MIM によって処理され、適切な管理エージェントに反映されます。
重要
MIM では、双方向のパスワード同期はサポートされていません。 双方向のパスワード同期を構成すると、ループになる可能性があります。ループになると、サーバー リソースが消費され、Active Directory と MIM の両方に悪影響が及ぶ可能性があります。
PCNS は各 Active Directory ドメイン コントローラーで実行されます。 パスワード通知を受信するシステムはターゲットと呼ばれます。 パスワード通知を送信するには、Active Directory で MIM サーバーを PCNS ターゲットとして構成しておく必要があります。 PCNS の構成では、包含グループを定義する必要があります。また、必要に応じて除外グループを定義します。 これらのグループを使用して、機密性の高いパスワードのドメインからの流出を制限できます。 たとえば、すべてのユーザーのパスワードを送信し、管理者のパスワードを送信しない場合、包含グループとしてドメイン ユーザーを使用し、除外グループとしてドメイン管理者を使用することができます。 パスワード変更通知サービスの構成については、「Using Password Synchronization」 (パスワード同期の使用) を参照してください。
パスワード同期プロセスに関連するコンポーネントは次のとおりです。
パスワード変更通知サービス (Pcnssvc.exe) - パスワード変更通知サービスはドメイン コントローラー上で実行され、ローカル パスワード フィルターからのパスワード変更通知の受信、MIM を実行しているターゲット サーバーに対するクエリ、RPC を使用した通知の配信を担当します。 このサービスによってパスワードは暗号化されるので、MIM を実行しているターゲット サーバーへの配信が完了するまで、パスワードはセキュリティで保護されます。
サービス プリンシパル名 (SPN) - SPN は、Active Directory のアカウント オブジェクトのプロパティです。Kerberos プロトコルで PCNS とターゲットを相互認証するために使用されます。 SPN を使用すると、PCNS が MIM を実行している正しいサーバーに対して認証され、その他のサービスがパスワード変更通知を受信しないようにすることができます。 SPN の作成と割り当てには setspn.exe ツールを使用します。 SPN の構成の詳細については、「Using Password Synchronization」 (パスワード同期の使用) を参照してください。
パスワード変更通知フィルター (Pcnsflt.dll) - パスワード フィルターは、プレーンテキストのパスワードを Active Directory から取得するために使用されます。 このフィルターは、MIM を実行しているターゲット サーバーに対するパスワード配信に参加している各 Windows Server ドメイン コントローラー上のローカル セキュリティ機関 (LSA) から読み込まれます。 このフィルターがインストールされ、ドメイン コントローラーが再起動されると、フィルターは、そのドメイン コントローラーで開始されたパスワード変更に関するパスワード変更通知を受信し始めます。 パスワード通知フィルターは、ドメイン コントローラー上で実行されている他のフィルターと同時に実行されます。
パスワード変更通知サービス構成ユーティリティ (Pcnscfg.exe) - pcnscfg.exe ユーティリティは、Active Directory 内に格納されているパスワード変更通知サービス構成パラメーターを管理および保守するために使用されます。 ターゲット サーバーの定義、パスワード キュー再試行間隔、ターゲット サーバーの有効化または無効化などの構成パラメーターは、MIM を実行しているターゲット サーバーに対して認証を実行し、パスワード通知を送信するときに使用されます。 サービスの構成は Active Directory に格納されるので、1 つのドメイン コントローラーの構成を更新するだけで済みます。 Active Directory はその変更を他のすべてのドメイン コントローラーにレプリケートします。
MIM を実行しているサーバー上のリモート プロシージャ コール (RPC) サーバー - パスワード同期を有効にすると、MIM を実行しているサーバー上で RPC サーバーが起動し、パスワード変更通知サービスからの通知受信が有効になります。 RPC は、使用するポートの範囲を動的に選択します。 ファイアウォール経由で Active Directory フォレストと通信するために MIM が必要な場合は、ポートの範囲を開く必要があります。
パスワード拡張機能の DLL - パスワード拡張機能の DLL には、データベース、拡張可能な接続、またはファイルベースの管理エージェント用の規則の拡張機能を利用して、パスワードの設定または変更操作を実装する機能があります。 実装するには、"export_password" というエクスポートのみの暗号化された属性を作成します。この属性は接続されるディレクトリに実際には存在しませんが、規則の拡張機能をプロビジョニングするときにアクセスおよび設定できます。また、エクスポート属性フローで使用できます。 パスワード拡張機能の構成の詳細については、「FIM Developer Reference」 (FIM 開発者向けリファレンス) を参照してください。
パスワード同期の準備
MIM および Active Directory 環境のパスワード同期をセットアップする前に、以下を確認してください。
インストール手順に従って MIM がインストールされている。
パスワード同期のために管理されている接続済みデータ ソースの管理エージェントが既に作成され、オブジェクトが正常に参加および同期されている。
パスワード同期をセットアップするには:
パスワード変更通知サービス (PCNS) をインストールおよび実行するために必要なクラスと属性を追加するように Active Directory スキーマを拡張します。
各ドメイン コントローラーに PCNS をインストールします。
Active Directory で MIM サービス アカウント用にサービス プリンシパル名 (SPN) を構成します。
ターゲット MIM サービスと通信するように PCNS を構成します。
パスワード同期のために管理する接続済みデータ ソース用に管理エージェントを構成します。
MIM でパスワード同期を有効にします。
パスワード同期のセットアップについては、「Using Password Synchronization」 (パスワード同期の使用) を参照してください。
パスワード同期プロセス
Active Directory ドメイン コントローラーのパスワードの変更を他の接続済みデータ ソースと同期するプロセスを次の図に示します。
ユーザーは、Ctrl + Alt + Del キーを押して、パスワード変更要求を開始します。新しいパスワードを含むパスワード変更要求は、最も近いドメイン コントローラーに送信されます。
ドメイン コントローラーはパスワード変更要求を記録し、パスワード変更通知フィルター (Pcnsflt.dll) に通知します。
パスワード変更通知フィルターはその要求をパスワード変更通知サービス (PCNS) に渡します。
PCNS はパスワード変更要求を検証し、Kerberos を使用してサービス プリンシパル名 (SPN) を認証し、暗号化された RPC でパスワード変更要求を MIM ターゲット サーバーに転送します。
MIM はソース ドメイン コントローラーを検証し、ドメイン名を使用してそのドメインにサービスを提供している管理エージェントを特定し、パスワード変更要求内のユーザー アカウント情報を使用してコネクタ空間内の対応するオブジェクトを特定します。
MIM は、テーブルの結合情報を使用して、パスワードの変更を受信する管理エージェントを判断し、パスワードの変更をその管理エージェントにプッシュします。
パスワード同期のセキュリティ
以下のパスワード同期のセキュリティに関する懸案事項は対応されています。
パスワード ソースからの認証 - パスワード変更通知を受信すると、MIM とソース ドメイン コントローラーで Kerberos 認証が実行され、受信者と差出人の両方を有効にすることができます。 MIM はパスワード変更通知を受信すると、呼び出し元が属するドメインのドメイン コントローラー コンテナーにアカウントを持っていることを確認します。
セキュリティで保護されていない接続が理由によるターゲット データ ソースに対するパスワード同期の失敗 - セキュリティで保護された接続を必須にするように管理エージェントを構成して、保護された接続が検出されない場合、同期は失敗します。 セキュリティで保護されていない接続を許可するように管理エージェントが構成されている場合でも、同期が実行されます。 セキュリティで保護されていない接続の許可は、関連するリスクを調べ、理解した場合にのみ、有効にしてください。
パスワードの安全な格納 - MIM は、暗号化されたパスワードのみを一時的に格納します。 パスワード変更通知操作中に MIM が受け取るすべてのパスワードは、MIM プロセスが開始されてすぐに暗号化されます。 ターゲットの接続データ ソースにパスワードの送信が完了すると、復号化され、パスワードを格納しているメモリは即時にクリアされます。 この操作でターゲットの接続データ ソースへの書き込みに失敗すると、暗号化されたパスワードは、すべての再試行が実行され、メモリからクリアされるまで格納されます。
セキュリティで保護されたパスワード キュー - PCNS パスワード キューに格納されているパスワードは、配信されるまで暗号化された状態です。
パスワード同期エラーの回復シナリオ
ユーザーがパスワードを変更するたびに、エラーなしで変更が同期されるのが理想的です。 以下のシナリオでは、一般的な同期エラーから MIM を回復する方法について説明します。
Active Directory から MIM へのパスワード通知が失敗する - ネットワークが停止した場合、MIM を実行しているサーバーが使用不能になった場合、この問題が発生することがあります。 パスワード変更通知は、PCNS によってドメイン コントローラーのローカル キューに残ります。 PCNS は再試行間隔の構成に従って通知を再試行します。
ターゲット データ ソースに対するパスワード同期に失敗する - ネットワークが停止した場合、またはターゲット データ ソースが使用不能になった場合、この問題も発生することがあります。 パスワード変更通知はキューに格納され、管理エージェントの再試行および再試行間隔の構成に従って再試行されます。 再試行のために格納されている間、すべてのパスワードは暗号化されます。また、操作が成功するか、再試行回数の制限に達すると削除されます。
エラーの発生後に MIM を実行しているウォーム スタンバイ サーバーをアクティブ化する - MIM を実行しているプライマリ サーバーでエラーが発生した場合、パスワード同期用にウォーム スタンバイ サーバーを構成し、パスワードの変更を失うことなくアクティブ化することができます。 詳細については、「MIISactivate: Server Activation Tool」 (MIISactivate: サーバー アクティブ化ツール) を参照してください。
一部のエラーは、再試行回数の上限まで実行しても操作に成功しない重大な問題です。 このような場合はエラー イベントがログに記録され、プロセスは停止されます。 以下のイベントは再試行されません。
Event | 重大度 | 説明 |
---|---|---|
6919 | Information | タイムスタンプが期限切れのため、パスワード同期の設定操作は実行されませんでした。 |
6921 | エラー | ターゲット管理エージェントでパスワード管理が有効ではないため、パスワード同期の設定操作は処理されませんでした。 |
6922 | エラー | ターゲット管理エージェントでパスワード管理が構成されていないため、パスワード同期の設定操作は処理されませんでした。 |
6923 | 警告 | 接続されているディレクトリにターゲット コネクタ空間オブジェクトが見つからなかったため、パスワード同期の設定操作は処理されませんでした。 |
6927 | エラー | パスワードがターゲット システムのパスワード ポリシーを満たしていないため、パスワード同期の設定操作は失敗しました。 |
6928 | エラー | ターゲット管理エージェントのパスワード拡張機能は、パスワードの設定操作をサポートするように構成されていないため、パスワード同期の設定操作は失敗しました。 |
ユーザーベースのパスワード変更管理
MIM には、パスワードのリセットに Windows Management Instrumentation (WMI) を使用する 2 つの Web アプリケーションがあります。 パスワード同期と同様に、パスワード管理は、Management Agent Designer で管理エージェントを構成するときにアクティブ化します。 パスワード管理と WMI については、「MIM Developer Reference」 (MIM 開発者向けリファレンス) を参照してください。
パスワード管理操作をサポートするためのインストール時に、MIM によって次の 2 のセキュリティ グループが作成されます。
FIMSyncBrowse - このグループのメンバーには、WMI クエリを使用して検索操作を実行するときに、ユーザーのアカウントに関する情報を収集するアクセス許可が付与されます。
FIMSyncPasswordSet - このグループのメンバーには、WMI によるパスワード管理インターフェイスを使用して、アカウントの検索、パスワードの設定、およびパスワード変更操作を実行するアクセス許可が付与されます。