SSO でのインターネットパスワードの変更をキャッシュする

Web ユーザーがインターネットパスワードを変更すると、HCL Domino® HTTP サーバーは新しいインターネットパスワードをキャッシュに保存します。パスワードの変更が有効になるまでには多少の時間がかかるため、キャッシュへの保存が必要となります。これは、変更が Domino® の管理サーバーによって処理され、Domino® 環境全体に複製される必要があるためです。

ユーザーの新しいパスワードをキャッシュすることで、HTTP サーバーはすぐにユーザーのインターネットパスワードを認識できるため、パスワード変更情報の Domino® 環境全体への複製処理が終了する前であっても、ログインを許可することができます。

HTTP サーバーが SSO を有効にするよう設定されている場合、パスワード変更はキャッシュされます。つまり、パスワードの変更がシステム全体に複製されている途中であっても、ユーザーは新しいパスワードを使用して、SSO 環境へのログイン、インターネットパスワードの変更、ログアウト、再ログインができます。

キャッシュの保存場所と有効期間

キャッシュされたユーザーのインターネットパスワードは、パスワードの変更を要求された HTTP サーバー上にしか保存できません。SSO 環境の他のサーバーは、このキャッシュされた情報にアクセスできません。そのため、ユーザーはこれら他のサーバーでパスワードを入力する場合、新しいパスワードではなく、古いパスワードを入力しなければならない場合もあります。キャッシュ情報を持たないサーバー上では、ユーザーは、サーバーがアクセスできるディレクトリ内のパスワード情報と一致するパスワードを入力する必要があります。

一方で SSO ユーザーは、最初のログインにより SSO 環境全体にアクセスできます。このため、ユーザーは、新しいパスワードをキャッシュしたサーバーで常にログインを行うことで、問題を回避できます。ユーザーは、キャッシュ情報を持たないサーバーでパスワードを選んで入力する代わりに、目的のサーバーの URL にアクセスを試行し、そのサーバーからパスワードの入力を求められるようにできます。

デフォルトでは、キャッシュされた新しいインターネットパスワードは、HTTP サーバーで 48 時間利用できます。キャッシュされた情報の有効期間は、サーバーの NOTES.INI パラメータ HTTP_PWD_CHANGE_CACHE_HOURS で設定できます。キャッシュされた情報の有効期間が過ぎると、ユーザーは、Domino® ディレクトリでサーバーがアクセスできるパスワード情報と一致するパスワードを使用しなければ、ログインできません。

注: HTTP サーバーが再起動した場合、キャッシュされたパスワード情報は破棄されます。この場合も、ユーザーは、Domino® ディレクトリでサーバーがアクセスできるパスワード情報と一致するパスワードを使用しなければなりません。

パスワードのキャッシュと SSO のログイン名

新しいパスワードを使用できるかどうかは、HTTP サーバーがそのキャッシュにアクセスできるかどうかに依存しています。キャッシュされた新しいインターネットパスワードを使用するためには、ユーザーはそれまでにログインで使用していたユーザー名と同じユーザー名を使用する必要があります。例えば、ユーザーが新しいパスワードに変更するときに「John Doe」のユーザー名でログインしていた場合、そのユーザーは新しいパスワードと「jdoe」などの有効な別のユーザー名を使用してログインすることはできません。ユーザーは以前のように、ユーザー名「John Doe」を使用して新しいパスワードでログインする必要があります。

SSO パスワードをキャッシュする最良の方法

最善の結果を得るために、次の手順をユーザーに指示します。

  1. SSO パスワードキャッシュをサポートする Domino® HTTP サーバーにログインします。
  2. サーバーで ChangePassword URL コマンドを実行し、インターネットパスワードの変更要求を送信します。例:
    http://myserver.mycompany.com/names.nsf?changepassword) 
注: HCL iNotes® ユーザーはまた、[パスワードの変更] ボタンを使用することもできます。

SSO 環境のすべてのサーバーでパスワードの変更が有効になるまでには時間がかかります。この期間中にログインするユーザーは、新しいパスワードへの変更前に使用していたログイン名を使用して、常にパスワードの変更を要求したサーバーで最初にログインする必要があります。

