過去のナビゲーションリンクのスキップSecure Global Desktop 4.40 管理者ガイド > ユーザーと認証 > ログインスクリプトの Tcl コマンドおよびプロシージャー

ログインスクリプトの Tcl コマンドおよびプロシージャー

SGD に付属しているログインスクリプトは、いくつかの Tcl コマンドおよびプロシージャーを使用してアプリケーションサーバーとの通信を行います。

Tcl コマンドは、実行プロトコルエンジン (ExecPE) で定義されるコマンドであり、アプリケーションサーバーへの接続や、SGD の認証および進行状況ダイアログの表示を制御するためにユーザー独自のログインスクリプトで使用できます。

TCL プロシージャーは、ログインスクリプトのみで定義され、認証ダイアログをより細かく制御するために使用できます。

次の Tcl コマンドおよびプロシージャーは、SGD 認証ダイアログの表示を制御します。

次の Tcl コマンドは、アプリケーションが起動されたときの SGD 進行状況ダイアログの表示を制御します。

次の Tcl コマンドは、アプリケーションサーバーへの接続を制御します。

authrequest

過去のコマンド構文またはプログラムコードのスキップauthrequest
  [ -normal | -changed ] 
  -showuser 0|1 
  -title title 
  -message message
  -customuserlabel 0|1
  -userlabel label 
  -custompasswdlabel 0|1
  -passwdlabel label
  -showpasscache 0|1
  -showsmartcard 0|1
  -isuserdialog 0|1|2

これは、ユーザー名またはパスワードに関する問題を示すダイアログボックスを表示するための Tcl コマンドです。

一般に、authrequest コマンドをログインスクリプトから直接呼び出すことはありません。代わりに、定義済みの Tcl プロシージャーを使用して、このコマンドを必要な引数とともに呼び出します。

このコマンドには次の引数があります。

引数 説明
-normal パスワードが正しくないことを指定します。
-changed パスワードの有効期限が切れていることを指定します。
-showuser ユーザー名フィールドを表示することを指定します。
-showpasswd パスワードが正しくないことを指定します。
-title 認証ダイアログに使用されるタイトルを指定します。
-message 認証ダイアログに表示されるメッセージを指定します。
-customuserlabel ユーザー名フィールドにカスタマイズされたラベルを使用するかどうかを指定します。
-userlabel ユーザー名フィールドに使用するカスタマイズされたラベルを指定します。
-custompasswdlabel パスワードフィールドにカスタマイズされたラベルを使用するかどうかを指定します。
-passwdlabel パスワードフィールドに使用するカスタマイズされたラベルを指定します。
-showpasscache 「このパスワードを保存する」チェックボックスを表示するかどうかを指定します。
-showsmartcard スマートカードオプションを表示するかどうかを指定します。
-isuserdialog 0|1|2 カスタマイズされた認証ダイアログを使用するかどうかを指定します。

次のいずれかを指定します。

  • 0 - ユーザー名が変更されたかどうかを確認しません
  • 1 - ユーザー名が変更されたかどうかを確認し、必要に応じてアプリケーションサーバーに再接続します
  • 2 - ユーザー名が変更された場合に SGD のデフォルトの動作を使用します

次の例では、パスワードが正しくないことを示すダイアログボックスを表示します。

過去のコマンド構文またはプログラムコードのスキップauthrequest -normal

authenticate

ユーザー名とパスワードに関する問題点を示すダイアログボックスを表示します。

これは、次のオプションを使用して authrequest コマンドを呼び出すための Tcl プロシージャーです。

過去のコマンド構文またはプログラムコードのスキップauthenticate [ -normal | -changed ]

authenticate2

ユーザー名とパスワードに関する問題点を示すダイアログボックスを表示します。ダイアログにユーザー独自のタイトルを使用したり、ユーザー独自のメッセージを表示したりできます。また、ユーザー名およびパスワードフィールドを表示するかどうかを制御することもできます。

これは、次の引数を使用して authrequest コマンドを呼び出すための Tcl プロシージャーです。

