Win32 API 日本語リファレンス
ホームNetworking.ActiveDirectory › ADS_AUTHENTICATION_ENUM

ADS_AUTHENTICATION_ENUM

列挙型
基底型u4

メンバー 13

名前10進16進説明
ADS_SECURE_AUTHENTICATION10x1セキュリティで保護された認証を要求します。このフラグが設定されている場合、WinNT プロバイダーは NT LAN Manager (NTLM) を使用してクライアントを認証します。Active Directory は Kerberos を使用し、場合によっては NTLM も使用してクライアントを認証します。ユーザー名とパスワードが NULL の場合、ADSI は呼び出し元スレッドのセキュリティ コンテキストを使用してオブジェクトにバインドします。これは、アプリケーションが実行されているユーザー アカウントのセキュリティ コンテキスト、または呼び出し元スレッドが表しているクライアント ユーザー アカウントのセキュリティ コンテキストのいずれかです。
ADS_USE_ENCRYPTION20x2

ネットワーク経由のデータ交換に暗号化を使用することを ADSI に要求します。

メモ このオプションは WinNT プロバイダーではサポートされていません。
ADS_USE_SSL20x2

チャネルは Secure Sockets Layer (SSL) を使用して暗号化されます。Active Directory では、SSL をサポートするために証明書サーバーがインストールされている必要があります。

このフラグが ADS_SECURE_AUTHENTICATION フラグと組み合わされておらず、指定された資格情報が NULL の場合、バインドは匿名で実行されます。このフラグが ADS_SECURE_AUTHENTICATION フラグと組み合わされ、指定された資格情報が NULL の場合は、呼び出し元スレッドの資格情報が使用されます。

メモ このオプションは WinNT プロバイダーではサポートされていません。
ADS_READONLY_SERVER40x4

書き込み可能なドメイン コントローラーは必要ありません。アプリケーションが Active Directory からデータを読み取るか、クエリを実行するだけの場合は、このフラグを使用してセッションを開いてください。これにより、アプリケーションは読み取り専用ドメイン コントローラー (RODC) を活用できます。

Windows Server 2008 では、ADSI は読み取り専用ドメイン コントローラー (RODC) または書き込み可能なドメイン コントローラーのいずれかへの接続を試みます。これにより、アクセスに RODC を使用できるようになり、書き込み可能なドメイン コントローラーへの直接接続を必要とせずに、ブランチ ネットワークや境界ネットワーク (DMZ、非武装地帯、スクリーン サブネットとも呼ばれます) でアプリケーションを実行できます。

RODC 互換性を考慮したプログラミングの詳細については、Read-Only Domain Controllers Application Compatibility Guide を参照してください。

ADS_PROMPT_CREDENTIALS80x8このフラグはサポートされていません。
ADS_NO_AUTHENTICATION160x10認証を行わないことを要求します。プロバイダーは、クライアントを匿名ユーザーとして対象オブジェクトにバインドしようとする場合があります。WinNT プロバイダーはこのフラグをサポートしていません。Active Directory はクライアントと対象オブジェクトの間に接続を確立しますが、認証は実行しません。このフラグを設定することは匿名バインドを要求することに相当し、すべてのユーザーがセキュリティ コンテキストとして示されます。
ADS_FAST_BIND320x20

このフラグが設定されている場合、ADSI は objectClass プロパティのクエリを試みないため、オブジェクトの完全なサポートではなく、すべての ADSI オブジェクトがサポートする基本インターフェイスのみを公開します。基本インターフェイスのメソッドのみを使用する一連のオブジェクト操作では、このオプションを使用してパフォーマンスを向上させることができます。ただし、ADSI は要求されたオブジェクトが実際にサーバー上に存在するかどうかを検証しません。詳細については、Fast Binding Options for Batch Write/Modify Operations を参照してください。

このオプションは、objectClass のクエリが失敗する Exchange 5.5 などの Active Directory 以外のディレクトリ サービスにバインドする場合にも有用です。

ADS_USE_SIGNING640x40

データの整合性を検証します。署名を使用するには、ADS_SECURE_AUTHENTICATION フラグも設定されていなければなりません。

メモ このオプションは WinNT プロバイダーではサポートされていません。
ADS_USE_SEALING1280x80

