Sun Java System Messaging Server 6 2005Q4 관리 설명서

로컬 주소의 별칭 확장

주소가 로컬 채널과 연관된 것으로 확인되고 나면 해당 주소에 자동으로 별칭 확장이 적용됩니다. 별칭 확장 프로세스는 다음을 비롯하여 여러 정보 소스를 검사합니다.

  1. 별칭 파일(컴파일된 구성의 일부)

  2. 별칭 데이터베이스

  3. 별칭 URL

검사되는 정확한 별칭 소스와 별칭 소스가 검사되는 순서는 option.dat 파일의 ALIAS_MAGIC MTA 옵션 설정에 따라 달라집니다. Direct LDAP의 경우 이 옵션을 8764로 설정합니다. 이것은 ALIAS_URL0 MTA 옵션에 지정된 URL이 우선적으로 검사되고 ALIAS_URL1 MTA 옵션에 지정된 URL이 검사된 다음 ALIAS_URL2 MTA 옵션에 지정된 URL이 검사되고 마지막으로 별칭 파일이 검사된다는 것을 의미합니다. 이 설정이 활성화되면 별칭 데이터베이스는 검사되지 않습니다.

LDAP URL을 사용한 별칭 검사

LDAP에서 별칭을 검사하는 것은 두 개의 특수한 LDAP URL을 별칭 URL로 지정하여 구현합니다. 첫 번째 URL은 일반 사용자와 그룹을 처리하며 부속 도메인은 후속 별칭 URL에 의해 처리됩니다. 첫 번째 URL은 다음과 같이 ALIAS_URL0으로 지정됩니다.

ALIAS_URL0=ldap:///$V?*?sub?$R

$V 메타 문자

메타 문자 확장은 URL 조회 전에 발생합니다. ALIAS_URL0 값에 사용되는 두 개의 메타 문자는 $V$R입니다.

$V 메타 문자는 주소의 도메인 부분을 기본 DN으로 변환합니다. 이것은 앞의, 다시 쓰기 규칙 방법 절에서 설명한 $V 다시 쓰기 규칙 메타 문자에 의해 수행되는 초기 단계와 비슷합니다. $V 처리는 다음 단계로 구성됩니다.

  1. 현재 도메인의 사용자 항목에 대한 기본 DN을 가져옵니다.

  2. 현재 도메인과 연결된 정규 도메인을 가져옵니다. Sun LDAP Schema 1에서 정규 도메인 이름은 도메인 항목의 inetCanonicalDomainName 속성에 의해 제공됩니다(이 속성이 존재할 경우). 이 속성이 없을 경우 정규 이름은 실제 도메인 항목의 DN에서 명시적인 방식으로 생성되는 이름입니다. 현재 도메인이 별칭일 경우 이것은 현재 도메인과 다릅니다. 정규 이름을 저장하는 데 사용되는 이름 속성은 option.dat 파일의 LDAP_DOMAIN_ATTR_CANONICAL MTA 옵션으로 무시할 수 있습니다.

    Sun LDAP Schema 2에서 정규 이름은 단순히 SunPreferredDomain 속성 값입니다.

  3. 기본 DN이 존재할 경우 이를 $V 대신에 URL로 대체합니다.

  4. 이제 이 항목에 대한 적용 가능한 모든 호스트된 도메인이 확인됩니다. 이 작업은 정규 도메인(DOMAIN_UPLEVEL의 비트 2(값 = 4)가 지워진 경우) 또는 현재 도메인(DOMAIN_UPLEVEL의 비트 2(값 = 4)가 설정된 경우)과 service.defaultdomain configutil 매개 변수를 비교하는 방법으로 수행됩니다. 서로 일치하지 않을 경우 해당 항목은 호스트된 도메인의 구성원입니다. service.defaultdomain configutil 매개 변수는 option.dat 파일에서 LDAP_DEFAULT_DOMAIN MTA 옵션을 설정하여 무시할 수 있습니다.

  5. 기본 DN 확인이 실패할 경우 도메인의 왼쪽에서 구성 요소를 제거하고 단계 1로 이동합니다. 구성 요소가 남아 있지 않을 경우 대체는 실패합니다.