過去のコマンド構文またはプログラムコードのスキップauthenticate2 
  [ -normal | -changed ] 
  -showuser 0|1 
  -showpasswd 0|1 
  -title title 
  -message message

customauthenticate

ユーザー名とパスワードに関する問題点を示すダイアログボックスを表示します。認証ダイアログを完全にカスタマイズできます。

このプロシージャーでは、ExecPE はユーザーがユーザー名フィールドに入力したテキストを確認しません。アプリケーションの接続方法として SSH が使用されており、ユーザーがユーザー名を変更した場合、ExecPE は接続を中断しないで、新しいユーザー名として再接続します。これにより、アプリケーションの起動が失敗する場合があります。SSH を使用しており、ユーザーがユーザー名を変更できるようにする場合は、代わりに userauthenticate プロシージャーを使用してください。

これは、次の引数を使用して authrequest コマンドを呼び出すための Tcl プロシージャーです。

過去のコマンド構文またはプログラムコードのスキップcustomauthenticate 
  [ -normal | -changed ] 
  -showuser 0|1 
  -title title 
  -message message
  -customuserlabel 0|1
  -userlabel label
  -custompasswdlabel 0|1
  -passwdlabel label
  -showpasscache 0|1
  -showsmartcard 0|1

userauthenticate

ユーザー名とパスワードに関する問題点を示すダイアログボックスを表示します。このプロシージャーを使用すると、認証ダイアログを完全にカスタマイズできます。

このプロシージャーは、ユーザーによってユーザー名が変更されたかどうかを確認する点を除き、customauthenticate と同じです。ユーザー名が変更されている場合、ExecPE はアプリケーションサーバーへの接続を中断し、変更されたユーザーとして再接続します。

これは、次の引数を使用して authrequest コマンドを呼び出すための Tcl プロシージャーです。

過去のコマンド構文またはプログラムコードのスキップuserauthenticate 
  [ -normal | -changed ] 
  -showuser 0|1 
  -showpasswd 0|1
  -title title 
  -message message
  -customuserlabel 0|1
  -userlabel label
  -custompasswdlabel 0|1
  -passwdlabel label
  -showpasscache 0|1
  -showsmartcard 0|1

loaderror

過去のコマンド構文またはプログラムコードのスキップloaderror error

ログインスクリプトから返されたエラーメッセージを上書きできます。この関数を使用すると、たとえば、ログインスクリプトの標準のエラーメッセージをユーザー独自のメッセージに置き換えることができます。アプリケーションの起動に失敗した場合、エラーは進行状況ダイアログとログファイルに表示されます。

clienttimer

過去のコマンド構文またはプログラムコードのスキップclienttimer [ time ] [ message ] [ timers ]

指定された time の間、message を、進行状況ダイアログボックスに表示します。進行状況バーには、合計 timers 個のセクションがあります。例を次に示します。

過去のコマンド構文またはプログラムコードのスキップclienttimer 10 "Launching the application" 4

canceltimer

過去のコマンド構文またはプログラムコードのスキップcanceltimer

clienttimer コマンドをキャンセルします。このコマンドには引数がありません。

progress

過去のコマンド構文またはプログラムコードのスキップprogress [ message ]

message を進行状況ダイアログボックスに表示します。例を次に示します。

過去のコマンド構文またはプログラムコードのスキップprogress "Initializing..."

setbuffer

過去のコマンド構文またはプログラムコードのスキップsetbuffer [ -buffer num ] [ -output 0|1 ]

アプリケーションサーバーから読み込むバイト数を定義します。

引数 説明
-buffer num バイト数を指定します。デフォルト値は 1 です。
-output 0|1 出力をオン (1) またはオフ (0) にします。デフォルト値は 1 です。

例を次に示します。

過去のコマンド構文またはプログラムコードのスキップsetbuffer -buffer 1000

locallaunch

過去のコマンド構文またはプログラムコードのスキップlocallaunch [ -start ] [ -abort ] [ -user launchspec -root launchspec ]

アプリケーションサーバーが SGD サーバーも兼ねている場合、起動を最適化します。

