Interstage Application Server ディレクトリサービス運用ガイド |
目次
索引
![]() ![]() |
第9章 アプリケーションの作成(C API) | > 9.3 ソースプログラムの作成 |
クライアントは、Interstage ディレクトリサービスとの通信を開始する前に、セションのオープン、セションの初期化(セションハンドルオプションの設定)を行う必要があります。
セションをオープンするには、以下の関数を使用します。
これらの関数は、セションを識別するためのセションハンドルを返します。
オープンした1つのセションを、複数のスレッドで共有することはできません。複数のスレッドを持つアプリケーションで使用する場合は、“アプリケーション作成の前に”の“複数のスレッドがInterstageディレクトリサービスと通信する場合”を参照してください。
SSL通信を使用しない
ldap_init()でセションハンドルをオープンします。
以下に、使用例を示します。
LDAP *ld; /* セションのオープン */ ld = ldap_init( "hostname", 389 ); if ( ld == NULL ) { /* エラー発生時の処理をする */ return -1; }
SSL通信を使用する
クライアントAPIライブラリでは、SSLを使用してInterstage ディレクトリサービスと安全な通信を行うことができます。
SSLプロトコルを使用する場合は、ldap_init()の代わりにldapssl_init()でセションをオープンします。
SSLプロトコルを使用するためには、SSL環境をクライアントに構築し、SSL通信を行うサーバに対応したSSL情報を設定する必要があります。
SSL通信環境構築の詳細な手順については、“SSL通信環境の構築(クライアント・サーバ間)”を参照してください。
以下に、使用例を示します。
LDAP *ld; SSLENV sslenv memset( sslenv, 0x00, sizeof(SSLENV) ); sslenv->ssl_version = 3; sslenv->crypt = "RSA-3DES-SHA:RSA-DES-SHA"; sslenv->tkn_lbl = "Token01"; sslenv->tkn_pwd = "userpin"; sslenv->slot_path = "/sslenv/slot"; sslenv->cert_path = (unsigned char *)"/sslenv/sslcert"; /* SSLを使用したセションのオープン */ ld = ldapssl_init( "hostname", 636, &sslenv ); if ( ld == NULL ) { /* エラー発生時の処理をする */ return -1; }
sslenvには、SSLの動作環境の情報を設定したSSLENV構造体のアドレスを指定します。
ldapssl_init()でSSLライブラリでエラーが発生した場合は、sslenv構造体のssl_err、およびssl_err_detailメンバにエラーコードが設定されます。また、ldapssl_init()以降の関数で発生したSSLライブラリのエラーコードを参照するには、ldapssl_error()を使用します。
クライアントは、該当するセションごとの動作環境を、セションハンドルオプションとして設定・参照できます。
セションハンドルオプションの設定、参照をするには、以下の関数を使用します。
以下の項目を設定、参照できます。
LDAPプロトコルバージョンを指定する
LDAPプロトコルのバージョンを指定しない場合、LDAP V2プロトコルが使用されます。Interstage ディレクトリサービスでは、LDAP V2プロトコルをサポートしていないため、セションハンドルオプションを使って、必ずLDAP V3プロトコルを指定してください。
/* オプションの設定 ( LDAP_VERSION3 ) */ optdata = LDAP_VERSION3; rtn = ldap_set_option( ld, LDAP_OPT_PROTOCOL_VERSION, (void *)(&optdata) );
関数、およびセションハンドルオプションの値について詳しくは、“リファレンスマニュアル(API編)”の“セションのオープンとクローズインタフェース”、および“セションハンドルオプションの設定/参照インタフェース”を参照してください。
目次
索引
![]() ![]() |