Windows の資格情報プロバイダー
資格情報プロバイダーは、ユーザー認証の主要なメカニズムです。 現在、ユーザーがログオンやその他のシステム認証シナリオに必要な ID を証明する唯一の方法です。 Windows 10 と Microsoft Passport の導入以来、資格情報プロバイダーはこれまで以上に重要でした。 これらは、アプリ、Web サイトなどの認証に使用されます。
Microsoft では、パスワード、PIN、スマートカード、Windows Hello (指紋、顔、虹彩認識) など、Windows の一部としてさまざまな資格情報プロバイダーを提供しています。 この記事では、これらを "システム資格情報プロバイダー" と呼びます。 OEM、エンタープライズ、およびその他のエンティティは、独自の資格情報プロバイダーを記述し、Windows に簡単に統合できます。 この記事では、これらを "サード パーティの資格情報プロバイダー" と呼びます。 V1 と V2 の両方の資格情報プロバイダーが Windows でサポートされていることに注意してください。 サード パーティの資格情報プロバイダーの作成者とマネージャーは、これらの推奨事項を理解することが重要です。
システム資格情報プロバイダー
サードパーティの資格情報プロバイダーに加えて、デバイス上のすべてのユーザーに対して少なくとも 1 つのシステム資格情報プロバイダーを常に使用することを強くお勧めします。 さらに、サード パーティの資格情報プロバイダーのセットアップ中に、デバイス上の各ユーザーに少なくとも 1 つのシステム資格情報プロバイダーを構成するように求めるメッセージが表示されます (他の回復オプションがない場合は、以下のシナリオ A を参照してください)。
シナリオ A
ローカル アカウント ユーザーがサード パーティの資格情報プロバイダーを設定し、それを定期的に使用してデバイスにログインしています。 ある日、ユーザーはサード パーティの資格情報プロバイダーを中断する更新プログラムをデバイスにインストールします。ユーザーは、コンピューターを再起動する前に、この変更を認識していけません。
次回の再起動時に、ユーザーはログオン画面に表示され、想定されるサード パーティの資格情報プロバイダーを使用できません。 ユーザーがシステム資格情報プロバイダーを設定している場合、ユーザーはそれを使用してマシンにログインできます。 そうでない場合、ユーザーはマシン上のアカウントを回復する方法がありません。
シナリオ B
Microsoft アカウント (MSA)、Active Directory (AD)、または Microsoft Entra ID アカウント のユーザーがサード パーティの資格情報プロバイダーを設定し、定期的に使用してデバイスにログインしています。 ある日、ユーザーはサード パーティの資格情報プロバイダーを中断する更新プログラムをデバイスにインストールします。ユーザーは、コンピューターを再起動する前に、この変更を認識していけません。
次回の再起動時に、ユーザーはログオン画面に表示され、想定されるサード パーティの資格情報プロバイダーを使用できません。 ユーザーがシステム資格情報プロバイダーを構成している場合、ユーザーはそれを使用してマシンにログインできます。 または、システムのパスワード資格情報プロバイダーが使用可能な場合、ユーザーはリモートでパスワードを要求/リセットし、これを使用してマシンにログインできます。 どちらのオプションも使用できない場合、ユーザーはマシン上のアカウントを回復する方法がありません。
結論
要約すると、デバイス上のすべてのシステム資格情報プロバイダーを無効にすることはお勧めしません。 サード パーティの資格情報プロバイダーは、特定のユーザー グループに対する追加の認証要件を満たす場合があります。重大な変更が発生したときに、ユーザーが常に自分のコンピューターへのアクセスを回復できるようにすることが非常に重要です。 システム資格情報プロバイダーは、この保証を提供します。
カスタム資格情報プロバイダー
Windows 資格情報プロバイダー フレームワークを使用すると、開発者はカスタム資格情報プロバイダーを作成できます。 Winlogon 資格情報を収集する場合、ログオン UI は各資格情報プロバイダーに対して、列挙する資格情報の数を照会します。 すべてのプロバイダーがタイルを列挙すると、ログオン UI によってユーザーに表示されます。 その後、ユーザーはタイルを操作して、必要な資格情報を指定します。 ログオン UI は、認証のためにこれらの資格情報を送信します。 資格情報プロバイダーは、資格情報が必要な場合に資格情報 UI で使用することもできます。 資格情報プロバイダーをサポートできるシナリオの一覧については、CREDENTIAL_PROVIDER_USAGE_SCENARIO を参照してください。
このシステムのおかげで、従来よりも資格情報プロバイダーを作成する方がはるかに簡単です。 作業の多くは、Winlogon、ログオン UI、資格情報 UI の組み合わせによって処理されます。 そのためには、ICredentialProvider と ICredentialProviderCredential を 独自の実装を作成する必要があります。 推奨される V2 資格情報プロバイダーを実装する場合は、ICredentialProviderCredential2 実装する必要もあります。
資格情報プロバイダーは強制メカニズムではないことに注意することが重要です。 資格情報を収集してシリアル化し、承認のために送信するために使用されます。 ローカル機関と認証パッケージが処理され、必要なセキュリティの適用が行われます。
資格情報プロバイダーとサポートされているハードウェアを組み合わせることで、Windows を拡張して、生体認証情報、パスワード、PIN、スマート カード証明書、または作成するカスタム認証パッケージを使用したログオンをサポートできます。 ユーザーのログオン エクスペリエンスは、さまざまな方法でカスタマイズできます。 たとえば、ログオン UI で資格情報プロバイダーに資格情報タイルのクエリを実行する場合は、既定のタイルを指定して、ユーザーにカスタマイズされたエクスペリエンスを提供できます。 資格情報プロバイダーは、シングル サインオン (SSO) をサポートし、セキュリティで保護されたアクセス ポイントに対するユーザーの認証とマシン ログオンをサポートするように設計することもできます。
資格情報プロバイダーは Windows マシンに登録され、次の役割を担います。
- 認証に必要な資格情報を記述する。
- 外部認証機関との通信とロジックの処理。
- 対話型ログオンとネットワーク ログオンの資格情報をパッケージ化します。
先端
1 台のコンピューターに複数の資格情報プロバイダーをインストールできることに注意してください。
資格情報プロバイダーの折り返し
システム資格情報プロバイダーをラップして、ネイティブでサポートされていない資格情報プロバイダーに機能を追加できます。 これは、問題のある動作につながる可能性があるため、推奨されません。 ラッパーと競合し、ユーザー エクスペリエンスが低下したり、ユーザーがデバイスにアクセスできなくなる可能性がある資格情報プロバイダーに変更を加えることができます。 これは、Windows の頻繁な更新頻度に特に当てはまります。
ネイティブに含まれていない資格情報プロバイダーの機能が必要な場合は、カスタム資格情報プロバイダーを作成することをお勧めします。 これは、システム プロバイダーに依存しない、より安定したアプローチです。