$V는 또한 선택 사항인 숫자 인수를 허용합니다. 1로 설정된 경우(예: $1V) 도메인 트리의 도메인 확인 실패가 무시되고 local.ugldapbasedn configutil 옵션에서 지정한 사용자 트리의 기반이 반환됩니다.

도메인의 기본 DN을 검색하려는 시도가 성공할 경우 MTA는 또한 나중에 필요한 여러 유용한 도메인 속성을 검색합니다. 검색된 속성의 이름은 option.dat 파일의 다음 MTA 옵션에 의해 설정됩니다.

URL에서 매핑 호출

간혹 도메인에서 기본 DN으로의 매핑이 다른 방식으로 수행되기도 합니다. 이러한 설정을 수용하기 위해 URL 확인 프로세스는 MAT 매핑을 호출하는 기능을 가집니다. 이 작업은 다음과 같은 일반적인 형식의 메타 문자 시퀀스를 통해 수행됩니다.

$|/mapping-name/ mapping-argument|

큰따옴표(“)는 콜아웃을 시작 및 종료합니다. $의 바로 뒤에 오는 문자는 매핑 이름과 인수의 구분자이며 이 문자는 매핑 이름이나 인수에 사용되는 예상된 문자 값과 충돌하지 않도록 선택해야 합니다.

$R 메타 문자

$R 메타 문자는 URL을 위한 적절한 필터를 제공합니다. 이 메타 문자의 목적은 특정 사용자나 그룹에 대한 전자 메일 주소를 포함할 수 있는 모든 속성을 검색하는 필터를 생성하는 것입니다. 검색할 속성 목록은 configutil 매개 변수 local.imta.mailaliases에서 제공됩니다. 이 매개 변수를 설정하지 않을 경우 local.imta.schematag configutil 매개 변수가 검사되며 다음과 같이 이 매개 변수의 값에 따라 적절한 기본 속성 집합이 선택됩니다.

sims401 mail, rfc822mailalias

nms41 mail,mailAlternateAddress

ims50 mail,mailAlternateAddress,mailEquivalentAddress

local.imta.schematag의 값은 쉼표로 구분된 목록이 될 수 있습니다. 둘 이상의 스키마가 지원될 경우 중복 항목이 제거된 결합된 속성 목록이 사용됩니다. LDAP_SCHEMATAG MTA 옵션을 사용하여 특히 MTA에 대한 local.imta.schematag의 설정을 무시할 수 있습니다.

또한 이 필터는 원래 제공되었던 주소뿐만 아니라 로컬 부분이 동일하지만 실제로 도메인 트리에서 발견된 도메인( $V 메타 문자 절의 단계 2에서 저장)을 가진 주소를 검색합니다. 도메인 트리 조회의 반복 특성은 두 개의 주소가 다를 수 있다는 것을 의미합니다. 이 추가 검사는 option.dat 파일에서 DOMAIN_UPLEVEL MTA 옵션의 비트 1(값 = 2)을 통해 제어합니다. 이 비트를 설정하면 추가 주소 검사가 활성화됩니다. DOMAIN_UPLEVEL의 기본값은 0입니다.

예를 들어, 도메인 siroe.com이 도메인 트리에 있다고 가정해 봅니다. Sun LDAP Schema, v.1을 사용 중이라고 가정하면 주소 조회는 다음과 같습니다.

u@host1.siroe.com

$R 및 ims50 schematag의 확장 결과로 얻어지는 필터는 다음과 같습니다.

(|(mail=u@siroe.com)
    (mail=u@host1.siroe.com)
    (mailAlternateAddress=u@siroe.com)
    (mailAlternateAddress=u@host1.siroe.com) 
    (mailEquivalentAddress=u@siroe.com)
    (mailEquivalentAddress=u@host1.siroe.com))

반면, DOMAIN_UPLEVEL이 3이 아니라 1로 설정된 경우 필터는 다음과 같을 것입니다.

(|(mail=u@host1.siroe.com)
       (mailAlternateAddress=u@host1.siroe.com)
       (mailEquivalentAddress=u@host1.siroe.com))

