[z/OS]

SAF ディレクティブ

これらの構成パラメーターは、IBM® HTTP Server の System Authorization Facility (SAF) 機能を制御します。SAF ディレクティブを使用して、 IBM HTTP Server にユーザー認証を提供します。

AuthSAFAuthoritative ディレクティブ

AuthSAFAuthoritative ディレクティブは、許可が下位レベルのモジュールに受け渡されるかどうかを設定します。

ディレクティブ 説明
構文 AuthSAFAuthoritative on | off
デフォルト on
Context ディレクトリー、.htaccess
モジュール mod_authnz_saf
on または off

AuthSAFAuthoritative ディレクティブを off に設定すると、 提供されたユーザー ID と一致するユーザー ID またはルールがない場合、(modules.c ファイルで定義されたとおりに) 下位レベルのモジュールに許可が受け渡されます。指定されたユーザー ID またはルールがある場合、 通常のパスワードおよびアクセス確認が適用され、失敗すると Authentication Required 応答が返されます。

ユーザー ID が複数のモジュールのデータベースで表示される場合、 または有効な Require ディレクティブが複数のモジュールに適用される場合、 最初のモジュールがクレデンシャルを検査し、AuthSAFAuthoritative 設定に関係なく、 アクセスは渡されません。

デフォルトでは、制御は渡されず、不明なユーザー ID またはルールが不明な場合には、 Authentication Required 応答が返されます。そのため、これを設定しないでおくと、 システム保護が保たれ、NCSA に準拠した振る舞いが強制されます。

AuthSAFExpiration ディレクティブ

AuthSAFExpiration ディレクティブは、ブラウザーのプロンプトに表示される 値を設定します。サーバーは、AuthName ディレクティブに指定された値とこの短い句を HTTP 応答ヘッダーで送信します。するとブラウザーはそれらをパスワード・プロンプト・ウィンドウでユーザーに表示します。 短い句には、AuthName ディレクティブで指定された値と同じ文字制約があります。したがって、パスワード・プロンプト・ウィンドウに特殊文字を表示するためには、サーバーは特殊文字を EBCDIC の CharsetSourceEnc コード・ページから ASCII の CharsetDefault コード・ページに変換する必要があります。例えば、小文字の「a」をウムラウト符号付きで表示する必要があり、httpd.conf ファイルにドイツ語の EBCDIC コード・ページ「CharsetSourceEnc IBM-1141」と ASCII コード・ページ「CharsetDefault ISO08859-1」が含まれる場合、16 進数値の「43」を使用してその句をコード化する必要がありますが、これは適切な ASCII 文字に変換されます。

ディレクティブ 説明
構文 AuthSAFExpiration short_phrase
デフォルト off
Context ディレクトリー、.htaccess
モジュール mod_authnz_saf
off または short_phrase

AuthSAFExpiration ディレクティブを句に設定すると、SAF パスワードの有効期限が切れている場合に、 IBM HTTP Server はパスワードを更新するようにユーザーにプロンプトを出すことができます。ユーザーが 有効な ID および SAF パスワードを入力しても、そのパスワードの有効期限が切れている場合、 サーバーは Authentication Required 応答を戻し、 ユーザーが有効期限の切れたパスワードを更新できるように、特別なプロンプトが出されます。このプロンプトは、 レルム (AuthName ディレクティブからの値) と、その後に続く AuthSAFExpiration ディレクティブからの short_phrase 値で構成されています。

例えば、以下の構成について考えてみます。
<Location /js>
AuthType basic
AuthName "zwasa051_SAF"
AuthBasicProvider saf
Require valid-user
Require saf-group SYS1 WASUSER
AuthSAFExpiration "EXPIRED! oldpw/newpw/newpw"
</Location>

ユーザーが、URL の先頭が /js であるファイルにアクセスしようとする場合、 サーバーは SAF ID およびパスワードに関してプロンプトを出します。ブラウザーには、 レルムが含まれるプロンプトが表示されます。レルムは、AuthName ディレクティブからの値 (この例では zwasa051_SAF) です。

