概要
この記事では、対話型ログオン シナリオで認証メカニズム アシュアランス (AMA) を使用する方法について説明します。
はじめに
AMA は、証明書ベースのログオン方法を使用してログオン中にユーザーの資格情報が認証されるときに、管理者が指定したユニバーサル グループ メンバーシップをユーザーのアクセス トークンに追加します。 これにより、ネットワーク リソース管理者は、ファイル、フォルダー、プリンターなどのリソースへのアクセスを制御できます。 このアクセスは、ユーザーが証明書ベースのログオン方法を使用してログオンするかどうかと、ログオンに使用される証明書の種類に基づいています。
この記事では
この記事では、ログオン/ログオフとロック/ロック解除という 2 つの問題シナリオに焦点を当てます。 これらのシナリオでの AMA の動作は "仕様別" であり、次のように要約できます。
-
AMA は、ネットワーク リソースを保護することを目的としています。
-
AMA は、ユーザーのローカル コンピューターの対話型ログオンの種類 (スマート カードまたはユーザー名/パスワード) を識別することも強制することもできません。 これは、対話型ユーザー ログオン後にアクセスされるリソースは、AMA を使用して確実に保護できないためです。
現象
問題シナリオ 1 (ログオン/ログオフ)
次のような状況で問題が発生します。
-
管理者は、ユーザーが特定のセキュリティに依存するリソースにアクセスするときに、スマート カード (SC) ログオン認証を適用したいと考えています。 これを行うには、管理者は、Windows Server 2008 R2 のすべてのスマート カード証明書で使用される発行ポリシー オブジェクト識別子のステップ バイ ステップ ガイドの AD DS の認証メカニズム 保証に従って AMA をデプロイします。 注 この記事では、この新しいマップされたグループを "スマート カード ユニバーサル セキュリティ グループ" と参照します。
-
"対話型ログオン: スマート カードが必要" ポリシーはワークステーションでは有効になっていません。 そのため、ユーザーは、ユーザー名やパスワードなどの他の資格情報を使用してログオンできます。
-
ローカルおよびネットワーク リソース へのアクセスには、スマート カードユニバーサル セキュリティ グループが必要です。
このシナリオでは、スマート カードを使用してサインオンしたユーザーのみがローカル リソースとネットワーク リソースにアクセスできることを想定しています。 ただし、ワークステーションでは最適化/キャッシュされたログオンが許可されるため、ログオン中にキャッシュされた検証ツールを使用して、ユーザーのデスクトップ用の NT アクセス トークンを作成します。 そのため、現在のログオンではなく、以前のログオンからのセキュリティ グループと要求が使用されます。
シナリオの例
注 この記事では、"whoami/groups" を使用して対話型ログオン セッションのグループ メンバーシップを取得します。 このコマンドは、デスクトップのアクセス トークンからグループと要求を取得します。
-
例 1以前のログオンがスマート カードを使用して実行された場合、デスクトップのアクセス トークンには、AMA によって提供されるスマート カードユニバーサル セキュリティ グループがあります。 次のいずれかの結果が発生します。
-
ユーザーはスマート カードを使用してログオンします。ユーザーは引き続きローカル のセキュリティに依存するリソースにアクセスできます。 ユーザーは、スマート カードユニバーサル セキュリティ グループを必要とするネットワーク リソースにアクセスしようとします。 これらの試行は成功します。
-
ユーザーは、ユーザー名とパスワードを使用してログオンします。ユーザーは引き続きローカルのセキュリティに依存するリソースにアクセスできます。 この結果は予想されません。 ユーザーは、スマート カードユニバーサル セキュリティ グループを必要とするネットワーク リソースにアクセスしようとします。 これらの試行は期待どおりに失敗します。
-
-
例 2前のログオンがパスワードを使用して実行された場合、デスクトップのアクセス トークンには、AMA によって提供されるスマート カードユニバーサル セキュリティ グループがありません。 次のいずれかの結果が発生します。
-
ユーザーは、ユーザー名とパスワードを使用してログオンします。ユーザーはローカルのセキュリティに依存するリソースにアクセスできません。 ユーザーは、スマート カードユニバーサル セキュリティ グループを必要とするネットワーク リソースにアクセスしようとします。 これらの試行は失敗します。
-
ユーザーは、スマート カードを使用してログオンします。ユーザーはローカル のセキュリティに依存するリソースにアクセスできません。 ユーザーはネットワーク リソースにアクセスしようとします。 これらの試行は成功します。 この結果は、お客様には期待されません。 そのため、アクセス制御の問題が発生します。
-
問題シナリオ 2 (ロック/ロック解除)
次のシナリオを考えてみましょう。
-
管理者は、ユーザーが特定のセキュリティに依存するリソースにアクセスするときに、スマート カード (SC) ログオン認証を適用したいと考えています。 これを行うには、管理者は、Windows Server 2008 R2 のすべてのスマート カード証明書で使用される発行ポリシー オブジェクト識別子のステップ バイ ステップ ガイドで、AD DS の認証メカニズム 保証に従って AMA をデプロイします。
-
"対話型ログオン: スマート カードが必要" ポリシーはワークステーションでは有効になっていません。 そのため、ユーザーは、ユーザー名やパスワードなどの他の資格情報を使用してログオンできます。
-
ローカルおよびネットワーク リソース へのアクセスには、スマート カードユニバーサル セキュリティ グループが必要です。
このシナリオでは、スマート カードを使用してサインオンしたユーザーのみがローカルリソースとネットワーク リソースにアクセスできることを想定しています。 ただし、ユーザーのデスクトップのアクセス トークンはログオン中に作成されるため、変更されません。
シナリオの例
-
例 1 デスクトップのアクセス トークンに AMA によって提供されるスマート カード ユニバーサル セキュリティ グループがある場合、次のいずれかの結果が発生します。
-
ユーザーはスマート カードを使用してロックを解除します。ユーザーは引き続きローカルのセキュリティに依存するリソースにアクセスできます。 ユーザーは、スマート カードユニバーサル セキュリティ グループを必要とするネットワーク リソースにアクセスしようとします。 これらの試行は成功します。
-
ユーザーは、ユーザー名とパスワードを使用してロックを解除します。ユーザーは引き続きローカルのセキュリティに依存するリソースにアクセスできます。 この結果は予想されません。 ユーザーは、スマート カードユニバーサル セキュリティ グループを必要とするネットワーク リソースにアクセスしようとします。 これらの試行は失敗します。
-
-
例 2 デスクトップのアクセス トークンに AMA によって提供されるスマート カードユニバーサル セキュリティ グループがない場合、次のいずれかの結果が発生します。
-
ユーザーは、ユーザー名とパスワードを使用してロックを解除します。ユーザーは、ローカルのセキュリティに依存するリソースにアクセスできません。 ユーザーは、スマート カードユニバーサル セキュリティ グループを必要とするネットワーク リソースにアクセスしようとします。 これらの試行は失敗します。
-
ユーザーは、スマート カードを使用してロックを解除します。ユーザーはローカル のセキュリティに依存するリソースにアクセスできません。 この結果は予想されません。 ユーザーはネットワーク リソースにアクセスしようとします。 これらの試行は期待どおりに成功します。
-
詳細情報
「現象」セクションで説明されている AMA とセキュリティ サブシステムの設計により、ユーザーは、AMA が対話型ログオンの種類を確実に識別できない次のシナリオが発生します。
ログオン/ログオフ
高速ログオンの最適化がアクティブな場合、ローカル セキュリティ サブシステム (lsass) はローカル キャッシュを使用してログオン トークンのグループ メンバーシップを生成します。 これにより、ドメイン コントローラー (DC) との通信は必要ありません。 そのため、ログオン時間が短縮されます。 これは非常に望ましい機能です。ただし、この状況では、SC ログオンと SC ログオフ後に、ローカルにキャッシュされた AMA グループが誤って、ユーザー名/パスワード対話型ログオン後もユーザー トークンに存在します。ノート
-
この状況は、対話型ログオンにのみ適用されます。
-
AMA グループは、他のグループと同じロジックを使用して、同じ方法でキャッシュされます。
このような状況では、ユーザーがネットワーク リソースにアクセスしようとすると、リソース側のキャッシュされたグループ メンバーシップは使用されません。また、リソース側のユーザーのログオン セッションには AMA グループは含まれません。この問題は、高速ログオンの最適化をオフにすることで解決できます ("コンピューターの構成 > 管理用テンプレート > システム > ログオン > コンピューターの起動時とログオン時に常にネットワークを待機します")。 重要 この動作は、対話型ログオン シナリオでのみ関連します。 ログオンの最適化は必要ないため、ネットワーク リソースへのアクセスは期待どおりに機能します。 そのため、キャッシュされたグループ メンバーシップは使用されません。 最新の AMA グループ メンバーシップ情報を使用して、DC に連絡して新しいチケットを作成します。
ロック/ロック解除
次のシナリオを考えてみましょう。
-
ユーザーは、スマート カードを使用して対話形式でログオンし、AMA で保護されたネットワーク リソースを開きます。注 AMA で保護されたネットワーク リソースにアクセスできるのは、アクセス トークンに AMA グループを持つユーザーのみです。
-
ユーザーは、以前に開いた AMA で保護されたネットワーク リソースを最初に閉じずにコンピューターをロックします。
-
ユーザーは、以前にスマート カードを使用してログオンしたユーザーと同じユーザーのユーザー名とパスワードを使用して、コンピューターのロックを解除します。
このシナリオでは、コンピューターのロックが解除された後も、ユーザーは AMA で保護されたリソースにアクセスできます。 この動作は仕様です。 コンピューターのロックが解除されると、Windows はネットワーク リソースを持つ開いているセッションをすべて再作成しません。 Windows では、グループ メンバーシップも再確認されません。 これは、これらのアクションが許容できないパフォーマンスの低下を引き起こすためです。このシナリオには、すぐに使用できないソリューションはありません。 1 つの解決策は、SC ログオンとロックの手順が発生した後にユーザー名/パスワード プロバイダーをフィルター処理する資格情報プロバイダー フィルターを作成することです。 資格情報プロバイダーの詳細については、次のリソースを参照してください。
ICredentialProviderFilter インターフェイス Windows Vista 資格情報プロバイダーのサンプル注 このアプローチが正常に実装されたかどうかは確認できません。
AMA の詳細
AMA は、対話型ログオンの種類 (スマート カードまたはユーザー名/パスワード) を識別することも適用することもできません。 この動作は仕様です。AMA は、ネットワーク リソースがスマート カードを必要とするシナリオを対象としています。 これは、ローカル アクセスに使用することを目的としたものではありません。動的グループ メンバーシップを使用する機能や AMA グループを動的グループとして処理する機能など、新機能を導入してこの問題を解決しようとすると、重大な問題が発生する可能性があります。 このため、NT トークンは動的グループ メンバーシップをサポートしていません。 システムでグループを実際にトリミングできる場合、ユーザーが自分のデスクトップやアプリケーションと対話できない可能性があります。 そのため、グループ メンバーシップは、セッションが作成された時点でロックされ、セッション全体で維持されます。キャッシュされたログオンにも問題があります。 最適化されたログオンが有効になっている場合、lsass はネットワーク ラウンド トリップを呼び出す前にローカル キャッシュを最初に試行します。 ユーザー名とパスワードが、以前のログオンで見た lsass と同じ場合 (これはほとんどのログオンに当てはまります)、lsass は、ユーザーが以前に持っていたのと同じグループ メンバーシップを持つトークンを作成します。 最適化されたログオンがオフになっている場合は、ネットワークラウンドトリップが必要です。 これにより、グループ メンバーシップが期待どおりにログオン時に動作することが確認されます。キャッシュされたログオンでは、lsass はユーザーごとに 1 つのエントリを保持します。 このエントリには、ユーザーの以前のグループ メンバーシップが含まれています。 これは、lsass が確認した最後のパスワードまたはスマート カード資格情報の両方によって保護されます。 どちらも、同じトークンと資格情報キーのラップを解除します。 古い資格情報キーを使用してログオンしようとすると、DPAPI データ、EFS で保護されたコンテンツなどが失われます。 そのため、キャッシュされたログオンでは、ログオンに使用されるメカニズムに関係なく、常に最新のローカル グループ メンバーシップが生成されます。