Kerberos を使用してデータを暗号化します。シーリングを使用するには、ADS_SECURE_AUTHENTICATION フラグも設定されていなければなりません。

メモ このオプションは WinNT プロバイダーではサポートされていません。
ADS_USE_DELEGATION2560x100ADSI がユーザーのセキュリティ コンテキストを委任できるようにします。これは、ドメイン間でオブジェクトを移動する場合に必要です。
ADS_SERVER_BIND5120x200

LDAP パスで Active Directory の DNS サーバー名が渡された場合、ホスト名の解決時に A レコードの参照を強制し、SRV レコードの参照をバイパスします。

メモ このオプションは WinNT プロバイダーではサポートされていません。
ADS_NO_REFERRAL_CHASING10240x400

接続が存続する間、参照追跡 (referral chasing) を無効にするには、このフラグを指定します。ただし、このフラグを指定した場合でも、ADSI では、ADS_OPTION_ENUMADS_OPTION_REFERRALS を使用して設定するコンテナー列挙時の参照追跡動作 (IADsObjectOptions::SetOption の「参照追跡を伴うコンテナー列挙」で説明) と、検索時の参照追跡動作 (Referral Chasing with IDirectorySearch で説明) を、それぞれ個別に設定できます。

メモ このオプションは WinNT プロバイダーではサポートされていません。
ADS_AUTH_RESERVED21474836480x80000000予約済みです。

公式ドキュメント

ADS_AUTHENTICATION_ENUM 列挙型は、ディレクトリ サービス オブジェクトにバインドするために ADSI で使用される認証オプションを指定します。ADSI オブジェクトにバインドするために IADsOpenDSObject または ADsOpenObject を呼び出すときは、これらのオプションのうち少なくとも 1 つを指定します。一般に、プロバイダーごとに実装は異なります。ここで説明するオプションは、ADSI SDK に含まれる Microsoft 提供のプロバイダーに適用されます。詳細については、ADSI System Providers を参照してください。

解説(Remarks)

ADS_SECURE_AUTHENTICATION フラグは、ADS_READONLY_SERVERADS_PROMPT_CREDENTIALSADS_FAST_BIND などの他のフラグと組み合わせて使用できます。

サーバーレス バインドとは、クライアントがバインド文字列で Active Directory サーバーを明示的に指定せずに、Active Directory オブジェクトへのバインドを試みる処理を指します。これが可能なのは、LDAP プロバイダーが Windows のロケーター サービスを利用して、クライアントにとって最適なドメイン コントローラー (DC) を見つけるためです。ただし、サーバーレス バインド機能を利用するには、クライアントが Active Directory ドメイン コントローラー上にアカウントを持っている必要があります。また、サーバーレス バインドで使用される DC は、常に既定のドメイン、つまりバインドを実行するスレッドの現在のセキュリティ コンテキストに関連付けられたドメインに存在します。

VBScript はタイプ ライブラリからデータを読み取ることができないため、VBScript アプリケーションでは上記で定義されているシンボル定数を認識できません。VBScript アプリケーションで適切なフラグを設定するには、代わりに数値の定数を使用してください。良いプログラミング習慣としてシンボル定数を使用する場合は、ここで示すように、Visual Basic Scripting edition のアプリケーション内でそれらの定数を明示的に宣言してください。

次のコード例は、IADsOpenDSObject を使用して、WinNT プロバイダーでセキュリティで保護された認証を行い、fabrikam 上のオブジェクトを開く方法を示しています。

Const ADS_SECURE_AUTHENTICATION = 1

Dim dso As IADsOpenDSObject
Dim domain As IADsDomain
 
Set dso = GetObject("WinNT:")
Set domain = dso.OpenDSObject("WinNT://Fabrikam", vbNullString, vbNullString, ADS_SECURE_AUTHENTICATION)

次のコード例は、"JeffSmith" としてバインドされたユーザーを検証するために、ADS_SECURE_AUTHENTICATION フラグを ADsOpenObject と共に使用する方法を示しています。ユーザー名には、UPN 形式の "JeffSmith@Fabrikam.com" と、識別名形式の "CN=JeffSmith,DC=Fabrikam,DC=COM" のどちらも使用できます。

IADs *pObject = NULL;
HRESULT hr;
hr = ADsOpenObject(_bstr_t("LDAP://CN=JeffSmith, DC=fabrikam, DC=com"),
                   NULL,
                   NULL,
                   ADS_SECURE_AUTHENTICATION, 
                   IID_IADs,
                   (void**) &pObject);