パスワードの変更を要求したサーバーが何らかの理由で新しいパスワードを受け付けない場合は、「John Doe/MyCompany」などの識別名形式のユーザー名と新しいパスワードで再度ログインを試します。

SSO 環境でインターネットパスワードのキャッシュを利用する場合のトラブルシューティング

SSO 環境でインターネットパスワードのキャッシュを設定、利用する場合によく発生する問題を説明します。

  • ユーザーがスペルの異なるユーザー名を入力する。ユーザーが「jdoe」でログインしようとしているとします。このユーザーは、以前にユーザー名「John Doe」でログインし、パスワードの変更もこのユーザー名で要求しました。ユーザー「jdoe」は、ディレクトリに格納されているパスワード情報と一致するパスワードを入力する必要がありますが、それはこのユーザーの古いパスワードの可能性もあります。
  • ユーザーが、最初に SSO サーバーの 1 つにログインし、その後別のサーバーでパスワードの変更を要求する。ユーザーが SSO サーバーの 1 つにログインすると、そのユーザーのブラウザは SSO トークンを受信します。これによりユーザーは再ログインすることなく、設定されている別のサーバーにアクセスできます。ユーザーが別のサーバーにアクセスしてからパスワードの変更を要求すると、この 2 番目のサーバーがユーザーの SSO トークンを受信します。このサーバーは、受信したトークンに格納されている情報だけを元に、このユーザーを識別します。そのため、2 番目のサーバーは、このユーザーがログイン時に使用したユーザー名の情報を持ちません。

    ユーザーが 2 番目のサーバーでパスワードを変更すると、このサーバーはユーザーの新しいインターネットパスワードをキャッシュします。この場合、ユーザーは別の 1 番目のサーバーでログインしているため、2 番目のサーバーはユーザーのログイン名情報を持ちません。2 番目のサーバーは新しいパスワードを保存しますが、同時に、この新しいパスワードを該当する Domino® 識別名に適用して保存します。ユーザーがログアウト後に新しいインターネットパスワードを使用してこのサーバーから直接ログインするには、「John Doe/MyCompany」などの識別名を使用する必要があります。

  • ユーザーの最初のログイン認証を DSAPI フィルタライブラリが行う。HTTP サーバーは、DSAPI フィルタライブラリを追加することで拡張できます。DSAPI フィルタライブラリは、HTTP サーバーが認証要求を DSAPI ライブラリに転送するように設定できます。DSAPI ライブラリは通常、サーバー URL のサブセットだけを制御します。ユーザーがサーバーにアクセスするために入力した URL が特定の DSAPI ライブラリに関連付けられていると、例えば「John Doe」などのユーザーのログイン名とパスワードは DSAPI ライブラリに転送され、このライブラリによってユーザーを認証するかどうかが決定される可能性があります。認証が承認されると、DSAPI ライブラリは HTTP サーバーに対し、認証したユーザー名を転送します。通常、HTTP サーバーに転送される名前は Domino® 識別名です。この名前が、HTTP サーバーが認識する名前になります。つまり、HTTP サーバーは、ユーザーを「John Doe」としては認識しないで、「John Doe/MyCompany」として認識している可能性があります。ユーザーがログイン時に DSAPI フィルタライブラリによって認証された後で、パスワード変更を要求する場合があります。
    注: 要求された新規パスワードに関するパスワード変更情報は、DSAPI ライブラリには転送されません。つまり、パスワードの変更は、このユーザーに関する Domino® ディレクトリ情報には影響しますが、ユーザーのパスワードに関する DSAPI ライブラリの概念には影響しません。

    ユーザーがパスワードの変更を要求すると、HTTP サーバーはこのユーザーに関して持っている名前の情報を使用して新しいインターネットパスワードをキャッシュします。ユーザーがログアウト後に新しいパスワードを使用して DSAPI ライブラリに関連付けられていないサーバーにログインする場合、HTTP サーバーがユーザー名とパスワードの検証を試みます。ディレクトリへのパスワードの変更がまだ保留されている間は、HTTP サーバーはキャッシュで検索できる新しいパスワードだけを検証できます。キャッシュされているユーザーを検索できるようにするために、ユーザーはキャッシュされた名前と一致する名前を入力する必要があります。例: "CN=John Doe/O=MyCompany"