4D v16Windowsでのシングルサインオン(SSO) |
||||||||||||||||||||
|
4D v16
Windowsでのシングルサインオン(SSO)
Windowsでのシングルサインオン(SSO)
4D Serverでは、Windows上のクライアント/サーバーソリューションにSSO(Single Sign On)機能を実装することができます。 SSOを4Dソリューションに実装することにより、ユーザーはカンパニーのWindowsドメインにログインしていた場合に、パスワードを再入力する事なくWindows上の4Dアプリケーションにアクセスできるようになります(Active Directoryを使用)。仕組みとしては、4D ServerアプリケーションはActive Directoryに認証を委任し、標準のメソッドを使用して4Dユーザーをデータベースにログインさせるための、Windowsのセッションログインを取得します。 注: より一般的な4Dのセキュリティ機能については、4D Security guide をご覧ください。 SSO機能を使用するためには以下の条件が必須となります:
デフォルトでは、SSO機能は4D Serverでは有効化されていません。この機能を利用するためには、4D Serverのデータベース設定ダイアログボックスのCS/公開オプションページにあるドメインサーバーによるユーザー認証オプションをチェックする必要があります: このオプションをチェックした場合、4Dは透過的にWindowsドメインサーバーのActive Directoryに接続し、利用可能な認証トークンを取得します。 こ のオプションはNTLMプロトコル経由の標準の認証を提供します。4DはNTLMとケルベロスプロトコルをサポートしています。使用されるプロトコルはカ レントの設定に応じて4Dによって自動的に選択されます([#title id="8582" anchor="2949178"/]を参照して下さい)。ケルベロスプロトコルを使用したい場合、追加のSPNフィールドに入力する必要があります(後述参照)。 ケルベロスを認証プロトコルとして使用したい場合、データベース設定ダイアログボックスのC/Sの公開オプションページ内のサービスプリンシパル名(SPN)オプションに入力をする必要があります: このオプションはSPNをActive Directory設定内で設定されているものと同じに宣言します。サービスプリンシパル名とはサービスインスタンスの固有の識別子です。SPNは、ケルベロス認証によってサービスインスタンスとサービスログインアカウントを関連づけるのに使用されます。これによりクライアントがアカウント名を持っていなくても、サービスがアカウントを認証する事をリクエストできるようになります。詳細な情報については、MSDNウェブサイトのSPNのページを参照して下さい。 SPN識別子は以下のパターンに従う必要があります:
このとき上記の略称の意味は以下の通りです:
4Dデータベースは、SPNは以下のようにして設定することができます:
SSO機能が有効化されていると(上記参照)、4D Serverでのユーザーセッションを開くのにWindowsセッション証明書に基づいたユーザー認証を利用できるようになります。 SSO機能はあくまで認証されたログインのみを提供し、そのログインは自力で4Dの標準ログインメソッドに渡す必要があるという点に注意して下さい。4Dリモートアプリケーションがサーバーに接続しようとするとき、Active Directoryで定義されたユーザーログインを返すCurrent client authentication4Dコマンドを使用する必要があります。それからこのログインを(ビルトインのユーザーとグループ、LDAPコマンド、あるいは他のカスタムの機構などを使用して)認証システムに渡すことで、お使いの4Dアプリケーションのリモートユーザーへの適切なセッションを開く事ができます。 この原理は以下のような図にまとめる事ができます: Current client authenticationコマンドはOn Server Open Connection Database Method内で呼び出される必要があります。これはリモートの4Dが4D Serverデータベースへの新しい接続を開くときに毎回呼び出されるものです。認証が失敗した場合、$0に非ヌル値を渡し接続を拒否する事ができます。 新しい Current client authentication コマンドを呼び出すためには、以下のシンタックスを使用して下さい: login:=Current client authentication(domain;protocol) ここでの略称の意味は以下の通りです:
このコマンドについてのより詳細な情報については、 Current client authentication コマンドの詳細を参照して下さい 4D Serverはカレントのアーキテクチャーや設定によって、様々なSSO設定を管理します。認証に使用するプロトコル(NTLM または Kerberos)に加えてCommonCommentコマンドによって返される情報は、要件(以下参照)が満たされていた場合には、実際の設定によって変化します。認証に実際に使用されるプロトコルはCommonCommentコマンドのprotocol引数に返されます。 以下のテーブルはNTLM あるいはケルベロス認証を使用する際の必須要件をまとめたものです:
(*) 次の特定の設定のみサポートされます: 4Dリモートユーザーが4D Serverと同じADに属するマシン上のローカルアカウントであること。この場合、domain引数には4D Serverのマシン名が入力されます。サポートの可否は実際のユーザー設定に依存し、サポートされない場合は空文字列が返されます。 (**) ケルベロスの必須要件が全て満たされているのにCommonCommentコマンドがprotocol引数に"NTLM"を返す場合、以下の状況のどちらかである事を意味します:
注: シンタックスが有効であっても、SPN宣言自身が正しいことを意味する訳ではありません。具体的には、AD内にSPNが存在しない場合、CommonCommentコマンドは空の文字列を返します。
参照
|
プロパティ
プロダクト: 4D
履歴
初出: 4D v15 R5 ARTICLE USAGE
4D Server ( 4D v16) |
||||||||||||||||||