ユーザーが有効な ID およびパスワードを入力する場合、パスワードの有効期限が切れていれば、 サーバーはこのプロンプトを繰り返しますが、ここでは値 zwasa051_SAF EXPIRED! oldpw/newpw/newpw が示されます。プロンプトにかかわらず、ユーザーは、 有効期限が切れたパスワードを入力し、その後にスラッシュ、新規パスワード、スラッシュ、 新規パスワードと再入力する必要があります。

パスワード更新が正常に行われると、サーバーは別の Authentication Required 応答、および異なる特別なプロンプトを送信します。この最後の対話は、キャッシュする必要があるパスワードをブラウザーに 認識させるために必要です。 ここでは、プロンプトはレルムおよびその後に続く プロンプト Re-enter new password で構成されています。この例では、zwasa051_SAF Re-enter new password となります。

AuthSAFExpiredRedirect ディレクティブ

AuthSAFExpiredRedirect ディレクティブは、z/OS® 上での認証に mod_authnz_saf を使用しているとき、パスワードの有効期限が切れた場合に要求がリダイレクトされる先の URL を指定します。

これは、AuthSAFExpiration の使用に代わる代替手段です。

ディレクティブ 説明
構文 AuthSAFExpiredRedirect url
デフォルト off
Context ディレクトリー、.htaccess
モジュール mod_authnz_saf
off または url

AuthSAFReEnter ディレクティブ

AuthSAFReEnter ディレクティブは、正常なパスワード変更の後、 レルムに追加される値を設定します。特殊文字のコード化については、AuthSAFExpiration ディレクティブを参照してください。

ディレクティブ 説明
構文 AuthSAFReEnter short_phrase
デフォルト Re-enter new password
Context ディレクトリー、.htaccess
モジュール mod_authnz_saf
off または short_phrase

AuthSAFReEnter ディレクティブを「Re-enter new password」 以外の句に明示的に設定すると、有効期限が切れたパスワードが正常に更新された後、 管理者は代わりのメッセージを表示することができます。AuthSAFExpiration が off に設定されている場合、このディレクティブは影響を及ぼしません。

例えば、以下の構成について考えてみます。
<Location /js>
AuthType basic
AuthName "zwasa051_SAF"
AuthBasicProvider saf
Require saf-user SYSADM USER152 BABAR
AuthSAFExpiration "EXPIRED! oldpw/newpw/newpw"
AuthSAFReEnter "Enter new password one more time"
</Location>

この例では、有効期限が切れたパスワードが正常に更新された後、 サーバーは AuthSAFReEnter ディレクティブからの値とともに、別の Authentication Required 応答を 送信します。この最後の対話は、キャッシュする必要があるパスワードをブラウザーに 認識させるために必要です。 ここでは、プロンプトはレルムおよびその後に続く 特別な句で構成されています。この例では、 zwasa051_SAF Enter new password one more time となります。

SAFRunAs ディレクティブ

SAFRunAs ディレクティブは、要求が処理される SAF ユーザー ID を設定します。

ディレクティブ 説明
構文 SAFRunAs value
デフォルト off
Context ディレクトリー、.htaccess
モジュール mod_authnz_saf
off | %%CLIENT%% | %%CERTIF%% | %%CERTIF_REQ%% | %%CERTIF%% /prefix | %%CERTIF%% / ? ? | surrogate-username /prefix | <surrogate ID>

Off: サーバーは、Web サーバー・ユーザー ID で要求を 実行します。

%%CLIENT%%: サーバーは、 許可要求ヘッダーで提供される ID で要求を実行します。通常、 ユーザーはブラウザー上のポップアップ・ウィンドウで ID およびパスワードを入力し、 ブラウザーがヘッダーを作成します。URL の認証には SAF を構成する必要があります。

%%CERTIF%%: サーバーは、 SAF で SSL クライアント証明書と関連付けられた ID で要求を実行します。 SSL 証明書がない場合、または SSL 証明書が SAF で ID に関連付けられていない場合、 %%CLIENT%% がコード化されているかのように、処理が続行します。 SAF authn および authz を構成する必要はありません。

