[z/OS]

SAF 지시문

이들 구성 매개변수는 IBM® HTTP Server에 대한 SAF(System Authorization Facility) 기능을 제어합니다. IBM HTTP Server에 사용자 인증을 제공하려면 SAF 지시문을 사용하십시오.

AuthSAFAuthoritative 지시문

AuthSAFAuthoritative 지시문은 권한이 하위 레벨 모듈로 전달되는지 여부를 설정합니다.

지시문 설명
구문 AuthSAFAuthoritative on | off
기본값 on
컨텍스트 디렉토리, .htaccess
모듈 mod_authnz_saf
on 또는 off

AuthSAFAuthoritative 지시문을 off로 설정하면 제공되는 사용자 ID와 일치하는 사용자 ID 또는 규칙이 없는 경우 권한이 하위 레벨 모듈(modules.c 파일에 설정되는)로 전달될 수 있습니다. 사용자 ID 또는 규칙이 지정된 경우, 일반 비밀번호 및 액세스 검사가 적용되며 Authentication Required 응답에서 실패가 발생합니다.

사용자 ID가 여러 모듈의 데이터베이스에 표시되거나 유효한 Require 지시문이 여러 모듈에 적용될 경우, 첫 번째 모듈에서 신임 정보를 확인하며 AuthSAFAuthoritative 설정에 관계없이 액세스 권한이 전달되지 않습니다.

기본적으로 제어는 전달되지 않으며 알 수 없는 ID 또는 규칙은 Authentication Required 응답을 발생시킵니다. 따라서 설정하지 않는 것이 시스템을 안전하게 유지하며 NCSA 준수 동작을 강제 실행합니다.

AuthSAFExpiration 지시문

AuthSAFExpiration 지시문은 브라우저 프롬프트에 표시되는 값을 설정합니다. 서버는 HTTP 응답 헤더에서 AuthName 지시문에 대해 지정되는 값과 이 짧은 구문을 전송한 후, 브라우저가 비밀번호 프롬프트 창에서 사용자에게 해당 정보를 표시합니다. 짧은 구문은 AuthName 지시문에 대해 지정된 값과 동일한 문자 제한사항이 적용됩니다. 그러므로 비밀번호 프롬프트 창에서 특수 문자를 표시하려면 서버가 특수 문자를 EBCDIC CharsetSourceEnc 코드 페이지에서 ASCII CharsetDefault 코드 페이지로 변환해야 합니다. 예를 들어 움라우트를 갖는 소문자 'a'를 표시하기 원하고 httpd.conf 파일에 독일어 EBCDIC 코드 페이지 "CharsetSourceEnc IBM-1141" 및 ASCII 코드 페이지 "CharsetDefault ISO08859-1"이 들어있는 경우, 올바른 ASCII 문자로 변환하는 16진 값 '43'을 사용하여 구문을 코드화해야 합니다.

지시문 설명
구문 AuthSAFExpiration short_phrase
기본값 off
컨텍스트 디렉토리, .htaccess
모듈 mod_authnz_saf
off 또는 short_phrase

AuthSAFExpiration 지시문을 구문으로 설정하면 IBM HTTP Server가 사용자에게 SAF 비밀번호가 만기할 때 해당 비밀번호를 업데이트하도록 프롬프트할 수 있습니다. 사용자가 유효한 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
컨텍스트 디렉토리, .htaccess
모듈 mod_authnz_saf
off 또는 url

AuthSAFReEnter 지시문

AuthSAFReEnter 지시문은 비밀번호 변경이 성공한 후 영역 뒤에 추가되는 값을 설정합니다. 특수 문자 코딩에 대한 정보는 BAuthSAFExpiration 지시문을 참조하십시오.

지시문 설명
구문 AuthSAFReEnter short_phrase
기본값 Re-enter new password
컨텍스트 디렉토리, .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
컨텍스트 디렉토리, .htaccess
모듈 mod_authnz_saf
off | %%CLIENT%% | %%CERTIF%% | %%CERTIF_REQ%% | %%CERTIF%% /prefix | %%CERTIF%% / ? ? | surrogate-username /prefix | <surrogate ID>

Off: 서버는 웹 서버 사용자 ID로 요청을 실행합니다.

%%CLIENT%%: 서버가 Authorization 요청 헤더에 제공된 ID로 요청을 실행합니다. 일반적으로 사용자가 브라우저의 팝업 창에 사용자 ID와 비밀번호를 제공하면, 브라우저에서 헤더를 작성합니다. SAF가 URL을 인증하도록 구성되어야 합니다.

%%CERTIF%%: 서버가 SAF의 SSL 클라이언트 인증과 연관된 ID로 요청을 실행합니다. SSL 인증이 없거나 SSL 인증이 SAF의 ID와 연관되지 않은 경우, %%CLIENT%%가 코딩된 것처럼 처리가 계속됩니다. SAF authn 또는 authz가 구성될 필요는 없습니다.

%%CERTIF_REQ%%: 서버가 SAF의 SSL 클라이언트 인증과 연관된 ID로 요청을 실행합니다. SSL 인증이 없거나 SSL 인증이 SAF의 ID와 연관되지 않은 경우 서버가 액세스를 허용하지 않습니다. SAF authn 또는 authz가 구성될 필요는 없습니다.

<surrogate ID>: 서버는 지정된 SAF 대리 ID외 연관된 ID로 요청을 실행합니다.

IBM HTTP Server는 TCP 소켓 또는 UNIX 소켓을 사용하여 FastCGI 애플리케이션과 통신할 수 있습니다. 그러나 FastCGI 요청에 대해 SAFRunAs를 사용할 때는 애플리케이션과의 통신을 위해 TCP 소켓을 사용해야 합니다. FastCGI 애플리케이션을 위해 작성되는 UNIX 소켓은 웹 서버 사용자 ID만 액세스할 수 있습니다. SAFRunAs 지시문으로 제어되는 대체 사용자 ID는 UNIX 소켓에 액세스할 권한이 없으므로 요청은 실패합니다.

TCP 소켓을 사용하도록 FastCGI를 구성하려면 FastCGIServer 지시문에 -port 옵션을 사용하거나 FastCGIExternalServer 지시문을 사용하여 mod_fastcgi 모듈에 대한 FastCGI 애플리케이션을 정의하십시오. FastCGIServer 또는 FastCGIExternalServer를 사용하여 구성하지 않은 동적 FastCGI 서버는 SAFRunAS로 사용할 수 없습니다.

FastCGI 요청에 대해 SAFRunAs를 사용 가능으로 설정하지 않은 경우, TCP 소켓은 필요하지 않습니다.

인증 및 권한 부여를 위해 SAF를 사용하려는 경우 다음 예를 고려하십시오. 이것은 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 /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>
참조 주제    

Information Center에 대한 이용 약관 | 피드백

마지막 업데이트 날짜: October 20, 2014 04:25 PM EDT
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=ihs-dist&topic=rihs_safdirs
파일 이름: rihs_safdirs.html