if (hr != S_OK)
    {} // Handle open object errors here.
else
    {} // Object was retrieved, continue processing here.
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum ADS_AUTHENTICATION_ENUM : unsigned int {
    ADS_SECURE_AUTHENTICATION = 1,
    ADS_USE_ENCRYPTION = 2,
    ADS_USE_SSL = 2,
    ADS_READONLY_SERVER = 4,
    ADS_PROMPT_CREDENTIALS = 8,
    ADS_NO_AUTHENTICATION = 16,
    ADS_FAST_BIND = 32,
    ADS_USE_SIGNING = 64,
    ADS_USE_SEALING = 128,
    ADS_USE_DELEGATION = 256,
    ADS_SERVER_BIND = 512,
    ADS_NO_REFERRAL_CHASING = 1024,
    ADS_AUTH_RESERVED = 2147483648
} ADS_AUTHENTICATION_ENUM;
public enum ADS_AUTHENTICATION_ENUM : uint
{
    ADS_SECURE_AUTHENTICATION = 1,
    ADS_USE_ENCRYPTION = 2,
    ADS_USE_SSL = 2,
    ADS_READONLY_SERVER = 4,
    ADS_PROMPT_CREDENTIALS = 8,
    ADS_NO_AUTHENTICATION = 16,
    ADS_FAST_BIND = 32,
    ADS_USE_SIGNING = 64,
    ADS_USE_SEALING = 128,
    ADS_USE_DELEGATION = 256,
    ADS_SERVER_BIND = 512,
    ADS_NO_REFERRAL_CHASING = 1024,
    ADS_AUTH_RESERVED = 2147483648,
}
Public Enum ADS_AUTHENTICATION_ENUM As UInteger
    ADS_SECURE_AUTHENTICATION = 1
    ADS_USE_ENCRYPTION = 2
    ADS_USE_SSL = 2
    ADS_READONLY_SERVER = 4
    ADS_PROMPT_CREDENTIALS = 8
    ADS_NO_AUTHENTICATION = 16
    ADS_FAST_BIND = 32
    ADS_USE_SIGNING = 64
    ADS_USE_SEALING = 128
    ADS_USE_DELEGATION = 256
    ADS_SERVER_BIND = 512
    ADS_NO_REFERRAL_CHASING = 1024
    ADS_AUTH_RESERVED = 2147483648
End Enum
import enum

class ADS_AUTHENTICATION_ENUM(enum.IntEnum):
    ADS_SECURE_AUTHENTICATION = 1
    ADS_USE_ENCRYPTION = 2
    ADS_USE_SSL = 2
    ADS_READONLY_SERVER = 4
    ADS_PROMPT_CREDENTIALS = 8
    ADS_NO_AUTHENTICATION = 16
    ADS_FAST_BIND = 32
    ADS_USE_SIGNING = 64
    ADS_USE_SEALING = 128
    ADS_USE_DELEGATION = 256
    ADS_SERVER_BIND = 512
    ADS_NO_REFERRAL_CHASING = 1024
    ADS_AUTH_RESERVED = 2147483648