引数 説明
-start 最適化起動で起動します。
-abort 最適化起動を中断し、標準の接続方法に戻ります。
-user launchspec ユーザーが UNIX または Linux の root ユーザーでない場合に、SGD サーバー上でアプリケーションを起動するのに使う接続方法を定義します。起動がデタッチされているアプリケーション (バックグラウンドアプリケーション) と起動がデタッチされていないアプリケーション (フォアグラウンドアプリケーション) に、別の動作を指定できます。

launchspec には、次のいずれかを指定できます。

  • 0 - すべてのアプリケーションを、アプリケーションオブジェクトに定義されている接続方法を使って起動します。
  • 1 - バックグラウンドアプリケーションは /bin/su を使用します。フォアグラウンドアプリケーションは、アプリケーションオブジェクトの接続方法を使用します。
  • 2 - バックグラウンドアプリケーションは、アプリケーションオブジェクトの接続方法を使用します。フォアグラウンドアプリケーションは /bin/su を使用します。
  • 3 - すべてのアプリケーションを /bin/su を使って起動します。

デフォルト値は 1 です。

-root launchspec ユーザーが UNIX または Linux の root ユーザーである場合に、SGD サーバー上でアプリケーションを起動するのに使う接続方法を定義します。起動がデタッチされているアプリケーション (バックグラウンドアプリケーション) と起動がデタッチされていないアプリケーション (フォアグラウンドアプリケーション) に、別の動作を指定できます。

launchspec には、次のいずれかを指定できます。

  • 0 - すべてのアプリケーションを、アプリケーションオブジェクトに定義されている接続方法を使って起動します。
  • 1 - バックグラウンドアプリケーションは /bin/su を使用します。フォアグラウンドアプリケーションは、アプリケーションオブジェクトの接続方法を使用します。
  • 2 - バックグラウンドアプリケーションは、アプリケーションオブジェクトの接続方法を使用します。フォアグラウンドアプリケーションは /bin/su を使用します。
  • 3 - すべてのアプリケーションを /bin/su を使って起動します。
  • 4 - すべてのアプリケーションを、アプリケーションオブジェクトに定義されている接続方法を使って起動します。

デフォルト値は 3 です。

例を次に示します。

過去のコマンド構文またはプログラムコードのスキップlocallaunch -abort

tarantella

過去のコマンド構文またはプログラムコードのスキップtarantella
 [ -nosocket ] 
 [ -portnumber num ] 
 [ -thirdtiershell shell ]  

このコマンドは、アプリケーションへの接続を設定するために使用されます。sgdconnect コマンドを使用する前に、接続を設定する必要があります。

引数 説明
-nosocket アプリケーションの起動に他の方法を使用することを指定します。起動方法の実装は、スクリプト作成者が行う必要があります。たとえば、Expect の spawn コマンドを使用します。これを行なえるのは、X アプリケーションなど、永続的な接続を必要としないアプリケーションの場合だけです。このコマンドが役立つのは、特殊なアプリケーションサーバーを扱う場合や、既存の起動メカニズムと統合化する必要がある場合です。
-portnumber num アプリケーションサーバーへの接続に使用されるポートを上書きします。このオプションを使用する場合は、sgdconnect コマンドの前に tarantella コマンドを実行する必要があります。そうしないと、ポート番号が無視されます。
-thirdtiershell shell アプリケーションサーバーで使用するシェルを指定します (たとえば、/bin/sh)。

次の例は、TCP ポート 5999 上でアプリケーションサーバーに接続します。

過去のコマンド構文またはプログラムコードのスキップtarantella -portnumber 5999

sgdconnect

過去のコマンド構文またはプログラムコードのスキップsgdconnect

実行プロトコルエンジン (ExecPE) に、アプリケーションサーバーに接続するよう指示します。このコマンドには引数がありません。

ほとんどの SGD ログインスクリプトは、sgdconnect を使用して接続を確立します。アプリケーションサーバーへの接続を自分で処理する場合は、スクリプトでこのコマンドが使用されないようにする必要があります。

wcpwts.exp 標準ログインスクリプトは、アプリケーションサーバーへの接続にこのコマンドを使用しないログインスクリプトの例です。

関連トピック