CREDENTIAL_PROVIDER_USAGE_SCENARIO
列挙型メンバー 6
| 名前 | 10進 | 16進 | 説明 |
|---|---|---|---|
| CPUS_INVALID | 0 | 0x0 | 資格情報プロバイダーに使用シナリオが設定されていません。このシナリオが ICredentialProvider::SetUsageScenario に渡されることはありません。資格情報プロバイダーが現在の使用シナリオをクラスメンバーとして保持する場合、この値は ICredentialProvider::SetUsageScenario の初回呼び出し前の初期化値として利用できます。 |
| CPUS_LOGON | 1 | 0x1 | ワークステーションへのログオンまたはロック解除です。詳細は解説を参照してください。このシナリオを実装する資格情報プロバイダーは、認証のために資格情報をローカル機関 (local authority) へシリアル化できるようにしておく必要があります。 |
| CPUS_UNLOCK_WORKSTATION | 2 | 0x2 | ワークステーションのロック解除です。このシナリオを実装する資格情報プロバイダーは、認証のために資格情報をローカル機関 (local authority) へシリアル化できるようにしておく必要があります。また、これらの資格情報プロバイダーは、現在ログインしているユーザーを既定のタイルとして列挙する必要もあります。 |
| CPUS_CHANGE_PASSWORD | 3 | 0x3 | パスワードの変更です。これにより、資格情報プロバイダーはユーザーからのパスワード変更要求に応じてタイルを列挙できます。パスワードや PIN などの秘密情報をユーザーから取得する必要がない場合は、このシナリオを実装しないでください。また、これらの資格情報プロバイダーは、現在ログインしているユーザーを既定のタイルとして列挙する必要もあります。 |
| CPUS_CREDUI | 4 | 0x4 | 資格情報 UI です。このシナリオでは、資格情報プロバイダーによってシリアル化された資格情報を、リモートコンピューター上での認証に使用できます。これは、ユーザーアクセス制御 (User Access Control) におけるオーバーザショルダー プロンプトにも使用されるシナリオです。このシナリオでは、CPUS_LOGON、CPUS_UNLOCK_WORKSTATION、CPUS_CHANGE_PASSWORD に使用されるものとは異なる資格情報プロバイダーのインスタンスが使用されるため、異なるシナリオ間で資格情報プロバイダーの状態を維持することはできません。 |
| CPUS_PLAP | 5 | 0x5 | ログオン前アクセス プロバイダー (Pre-Logon-Access Provider) です。この使用シナリオに対応する資格情報プロバイダーは、次の場所に登録する必要があります。 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\PLAP Providers |
公式ドキュメント
資格情報プロバイダーがサポートされるシナリオを宣言します。資格情報プロバイダー使用シナリオ (CPUS) により、資格情報プロバイダーはシナリオごとに異なる列挙動作と UI フィールド構成を提供できます。ICredentialProvider が初期化されると、ICredentialProvider::SetUsageScenario が呼び出され、どの使用シナリオがサポートされるかが設定されます。そのシナリオは、資格情報プロバイダーの有効期間全体にわたって維持されます。
解説(Remarks)
Windows 10 以降では、CPUS_LOGON と CPUS_UNLOCK_WORKSTATION のユーザーシナリオが統合されました。これにより、不要なセッションの作成や切り替えを行うことなく、複数のユーザーがコンピューターにログインできるようになります。コンピューターがロックされた後でも、そのコンピューター上の任意のユーザーは、現在のセッションから抜けて新しいセッションを作成する必要なくログインできます。このため、CPUS_LOGON はシステムへのログオン時とワークステーションのロック解除時の両方に使用できます。ただし、CPUS_LOGON をすべてのケースで使用できるわけではありません。さまざまなシステムによって課されるポリシーの制限により、ユーザーシナリオが CPUS_UNLOCK_WORKSTATION でなければならない場合があります。資格情報プロバイダーは、渡されたシナリオに基づいて適切な資格情報構造を作成できる十分な堅牢性を備えている必要があります。Windows は状況に応じて適切なユーザーシナリオを要求します。CPUS_UNLOCK_WORKSTATION シナリオを使用しなければならないかどうかに影響する要因には、次のようなものがあります。なお、これらは可能性の一部にすぎません。
- デバイスのオペレーティングシステム。
- コンソールセッションかリモートセッションか。
- ユーザーの簡易切り替えのエントリポイントを非表示にする、あるいはユーザーの姓を表示しない対話型ログオンなどのグループポリシー。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
列挙メンバーの定義。HSP タブは #define global(値は16進)。
typedef enum CREDENTIAL_PROVIDER_USAGE_SCENARIO : int {
CPUS_INVALID = 0,
CPUS_LOGON = 1,
CPUS_UNLOCK_WORKSTATION = 2,
CPUS_CHANGE_PASSWORD = 3,
CPUS_CREDUI = 4,
CPUS_PLAP = 5
} CREDENTIAL_PROVIDER_USAGE_SCENARIO;public enum CREDENTIAL_PROVIDER_USAGE_SCENARIO : int
{
CPUS_INVALID = 0,
CPUS_LOGON = 1,
CPUS_UNLOCK_WORKSTATION = 2,
CPUS_CHANGE_PASSWORD = 3,
CPUS_CREDUI = 4,
CPUS_PLAP = 5,
}Public Enum CREDENTIAL_PROVIDER_USAGE_SCENARIO As Integer
CPUS_INVALID = 0
CPUS_LOGON = 1
CPUS_UNLOCK_WORKSTATION = 2
CPUS_CHANGE_PASSWORD = 3
CPUS_CREDUI = 4
CPUS_PLAP = 5
End Enumimport enum
class CREDENTIAL_PROVIDER_USAGE_SCENARIO(enum.IntEnum):
CPUS_INVALID = 0
CPUS_LOGON = 1
CPUS_UNLOCK_WORKSTATION = 2
CPUS_CHANGE_PASSWORD = 3
CPUS_CREDUI = 4
CPUS_PLAP = 5// CREDENTIAL_PROVIDER_USAGE_SCENARIO
pub const CPUS_INVALID: i32 = 0;
pub const CPUS_LOGON: i32 = 1;
pub const CPUS_UNLOCK_WORKSTATION: i32 = 2;
pub const CPUS_CHANGE_PASSWORD: i32 = 3;
pub const CPUS_CREDUI: i32 = 4;
pub const CPUS_PLAP: i32 = 5;// CREDENTIAL_PROVIDER_USAGE_SCENARIO
const (
CPUS_INVALID int32 = 0
CPUS_LOGON int32 = 1
CPUS_UNLOCK_WORKSTATION int32 = 2
CPUS_CHANGE_PASSWORD int32 = 3
CPUS_CREDUI int32 = 4
CPUS_PLAP int32 = 5
)const
CPUS_INVALID = 0;
CPUS_LOGON = 1;
CPUS_UNLOCK_WORKSTATION = 2;
CPUS_CHANGE_PASSWORD = 3;
CPUS_CREDUI = 4;
CPUS_PLAP = 5;// CREDENTIAL_PROVIDER_USAGE_SCENARIO
pub const CPUS_INVALID: i32 = 0;
pub const CPUS_LOGON: i32 = 1;
pub const CPUS_UNLOCK_WORKSTATION: i32 = 2;
pub const CPUS_CHANGE_PASSWORD: i32 = 3;
pub const CPUS_CREDUI: i32 = 4;
pub const CPUS_PLAP: i32 = 5;const
CPUS_INVALID* = 0
CPUS_LOGON* = 1
CPUS_UNLOCK_WORKSTATION* = 2
CPUS_CHANGE_PASSWORD* = 3
CPUS_CREDUI* = 4
CPUS_PLAP* = 5enum CREDENTIAL_PROVIDER_USAGE_SCENARIO : int {
CPUS_INVALID = 0,
CPUS_LOGON = 1,
CPUS_UNLOCK_WORKSTATION = 2,
CPUS_CHANGE_PASSWORD = 3,
CPUS_CREDUI = 4,
CPUS_PLAP = 5,
}#define global CPUS_INVALID 0x0
#define global CPUS_LOGON 0x1
#define global CPUS_UNLOCK_WORKSTATION 0x2
#define global CPUS_CHANGE_PASSWORD 0x3
#define global CPUS_CREDUI 0x4
#define global CPUS_PLAP 0x5