// ADS_AUTHENTICATION_ENUM
pub const ADS_SECURE_AUTHENTICATION: u32 = 1;
pub const ADS_USE_ENCRYPTION: u32 = 2;
pub const ADS_USE_SSL: u32 = 2;
pub const ADS_READONLY_SERVER: u32 = 4;
pub const ADS_PROMPT_CREDENTIALS: u32 = 8;
pub const ADS_NO_AUTHENTICATION: u32 = 16;
pub const ADS_FAST_BIND: u32 = 32;
pub const ADS_USE_SIGNING: u32 = 64;
pub const ADS_USE_SEALING: u32 = 128;
pub const ADS_USE_DELEGATION: u32 = 256;
pub const ADS_SERVER_BIND: u32 = 512;
pub const ADS_NO_REFERRAL_CHASING: u32 = 1024;
pub const ADS_AUTH_RESERVED: u32 = 2147483648;
// ADS_AUTHENTICATION_ENUM
const (
	ADS_SECURE_AUTHENTICATION uint32 = 1
	ADS_USE_ENCRYPTION uint32 = 2
	ADS_USE_SSL uint32 = 2
	ADS_READONLY_SERVER uint32 = 4
	ADS_PROMPT_CREDENTIALS uint32 = 8
	ADS_NO_AUTHENTICATION uint32 = 16
	ADS_FAST_BIND uint32 = 32
	ADS_USE_SIGNING uint32 = 64
	ADS_USE_SEALING uint32 = 128
	ADS_USE_DELEGATION uint32 = 256
	ADS_SERVER_BIND uint32 = 512
	ADS_NO_REFERRAL_CHASING uint32 = 1024
	ADS_AUTH_RESERVED uint32 = 2147483648
)
const
  ADS_SECURE_AUTHENTICATION = 1;
  ADS_USE_ENCRYPTION = 2;
  ADS_USE_SSL = 2;
  ADS_READONLY_SERVER = 4;
  ADS_PROMPT_CREDENTIALS = 8;
  ADS_NO_AUTHENTICATION = 16;
  ADS_FAST_BIND = 32;
  ADS_USE_SIGNING = 64;
  ADS_USE_SEALING = 128;
  ADS_USE_DELEGATION = 256;
  ADS_SERVER_BIND = 512;
  ADS_NO_REFERRAL_CHASING = 1024;
  ADS_AUTH_RESERVED = 2147483648;
// ADS_AUTHENTICATION_ENUM
pub const ADS_SECURE_AUTHENTICATION: u32 = 1;
pub const ADS_USE_ENCRYPTION: u32 = 2;
pub const ADS_USE_SSL: u32 = 2;
pub const ADS_READONLY_SERVER: u32 = 4;
pub const ADS_PROMPT_CREDENTIALS: u32 = 8;
pub const ADS_NO_AUTHENTICATION: u32 = 16;
pub const ADS_FAST_BIND: u32 = 32;
pub const ADS_USE_SIGNING: u32 = 64;
pub const ADS_USE_SEALING: u32 = 128;
pub const ADS_USE_DELEGATION: u32 = 256;
pub const ADS_SERVER_BIND: u32 = 512;
pub const ADS_NO_REFERRAL_CHASING: u32 = 1024;
pub const ADS_AUTH_RESERVED: u32 = 2147483648;
const
  ADS_SECURE_AUTHENTICATION* = 1
  ADS_USE_ENCRYPTION* = 2
  ADS_USE_SSL* = 2
  ADS_READONLY_SERVER* = 4
  ADS_PROMPT_CREDENTIALS* = 8
  ADS_NO_AUTHENTICATION* = 16
  ADS_FAST_BIND* = 32
  ADS_USE_SIGNING* = 64
  ADS_USE_SEALING* = 128
  ADS_USE_DELEGATION* = 256
  ADS_SERVER_BIND* = 512
  ADS_NO_REFERRAL_CHASING* = 1024
  ADS_AUTH_RESERVED* = 2147483648
enum ADS_AUTHENTICATION_ENUM : uint {
    ADS_SECURE_AUTHENTICATION = 1,
    ADS_USE_ENCRYPTION = 2,
    ADS_USE_SSL = 2,
    ADS_READONLY_SERVER = 4,
    ADS_PROMPT_CREDENTIALS = 8,
    ADS_NO_AUTHENTICATION = 16,
    ADS_FAST_BIND = 32,
    ADS_USE_SIGNING = 64,
    ADS_USE_SEALING = 128,
    ADS_USE_DELEGATION = 256,
    ADS_SERVER_BIND = 512,
    ADS_NO_REFERRAL_CHASING = 1024,
    ADS_AUTH_RESERVED = 2147483648,
}
#define global ADS_SECURE_AUTHENTICATION 0x1
#define global ADS_USE_ENCRYPTION        0x2
#define global ADS_USE_SSL               0x2
#define global ADS_READONLY_SERVER       0x4
#define global ADS_PROMPT_CREDENTIALS    0x8
#define global ADS_NO_AUTHENTICATION     0x10
#define global ADS_FAST_BIND             0x20
#define global ADS_USE_SIGNING           0x40
#define global ADS_USE_SEALING           0x80
#define global ADS_USE_DELEGATION        0x100
#define global ADS_SERVER_BIND           0x200
#define global ADS_NO_REFERRAL_CHASING   0x400
#define global ADS_AUTH_RESERVED         0x80000000