%%CERTIF_REQ%%: サーバーは、SAF で SSL クライアント証明書に 関連付けられた ID で要求を実行します。SSL 証明書がない場合、 または SSL 証明書が SAF で ID に関連付けられていない場合、 サーバーはアクセスを許可しません。SAF authn および authz を構成する必要はありません。

[8.5.5.2 or later] %%CERTIF%% /prefix: サーバーは、 /prefix の下の URL の ID を提供された SSL クライアント認証にスレッド ID を変更します。
トラブルの回避 トラブルの回避:
  • この構文は、グローバルな <virtualHost> コンテキストでのみ有効です。
  • 第 2 引数として他の値は許容されません。
  • SAFRunAS も <Location> または <Directory> コンテキストの内部で 1 引数バージョンを使用して構成されている場合、サーバーは、要求中に ID を 2 回切り替えません。
  • このフィーチャーは、「AuthBasicProvider saf」と組み合わせて使用できます。
gotcha
[8.5.5.2 or later] %%CERTIF%% / ? ?: サーバーは、早い段階でユーザーのホーム・ディレクトリーに変更します (mod_userdir が構成されていると想定)。
トラブルの回避 トラブルの回避:
  • この構文は、グローバルな <virtualHost> コンテキストでのみ有効です。
  • 第 2 引数として他の値は許容されません。
  • SAFRunAS も <Location> または <Directory> コンテキストの内部で 1 引数バージョンを使用して構成されている場合、サーバーは、要求中に ID を 2 回切り替えません。
  • このフィーチャーは、「AuthBasicProvider saf」と組み合わせて使用できます。
gotcha
[8.5.5.2 or later] surrogate-username /prefix: サーバーは、/prefix の下の URL の特定の代理ユーザー ID にスレッド ID を変更します。
トラブルの回避 トラブルの回避:
  • この構文は、グローバルな <virtualHost> コンテキストでのみ有効です。
  • 第 2 引数として他の値は許容されません。
  • SAFRunAS も <Location> または <Directory> コンテキストの内部で 1 引数バージョンを使用して構成されている場合、サーバーは、要求中に ID を 2 回切り替えません。
  • このフィーチャーは、「AuthBasicProvider saf」と組み合わせて使用できます。
gotcha

<surrogate ID>: サーバーは、指定された SAF 代理 ID に関連付けられた ID で要求を実行します。

IBM HTTP Server は、TCP ソケットまたは UNIX ソケットのいずれかを使用して FastCGI アプリケーションと通信ができます。 ただし、FastCGI 要求に対して SAFRunAs を使用している場合は、アプリケーションとの通信には TCP ソケットを使用する必要があります。FastCGI アプリケーション用に作成された UNIX ソケットは、Web サーバーのユーザー ID のみでアクセスできます。SAFRunAs ディレクティブで制御された代替のユーザー ID は、UNIX ソケットにアクセスする権限がないため、要求は失敗します。

FastCGI を構成して TCP ソケットを使用するには、FastCGIServer ディレクティブを -port オプションで使用するか、または FastCGIExternalServer ディレクティブを使用することにより、FastCGI アプリケーションを mod_fastcgi モジュールに定義します。 FastCGIServer または FastCGIExternalServer で構成されていない動的 FastCGI サーバーは、SAFRunAS と一緒に使用することができません。

FastCGI 要求の SAFRunAs を使用可能にしない場合、TCP ソケットは必要ありません。