가져올 속성 결정

반환할 속성 목록에 대해 URL에서 *가 지정된 경우 이 별표는 MTA가 사용할 수 있는 속성 목록으로 대체됩니다. 이 목록은 MTA가 사용하는 옵션을 지정하는 다양한 MTA 옵션 설정으로부터 동적으로 만들어집니다.

LDAP 오류 처리

이 시점에서 결과 URL은 LDAP 검색을 수행하는 데 사용됩니다. 일정한 LDAP 오류가 발생한 경우 일시적인 오류 표시(SMTP의 4xx 오류)와 함께 처리가 종료됩니다. LDAP 작업이 성공적이지만 결과를 생성하지 못한 경우 LDAP_DOMAIN_ATTR_CATCHALL_ADDRESS MTA 옵션에서 검색된 도메인에 대한 catchall 주소 속성이 검사됩니다. 이 속성이 설정된 경우 해당 값이 현재 주소를 대체합니다.

catchall 주소 속성이 설정되지 않은 경우 LDAP_DOMAIN_ATTR_SMARTHOST MTA 옵션에서 검색된 도메인에 대한 smarthost 속성이 검사됩니다. 이 속성이 설정된 경우 다음 형식의 주소가 작성되고

@smarthost: user@domain

이 결과와 함께 별칭 처리가 성공적으로 종료합니다. 또한 LDAP_DOMAIN_ATTR_CONVERSION_TAG MTA 옵션에서 얻은 도메인에 대한 변환 태그(있을 경우)가 주소에 추가되어 smarthost로 전달하기 전에 변환이 수행될 수 있게 합니다. 도메인에 대해 catchall 주소나 smarthost가 존재하지 않을 경우 이 별칭 URL의 처리가 실패로 종료합니다.

LDAP 결과에 대한 유효성 검사

LDAP 검색이 결과를 반환한 후에 항목이 하나만 존재하는지 확인하기 위해 결과가 검사됩니다. 둘 이상의 항목이 존재할 경우 사용자 또는 그룹에 대한 올바른 객체 클래스, 삭제되지 않은 상태 및 UID(사용자인 경우)를 가지는지 확인하기 위해 각 항목이 검사됩니다. 이 검사를 통과하지 않은 항목은 무시됩니다. 이 검사에 의해 여러 항목이 하나로 줄어들 경우 처리가 계속 진행됩니다. 그렇지 않을 경우에는 중복 또는 모호한 디렉토리 오류가 반환됩니다.

부속 도메인 지원

ALIAS_URL0 검사는 기본 사용자나 호스트된 도메인의 사용자에 대해 수행됩니다. 이 검사가 실패할 경우 또한 부속 도메인 검사가 수행됩니다. 부속 도메인 검사에는 다음 별칭 URL이 사용됩니다.

ALIAS_URL1=ldap:///$B?*?sub?(&(msgVanityDomain=$D)$R)

Catchall 주소 지원

마지막으로 @host 형식의 catchall 주소에 대한 검사가 mailAlternateAddress 속성에서 수행되어야 합니다. 이 와일드카드 지정 형식은 호스트된 도메인과 부속 도메인 모두에서 허용되므로 이에 대한 적절한 별칭 URL은 다음과 같습니다.

ALIAS_URL2=ldap:///$1V?*?sub?(mailAlternateAddress=@$D)


주 –

+* 하위 주소 대체 기법은 항상 Direct LDAP 모드에서 catch-all 주소를 사용하지만 문자열 대체는 전체 로컬 부분이 아닌 하위 주소에서만 이루어집니다. 이것은 이러한 구성을 사용할 때 원래 주소의 전체 로컬 부분이 catch-all 주소에 하위 주소로 연결되도록 변경되었습니다.

예를 들어, 주소 형식이 foo+bar@domain.com인 경우 domain.com 도메인에 로컬 사용자 foo가 없고 domain.com의 catch-all 주소가 bletch+*@example.com이면 결과 주소는 bletch+foo+bar@example.com이 됩니다. 이전에는 bletch+bar@example.com이 사용되었습니다.