Windows 認証の概念
このリファレンスの概要トピックでは、Windows 認証の基盤となる概念について説明します。
認証は、オブジェクトまたは利用者の ID を検証するプロセスです。 オブジェクトを認証する目的は、そのオブジェクトが本物であることを確認することにあります。 個人を認証するとき目的は、ユーザーがなりすましではないことを確認することです。
ネットワーキングのコンテキストでの認証とは、ネットワーク アプリケーションまたはリソースに身元を証明する行為を表します。 通常、身元は、公開キーの暗号化と同様に、ユーザーのみが知っているキーか、または共有キーを使用する暗号操作によって証明されます。 認証交換のサーバー側は、署名されたデータを既知の暗号化キーと比較して、認証試行を検証します。
暗号化キーを安全な一元的な場所に保管すると、認証プロセスのスケーラビリティと保守性が向上します。 Active Directory は、ユーザーの資格情報の暗号化キーを含む ID 情報を格納する際の推奨されるテクノロジであり、かつ既定のテクノロジです。 既定の NTLM および Kerberos 実装には、Active Directory が必要です。
認証手法は、オペレーティングシステムへの単純なログオン、またはユーザーだけが知っている情報 (パスワードなど) に基づいてユーザーを識別するサービスまたはアプリケーションへのサインインから、ユーザーが使用する情報 (トークン、公開鍵証明書、写真、または生物学的属性など) を使用するより強力なセキュリティメカニズムにまで及びます。があります。 ビジネス環境のユーザーは、1 つまたは複数の場所に配置された複数の種類のサーバー上の複数のアプリケーションにアクセスすることがあります。 これらの理由から、認証では、他のプラットフォームや他の Windows オペレーティング システムの環境をサポートする必要があります。
認証と承認: 旅行の例え
旅行の例えは、認証のしくみを説明するのに役立ちます。 通常、旅行を始めるには、いくつかの準備作業が必要です。 旅行者は、旅行先の当局に本当の身元を証明しなければなりません。 このときに使用する証明書は、身分証明、出生地、個人の証明書、写真、または旅行先の国が定める法律によって義務付けられている証明書であれば何でも構いません。 旅行者の身元は、パスポートの発行によって確認されます。パスポートは、組織 (セキュリティ プリンシパル) によって発行および管理されるシステム アカウントに類似しています。 パスポートと目的地は、政府機関によって発行された一連の規則と規制に基づいています。
体験
旅行者が国境に到着すると、国境警備隊が資格情報を要求し、旅行者はパスポートを提示します。 プロセスは 2 つあります。
警備隊は、地方自治体が信頼する治安当局によって発行されたことを確認し (少なくともパスポートの発行を信頼します)、パスポートが変更されていないことを確認することにより、パスポートが本物であることを確認します。
警備隊は、顔がパスポートに描かれている人物の顔と一致していること、およびその他の必要な資格情報が適切であることを確認することにより、旅行者を確認します。
パスポートが有効であり、旅行者がその所有者であることが証明された場合、本人確認は問題なく終了し、旅行者は国境を越えて入国を許可されます。
治安当局間の推移的な信頼は認証の基盤です。 国境で行われる認証の種類は信頼に基づいています。 地方自治体は旅行者を知りませんが、受入国側の政府が行うことを信頼しています。 受入国側の政府がパスポートを発行したとき、旅行者のことも知りません。 受入国側の政府は、出生証明書やその他の書類を発行した機関を信頼します。 次に、出生証明書を発行した機関は、証明書に署名した医師を信頼します。 その医師は旅行者の出生を目撃し、身元を直接証明する証明書、この場合は新生児の足跡を証明書にスタンプしました。 このように信頼できる仲介者を介して転送される信頼は推移的です。
推移的な信頼は、Windows クライアント/サーバー アーキテクチャのネットワーク セキュリティの基盤となります。 信頼関係は、ドメイン ツリーなどの一連のドメインにわたって流れ、ドメインとそのドメインを信頼するすべてのドメインとの間の関係を形成します。 たとえば、ドメイン A にドメイン B との推移的な信頼関係があり、ドメイン B がドメイン C を信頼している場合、ドメイン A はドメイン C を信頼します。
認証と承認には違いがあります。 認証の場合、ユーザーが本人であることがシステムによって証明されます。 承認の場合、必要な操作を実行する権限があるかどうかがシステムによって確認されます。 国境を次のステップに例えると、旅行者が有効なパスポートの適切な所有者であることを証明するだけでは、必ずしも旅行者が入国することを許可するわけではありません。 特定の国の居住者は、入国する国がその特定の国のすべての市民の入国を無制限に許可する場合にのみ、パスポートを提示するだけで別の国に入国できます。
様に、特定のドメインのすべてのユーザーにリソースへのアクセス許可を与えることができます。 カナダが米国市民にカナダへの入国を許可するのと同じように、そのドメインに属するすべてのユーザーがリソースにアクセスできます。 ただし、ブラジルやインドに入国しようとする米国市民は、パスポートを提示するだけでは入国できないことに気付きます。どちらの国も、訪問する米国市民には、有効なビザを取得することを義務付けているからです。 したがって、認証は、リソースへのアクセスまたはリソースを使用するための許可を保証するものではありません。
資格情報
注意事項
ユーザーがローカル ログオンを実行すると、そのユーザーの資格情報は、ネットワーク経由で ID プロバイダーによって認証される前に、キャッシュされたコピーに対してローカルで検証されます。 キャッシュ検証が成功すると、デバイスがオフラインであってもユーザーはデスクトップにアクセスできるようになります。 ただし、ユーザーがクラウドでパスワードを変更しても、キャッシュされた資格情報は更新されません。つまり、古いパスワードを使用してローカル コンピューターに引き続きアクセスできることになります。
パスポートと場合によっては関連するビザは、旅行者が受け入れられるための資格です。 ただし、これらの資格情報では、旅行者が入国したり、国内にあるすべてのリソースを利用したりできない場合があります。 たとえば、会議に参加するには追加の資格情報が必要です。 Windows では、資格情報を管理して、アカウント所有者が資格情報を繰り返し提供しなくても、ネットワーク経由でリソースにアクセスできるようにすることができます。 このタイプのアクセスにより、ユーザーはシステムによって 1 回認証され、別のアカウント ID またはパスワードを入力せずに、使用が許可されているすべてのアプリケーションとデータソースにアクセスできます。 Windows プラットフォームは、オペレーティング システムのローカル セキュリティ機関 (LSA) のユーザー資格情報をローカルにキャッシュすることによって、ネットワーク全体で単一のユーザー ID (Active Directory によって管理されている) を使用する機能を利用します。 ユーザーがドメインにログオンすると Windows 認証パッケージは、資格情報を透過的に使用して、ネットワーク リソースに対する資格情報を認証するときにシングル サインオンを提供します。 資格情報の詳細については、「Windows 認証の資格情報プロセス」を参照してください。
旅行者に対して使用する多要素認証の形式は、パスポートや会議登録情報など、旅行者の身元を認証するために複数の文書を携帯して提示する必要がある場合があります。 Windows は、スマートカード、仮想スマート カード、および生体認証技術を使用してこのフォームまたは認証を実装します。
セキュリティ プリンシパルおよびアカウント
Windows では、アクションを開始できるすべてのユーザー、サービス、グループ、またはコンピューターはセキュリティ プリンシパルです。 セキュリティ プリンシパルにはアカウントがあり、コンピューターに対してローカルにすることも、ドメインベースにすることもできます。 たとえば、Windows クライアントのドメインに参加しているコンピューターは、人間のユーザーがログオンしていない場合でも、ドメイン コントローラーと通信することで、ネットワーク ドメインに参加できます。 通信を開始するには、コンピューターがドメイン内にアクティブなアカウントを持っている必要があります。 コンピューターからの通信を受け入れる前に、ドメイン コントローラーのローカル セキュリティ機関はコンピューターの ID を認証し、人間のセキュリティ プリンシパルの場合と同じようにコンピューターのセキュリティ コンテキストを定義します。 このセキュリティ コンテキストでは、ネットワーク上の特定のコンピューター、ユーザー、サービス、グループ、またはコンピューター上のユーザーまたはサービスの ID と機能を定義します。 たとえば、アクセス可能なファイル共有やプリンターなどのリソースや、そのリソースのユーザー、サービス、またはコンピューターによって実行される読み取り、書き込み、変更などの操作を定義します。 詳細については、「セキュリティ プリンシパル」をご覧ください。
アカウントは、アクセスまたはリソースを要求している要求者 (人間のユーザーまたはサービス) を識別する手段です。 本物のパスポートを所持している旅行者は、受入国に入国できる権利を持っています。 ユーザー、ユーザーのグループ、オブジェクト、およびサービスはすべて、個別のアカウントまたは共有アカウントを持つことができます。 アカウントはグループのメンバーになることができ、特定の権限とアクセス許可を割り当てることができます。 アカウントは、ローカル コンピューター、ワークグループ、ネットワークに制限することも、ドメインのメンバーシップを割り当てられるようにすることもできます。
組み込みのアカウントとそのメンバーであるセキュリティ グループは、Windows の各バージョンで定義されます。 セキュリティ グループを使用すると、正常に認証された多くのユーザーに同じセキュリティ アクセス許可を割り当てることができます。これにより、アクセスの管理が簡単になります。 パスポート発行に関する規則では、旅行者をビジネス、観光客、政府などの特定のグループに割り当てる必要がある場合があります。 このプロセスにより、グループのすべてのメンバーに対して一貫したセキュリティ権限が確保できます。 セキュリティ グループを使用してアクセス許可を割り当てることにより、リソースのアクセス制御は一定で、管理と監査が容易になります。 必要に応じて適切なセキュリティ グループからのアクセスを必要とするユーザーを追加および削除することにより、アクセス制御リスト (ACL) に対する変更の頻度を最小限に抑えることができます。
スタンドアロンの管理されたサービス アカウントと仮想アカウントが Windows Server 2008 R2 と Windows 7 に導入され、Microsoft Exchange Server やインターネット インフォメーション サービス (IIS) などの必要なアプリケーションを提供し、独自のドメイン アカウントを分離すると同時に、 管理者は、これらのアカウントのサービス プリンシパル名 (SPN) と資格情報を手動で管理します。 グループの管理されたサービス アカウントは Windows Server 2012 で導入され、ドメイン内で同じ機能を提供しますが、その機能を複数のサーバーに拡張します。 ネットワーク負荷分散など、サーバー ファームにホストされているサービスに接続されると、相互認証をサポートする認証プロトコルでは、サービスのすべてのインスタンスが同じプリンシパルを使用する必要があります。
アカウントの詳細については、以下を参照してください。
委任された認証
旅行の例えを使用すると、代表団がよく知られていれば、各国は公式の政府代表団のすべてのメンバーに同じアクセス権を発行する場合があります。 この代表団により、あるメンバーが別のメンバーの権限に基づいて行動できるようになります。 Windows では、ネットワーク サービスがユーザーからの認証要求を受け入れ、2 番目のネットワーク サービスへの新しい接続を開始するためにそのユーザーの ID を想定している場合に委任された認証が行われます。 委任された認証をサポートするには、フロントエンドまたは第 1 層のサーバー (Web サーバーなど) を確立する必要があります。これらのサーバーは、クライアント認証要求とバックエンドまたは n 層サーバー (大規模データベースなど) を処理し、情報の格納を担当します。 組織内のユーザーに委任された認証を設定する権限を委任して、管理者の管理負荷を軽減することができます。
サービスまたはコンピューターを委任に対して信頼できるるものとして設定することで、サービスまたはコンピューターが委任された認証を完了し、要求を行っているユーザーのチケットを受け取り、そのユーザーの情報にアクセスできるようにします。 このモデルでは、バックエンド サーバー上のデータ アクセスを、適切なアクセス制御トークンを持つ資格情報を提示するユーザーまたはサービスだけに制限します。 また、これらのバックエンド リソースのアクセスを監査することもできます。 クライアントの代わりに使用する目的でサーバーに委任される資格情報によって、すべてのデータへのアクセスを要求することにより、サーバーが侵害されないようにし、他のサーバーに格納されている機密情報にアクセスできるようにすることができます。 委任認証は、複数のコンピューターでシングル サインオン機能を使用するように設計された多層アプリケーションに役立ちます。
ドメイン間の信頼関係における認証
複数のドメインを持つほとんどの組織は、ユーザーが別のドメインにある共有リソースにアクセスする正当な必要性を持っています。これは、旅行者が国の異なる地域への移動を許可されているのと同様です。 このアクセスを制御するには、あるドメインのユーザーが別のドメインのリソースを使用することを認証および承認できる必要があります。 異なるドメイン内のクライアントとサーバーの間で認証と承認の機能を提供するには、2 つのドメイン間に信頼関係がなければなりません。 信頼は、セキュリティで保護された Active Directory 通信を行う際の基盤になるテクノロジであり、Windows Server ネットワーク アーキテクチャの不可欠なセキュリティ コンポーネントです。
2 つのドメイン間に信頼が存在する場合、各ドメインの認証メカニズムは、他のドメインからの認証を信頼します。 信頼は、受信認証要求が信頼できる機関 (信頼できるドメイン) からのものであることを確認することにより、リソース ドメイン (信頼するドメイン) 内の共有リソースへの制御されたアクセスを提供するのに役立ちます。 信頼はこのようにして、検証された認証要求のみがドメイン間を移動できるようにするブリッジとして機能します。
特定の信頼が認証要求を渡す方法は、その構成方法によって異なります。 信頼関係は、信頼されたドメインから信頼するドメイン内のリソースへのアクセスを提供することで一方通行にするか、または、各ドメインから他のドメイン内のリソースへのアクセスを提供することで双方向にすることもできます。 信頼はまた非推移的でもあります。この場合、信頼は 2 つの信頼パートナー ドメイン間にのみ存在します。または推移的な場合、信頼はいずれかのパートナーが信頼する他のドメインに自動的に拡張されます。
信頼のしくみの詳細については、「ドメインとフォレストの信頼のしくみ」を参照してください。
プロトコルの移行
プロトコル切り替えは、アプリケーションがユーザー認証層で異なる認証メカニズムをサポートし、以降のアプリケーション層で相互認証や制約付き委任などのセキュリティ機能のために Kerberos プロトコルに切り替えて、アプリケーション デザイナーを支援します。
プロトコルの切り替えの詳細については、「Kerberos プロトコルへの切り替えと制約付き委任」を参照してください。
制約付き委任
制約付き委任は、アプリケーション サービスがユーザーの代理として動作できる範囲を制限することによって、管理者がアプリケーションの信頼境界を指定および適用できるようにします。 委任に対して信頼されているコンピューターがリソースを要求できる特定のサービスを指定できます。 サービスの承認権限を制限する柔軟性は、信頼されていないサービスによる侵害の機会を減らすことで、アプリケーションのセキュリティ設計を向上させるのに役立ちます。
制約付き委任の詳細については、「Kerberos の制約付き委任の概要」を参照してください。