認証および許可に SAF を使用したい場合、以下の例を検討してください。これは SAF ユーザーおよびグループに関して最も一般的なシナリオであり、Web アクセスの要件を満たしています。
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authnz_saf_module modules/mod_authnz_saf.so
LoadModule authz_default_module modules/mod_authz_default.so
...
<Location /saf_protected>
AuthType basic
AuthName x1  
AuthBasicProvider saf
# Code "Require valid-user" if you want any valid
# SAF user to be able to access the resource.
Require valid-user
#
# Alternately, you can provide a list of specific SAF users
# who may access the resource.
# Require saf-user USER84 USER85
#
# Alternatively, you can provide a list of specific SAF groups
# whose members may access the resource.
# Require saf-group WASGRP1 WASGRP2
</Location>
SAF ファイルを認証に使用し、SAF 以外のグループ・ファイルを許可に使用したい場合は、以下の例を検討してください。この例では、ユーザー認証には SAF が使用されていますが、ユーザー許可には別のメカニズムが使用されています。
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authnz_saf_module modules/mod_authnz_saf.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_default_module modules/mod_authz_default.so
...
<Location /saf_password>
AuthType basic
AuthName "SAF auth with hfs groupfile"
AuthBasicProvider saf
AuthGroupFile /www/config/foo.grp
# Code "Require file-group" and a list of groups if you want
# a user in any of the groups in the specified group file to be able
# to access the resource.
# Note: Any authorization module, with its standard configuration, can be used here.
Require group admin1 admin2
</Location>
ユーザーが SAF またはグループ・ファイルで許可されている場合にアクセスを許可したい場合、以下の例を検討してください。
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authnz_saf_module modules/mod_authnz_saf.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_default_module modules/mod_authz_default.so
...
<Location /either_group>
AuthType basic
AuthName "SAF auth with SAF groups and hfs groupfile"
AuthBasicProvider saf
AuthGroupFile /www/groupfiles/foo.grp
Require saf-group WASGRP
Require saf-group ADMINS
AuthzGroupFileAuthoritative Off
AuthSAFAuthoritative Off
</Location>
認証済みユーザー名に関連付けられた SAF 特権を使用する実行要求を必要とする場合は、以下の例を検討してください。
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authnz_saf_module modules/mod_authnz_saf.so
LoadModule authz_default_module modules/mod_authz_default.so
...
<Location /runas_admin_bin>
AuthName "SAF RunAs client"
AuthType basic
Require valid-user
AuthBasicProvider saf
SAFRunAs %%CLIENT%%</Location>
有効期限が切れた SAF パスワードの変更をサポートする必要がある場合は、以下の例を検討してください。
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authnz_saf_module modules/mod_authnz_saf.so
LoadModule authz_default_module modules/mod_authz_default.so
...
<Location /custom_password_change>
AuthType basic
AuthName "Support expired PW"
Require valid-user
AuthBasicProvider saf
AuthSAFEXpiration "EXPIRED PW: oldpw/newpw/newpw"
AuthSAFReEnter "New PW again:"</Location>

ユーザーがリソースにアクセスする際にクライアント証明書を要求したい場合は、mod_ibm_ssl ディレクティブを使用します。mod_authnz_saf ディレクティブは、この構成には必要ありません。詳しくは、SSLClientAuth および SSLClientAuthRequire ディレクティブに関する資料を参照してください。

要求処理を実行するユーザーを特定するためにクライアント証明書を使用したい場合は、以下の例を検討してください。ユーザーが有効な証明書を持たない場合、アクセスは拒否されます。
LoadModule authnz_saf_module modules/mod_authnz_saf.so
LoadModule ibm_ssl_module modules/mod_ibm_ssl.so
...
<Location /certificate_required>
SAFRunAs %%CERTIF_REQ%%
</Location>
クライアント証明書に関連付けられた SAF 特権を使用する実行要求を必要とするが、クライアント証明書が SAF ユーザーにマップされていない場合はユーザー名とパスワードによる認証を要求したい場合、以下の例を検討してください。 ユーザーが、SAF によってユーザー ID にマップ可能な証明書を提供する場合、そのユーザー ID は任意の Require ディレクティブも通さなければなりません。
<Location /certificate_or_basic>
AuthName "SAF RunAs certif"
AuthType basic
Require saf-user USER84 USER103
AuthBasicProvider saf
SAFRunAs %%CERTIF%%
</Location>
代理 ID に関連付けられた SAF 特権を使用する実行要求を必要とする場合、以下の例を検討してください。
<Location /runas_public>
SAFRunAs PUBLIC
# This can be combined with SAF or non-SAF authentication/authorization
</Location>
参照トピック    

インフォメーション・センターに関するご使用条件 | フィードバック

最終更新: October 08, 2014 06:19 PM EDT
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=ihs-dist&topic=rihs_safdirs
ファイル名: rihs_safdirs.html