外部 Web サービス認証タイプを使用する場合、GAM で 2 つのバージョンの Web サービスがサポートされています。サポートされる Web サービスのバージョンは 1.0 と 2.0 です。バージョンは、Web サービスの署名 (つまり、Web サービスが送受信する "in" および "out" パラメーターのデータタイプ) に依存します。Web サービスは任意のツールで生成できますが、SOAP メッセージ形式に関して、いくつかの要件を満たす必要があります。
このドキュメントでは、GeneXus Access Manager の外部 Web サービス認証を使用して認証を行えるようにする方法を説明します。
"外部 Web サービス認証" タイプである必要があります。
図 1 および図 2 にあるように、Web サービスの位置、プロトコル、および Web サービスに接続するために必要なすべての情報を指定します。
Web サービスのバージョン (1.0 または 2.0) を指定する必要があります。
GeneXus Web サービスの場合、Web サービスへの送信時のユーザー名とパスワードの暗号化に Encrypt64 関数が使用されるので、"暗号化キー" が便利です。受信したユーザーとパスワードを復号化するために Web サービスで使用する暗号化キーを設定します。
データを保護する最良の方法は、HTTPS を使用することです。
SDActions 外部オブジェクト (X Evolution 3) の Login 外部メソッドを使用します。メソッドに送信する最初のパラメーターは "ExternalWebService" です。
Event 'ExternalLogin'
SDActions.LoginExternal(!"ExternalWebService",&User,&Password)
EndEvent
GeneXus 15 以降の場合、構文は次のようになります:
Event 'ExternalLogin'
GeneXus.SD.Actions.LoginExternal(GAMAuthenticationTypes.ExternalWebService,&User,&Password,&AdditionalParameters)
EndEvent
次のコードは、Web アプリケーションにおける外部ログインの実行例を示しています。Web パネルの場合、GAMRepository オブジェクトの Login メソッドを使用します。使用する AuthenticationType を指定するには、GAMLoginAdditionalParameters の変数を定義する必要があります。
GAMExampleLogin Web パネル (GAM Examples にあります) で、このコードを使用しています:
&AdditionalParameter.AuthenticationTypeName = &LogOnTo //&LogOnTo は、使用したい認証タイプをユーザーが選択するコンボボックスです。
//これは認証タイプの名前です。図 1 の例を使用した場合、"Testws2.0" になります。
&LoginOK = GAMRepository.Login(&UserName, &UserPassword, &AdditionalParameter, &Errors )//&Errors は GAMError のコレクション
"External Web Service" 認証タイプは、各 GAM リポジトリに対して 1 つだけ定義できます。
GeneXus 15 以降、SD アプリケーションの Actions 外部オブジェクトに LoginExternal メソッドが追加されました。このメソッドは、&AdditionalParameters パラメーターをサポートします。
以前のバージョンの場合は、SDActions オブジェクトの LoginExternal メソッドがこのパラメーターを許可していないため、Web サービスに追加パラメーターを渡すことはできません。
GAM の認証タイプ: カスタム
外部認証プログラムによるロールの管理
GAM を使用して追加パラメーターを外部認証プログラムに渡す方法
GAM Troubleshooting
|