Sun Directory Services 3.1 管理ガイド

第 8 章 ディレクトリスキーマの構成

この章では、ディレクトリサーバーから現在のスキーマを入手し、それにオブジェクトクラスや属性の定義を追加する方法を説明します。

さらに、Sun Directory Services 3.1 のデフォルトスキーマに属するすべてのオブジェクトと属性を示し、その目的と意味を説明します。

スキーマの定義

スキーマとは、ディレクトリに格納可能なデータを記述する規則の集まりです。スキーマは、エントリの種類、構造、および構文を定義するものです。スキーマは、変更または拡張できます。ただし、オブジェクトや属性には変更できないものがあります。

スキーマの定義は、構成ディレクトリ /etc/opt/SUNWconn/ldap/current にある次の 2 つのファイルに格納します。

LDAP 属性の定義書式については、dsserv.at.conf(4) のマニュアルページを参照してください。

現在のスキーマの表示

現在のスキーマを表示するには、次の 2 つの方法があります。

ldapsearch でスキーマを表示するには

ディレクトリサーバーから現在のスキーマを読み込むには、ldapsearch コマンドに次の引き数を指定します。

/opt/SUNWconn/bin/ldapsearch -h hostname -b "cn=schema" -s base 'objectclass=*'

hostname はディレクトリサーバー名です。

表 8-1 に、表示される情報の一例を示します。

表 8-1 ディレクトリスキーマの一部
objectclasses=( 2.5.6.0 NAME 'top' DESC 'Standard ObjectClass'
MUST ( objectclass ) )
objectclasses=( 2.5.6.1 NAME 'alias' DESC 'Standard ObjectClass'
SUP 'top'  MUST ( objectclass $ aliasedobjectname )  MAY ( * )  )
objectclasses=( 2.5.6.2 NAME 'country' DESC 'Standard ObjectClass'
SUP 'top'  MUST ( objectclass $ c )  MAY ( description $ searchguide
)  )
objectclasses=( 2.5.6.3 NAME 'locality' DESC 'Standard
ObjectClass' SUP 'top'  MUST ( objectclass )  MAY ( description $
l $ searchguide $ seealso $ st $ street )  )
objectclasses=( 2.5.6.4 NAME 'organization' DESC 'Standard
ObjectClass' SUP 'top'  MUST ( objectclass $ o )  MAY (
businesscategory $ description $ destinationindicator $
facsimiletelephonenumber $ internationalisdnnumber $ l $
physicaldeliveryofficename $ postofficebox $ postaladdress $
postalcode $ preferreddeliverymethod $ registeredaddress $
searchguide $ seealso $ st $ street $ telephonenumber $
teletexterminalidentifier $ telexnumber $ userpassword $
x121address )  )
objectclasses=( 2.5.6.5 NAME 'organizationalUnit' DESC 'Standard
ObjectClass' SUP 'top'  MUST ( objectclass $ ou )  MAY (
businesscategory $ description $ destinationindicator $
facsimiletelephonenumber $ internationalisdnnumber $ l $
physicaldeliveryofficename $ postofficebox $ postaladdress $
postalcode $ preferreddeliverymethod $ registeredaddress $
searchguide $ seealso $ st $ street $ telephonenumber $
teletexterminalidentifier $ telexnumber $ userpassword $
x121address )  )
objectclasses=( 2.5.6.6 NAME 'person' DESC 'Standard ObjectClass'
SUP 'top'  MUST ( objectclass $ sn $ cn )  MAY ( description $
seealso $ telephonenumber $ userpassword )  )

ldapsearch コマンドでスキーマを表示すると、キーワードが大文字で表示されます。内容は次のとおりです。

管理コンソールでスキーマを表示するには

  1. 管理コンソールの「スキーマ (Schema)」セクションへ移動します。

    このセクションには、オブジェクトクラスが階層順またはアルファベット順に表示されます。表示区画下部のボタンを使用すれば、表示モードを変更できます。

    オブジェクトクラスのフォルダアイコンをクリックすると、必須属性 (M) と任意属性 (O) が表示されます。階層表示では、オブジェクトクラスのフォルダアイコンをクリックすると、そのオブジェクトクラスのサブクラスが表示されます。

  2. 属性のリストを表示するには、「属性リスト (Attributes list)」ボタンをクリックします。

    属性リストのウィンドウに、次の 5 つの列からなるテーブルが表示されます。

    • 属性名

    • 属性の別名 (コンマで区切られる)

    • キーワードで識別された属性の構文 (「属性リファレンス」を参照)

    • 属性の固有 OID

    • 属性がネーミング属性 (つまり、エントリの識別名に使用できる属性) かどうか、および属性が単一値の属性かどうか

スキーマの変更

スキーマは、次の方法で変更できます。

既存のオブジェクトクラスを変更するよりも、新しいオブジェクトクラスを作成する方が安全です。既存のオブジェクトクラスを拡張したい場合には、拡張したいオブジェクトクラスから属性を継承するオブジェクトクラスを作成できます。

オブジェクトクラスや属性は、できるだけ削除しないでください。既存の定義を使用しているディレクトリエントリがある可能性があるからです。

スキーマの変更によってエントリが無効になるかどうかは、自動的には検査されません。したがって、エントリが無効になる危険を少なくするために、ディレクトリの変更は、オブジェクトクラスや属性の追加だけに限定してください。ただし、スキーマの検査を有効にできます。手順については、「スキーマの検査」を参照してください。

スキーマ定義には、Sun Directory Services ディレクトリサーバーや Sun Internet Mail Server (SIMS) が内部的に使用するオブジェクトクラスが含まれています。管理コンソールでは、これらのオブジェクトクラスの変更は拒否されます。これらのオブジェクトクラスには、構成ファイルにおいて、キーワード「frozen」が付けられます。このキーワードは、標準のスキーマ項目から削除しないでください。


注 -

ユーザーが Web ゲートウェイからディレクトリを表示するには、スキーマに対するすべての変更を dswebtmpl.conf ファイルにも行う必要があります。詳細は、dswebtmpl.conf(4) のマニュアルページを参照してください。


スキーマの検査

Sun Directory Services には、スキーマを検査する機能があります。ディレクトリ情報を追加または変更すると、そのオブジェクトクラスの必須属性やそのオブジェクトが継承する必須属性がすべての必須属性を含んでいるかどうかをディレクトリサーバーが検査します。

スキーマ検査には、次のオプションがあります。

管理コンソールの「スキーマ (Shema)」セクションにある「スキーマ検査 (Schema check)」メニューボタンで適切なレベルを選択します。デフォルトの検査レベルは「弱 (Weak)」です。


注 -

スキーマ検査では、オブジェクトクラスの互換性を検査できません。たとえば、device オブジェクトクラスと person オブジェクトクラスを持つエントリを作成することは可能です。IETF 標準には、オブジェクトクラスに対する規則は含まれていません。


新しいオブジェクトクラスを作成するには

  1. 管理コンソールメインウィンドウの「作成 (Create)」メニューから「クラス/属性... (Class/Attribute...)」を選択します。

    「オブジェクトクラスの作成 (Create Object Class)」ウィンドウが表示されます。

  2. 次の項目を入力します。

    • 新しいオブジェクトクラス名

    • (省略可能) オブジェクトクラスのオブジェクト識別子

    • このオブジェクトクラスが属性を継承する上位のオブジェクトクラス

  3. このオブジェクトクラスの必須属性と任意属性を指定します。

    1. このオブジェクトクラスの属性を選択または指定します。

    2. ポップアップメニューから属性のモード (「必須 (Mandatory)」または「任意 (Optional)」) を選択します。

    3. 「追加 (Add)」をクリックして、属性をオブジェクトクラス定義に追加します。

  4. 「了解 (OK)」をクリックして、変更したオブジェクトクラス定義を保存します。

    この変更を有効にするには、dsservd デーモンを再起動する必要があります。図 8-1 は、新しいオブジェクトクラス plumber と、この業者に連絡するために必要な属性を示しています。

    図 8-1 「オブジェクトクラスの作成 (Create Object Class)」ウィンドウ

    Graphic

新しい属性を作成するには

  1. 管理コンソールメインウィンドウの「作成 (Create)」メニューから「クラス/属性... (Class/Attribute...)」を選択します。

    「オブジェクトクラスの作成 (Create Object Class)」ウィンドウが表示されます。

  2. 「オブジェクトクラスの作成 (Create Object Class)」ウィンドウの「作成 (Create)」メニューから「属性... (Attribute...)」を選択します。

    「属性の追加 (Add Attribute)」ウィンドウが表示されます。

  3. 次の項目を指定します。

    • 属性名

    • (省略可能) 属性の固有 OID

    • (省略可能)「別名 (Alias(es))」フィールドに代替名

    • 属性が複数の値をもつかどうか

    • 属性をネーミング属性として使用できるか

  4. 「了解 (OK)」をクリックして、新しい属性の定義を保存します。

    この変更を有効にするには、dsservd デーモンを再起動する必要があります。図 8-2 は、オブジェクトクラス plumber に追加する新しい属性 hourlyRate が作成されたことを示しています。

    図 8-2 「属性の追加 (Add Atribute)」ウィンドウ

    Graphic

オブジェクトクラスに属性を追加するには

  1. 属性を追加するオブジェクトクラスをオブジェクトクラスリストから選択して強調表示し、「選択 (Selected)」メニューから「クラスを変更... (Modify Class...)」を選択します。

    「オブジェクトクラスの変更 (Modify Object Class)」ウィンドウが表示されます。変更しようとするオブジェクトクラス名は、このウィンドウの「一般 (General)」セクションに表示されます。このオブジェクトクラスの必須属性と任意属性は、「オブジェクトクラス属性 (Object class attributes)」セクションに表示されます。

  2. 「定義済み属性 (Defined Attributes)」リストから、追加する属性を選択して強調表示します。

  3. ホップアップメニューから属性モード (必須または任意) を選択します。

  4. 「追加 (Add)」をクリックして、属性をオブジェクトクラス定義に追加します。

  5. 「了解 (OK)」をクリックして、変更したオブジェクトクラス定義を保存します。

    この変更を有効にするには、dsservd デーモンを再起動する必要があります。

    オブジェクトクラス定義にすでに指定されている属性のモードを変更するには、「クラス属性 (Class attributes)」リストの属性を選択し、「モード (Mode)」ポップアップメニューでモードを変更します。

オブジェクトクラスのリファレンス

この節には、デフォルトのスキーマで使用されるオブジェクトクラスがアルファベット順に記載されています。ただし、『RFC 1274 The COSINE and Internet X.500 Schema』に記載されているパイロットプロジェクトのオブジェクトクラスは除きます。この節では、オブジェクトクラスごとに、その目的とそのオブジェクトクラス固有の必須属性と任意属性を示します。オブジェクトクラスは上位のオブジェクトクラスから必須属性と任意属性を継承しますが、それらの属性は示されていません。

オブジェクトクラス名の後のキーワード「固定」は、このオブジェクトクラスが Sun Internet Mail Server (SIMS) や Sun Directory Services の構成要素によって使用されることを示します。このオブジェクトクラス定義は、管理コンソールで変更できません。このようなオブジェクトクラスの定義を変更する場合は、この変更によって、SIMS や Sun Directory Services の構成要素がこのクラスのオブジェクトを使用できなくならないように注意してください。

account
alias (固定)

注 -

alias オブジェクトクラスの代わりに aliasObject サブクラスをできるだけ使用してください。alias オブジェクトクラスでは、名前付き属性として相対識別名は使用できず、別名のオブジェクトの完全な識別名しか使用できないからです。


aliasObject

注 -

aliasObject エントリの属性の 1 つは、そのエントリの名前付き属性でなければなりません。名前付き属性は、別名のオブジェクトの属性と同じでなければなりません。


applicationEntity
applicationProcess
automount
bootableDevice (補助オブジェクトクラス)
certificationAuthority (補助オブジェクトクラス)
certificationAuthority-V2 (補助オブジェクトクラス)
country
cRLDistributionPoint
device
dcObject (補助オブジェクトクラス)
dmd
dNSDomain
document
documentSeries
domain
domainRelatedObject
dSA
emailGroup
emailPerson (固定)
friendlyCountry
gatewayCCMailUser (固定)
gatewayChannel (固定)
gatewayDocConvPreference (固定)
gatewayLotusNotesUser (固定)
gatewayMail11User (固定)
gatewayMrUser (固定)
gatewayMSMailUser (固定)
gatewayNGMUser (固定)
gatewayNGM70User (固定)
gatewayPROFSUser (固定)
groupOfNames
groupOfUniqueNames
ieee802Device (補助オブジェクトクラス)
inetOrgPerson
ipHost (補助オブジェクトクラス)
ipProtocol
ipNetwork
ipService
labeledURIObject (補助オブジェクトクラス)
locality
nas
nisMailAlias
nisMap
nisNetGroup
nisNetId
nisObject
nisSunObject
oncRpc
organization
organizationalPerson
organizationalRole
organizationalUnit
person
posixAccount (補助オブジェクトクラス)
posixGroup
referral (固定)
remoteUser (固定)
residentialPerson
rFC822LocalPart
room
shadowAccount (補助オブジェクトクラス)
simpleSecurityObject
strongAuthenticationUser (補助オブジェクトクラス)
subschema (補助オブジェクトクラス)
sunNisMap
sunNisServer
top
uidObject (補助オブジェクトクラス)
userSecurityInformation (補助オブジェクトクラス)

属性リファレンス

スキーマに定義されたすべての属性は、次のいずれかの構文を持っています。

デフォルトスキーマの以下の属性について、属性構文とある場合には代替名を示し、属性の使用方法を説明します。

abstract
acctattrFile
acctAuthentic
acctDelayTime
acctInputOctet
acctInputPacket
acctOutputOctet
acctOutputPacket
acctSessionId
acctSessionTime
acctStatusType
acctTerminateCause
ackedSequenceNumber
aliasedObjectName
altServer
assistant
associatedDomain
associatedName
attributeName
attributeTypes
audio
authCalledStationId
authCallingStationId
authFilterId
authHostPortNumber
authHostPortType
authLoginService
authNASidentifier
authorityRevocationList
authorizedDomain
authorizedSubmitter
authPortLimit
authPrefixName
authReplyMessage
authServiceProtocol
authStartMenuId
authState
authStopMenuId
authType
authSuffixName
authTerminationAction
automountInformation
bootFile
bootParameter
buildingName
businessCategory
c

countryName を参照してください。

carLicense
cACertificate
cCMailAddress
certificateRevocationList
channelName
channelType
chapPassword
cn

commonName を参照してください。

commonName
copyright
countryName
createtimestamp
creatorsName
crossCertificatePair
currentSequenceNumber
dataSource
dc

domainComponent を参照してください。

deltaRevocationList
departmentNumber
description
destinationIndicator
dictionaryFile
distinguishedName
dITContentRules
dITRedirect
dITStructureRules
dmdName
dn

distinguishedName を参照してください。

dNSRecord
docConvPreference
documentAuthor
documentIdentifier
documentLocation
documentPublisher
documentStore
documentTitle
documentVersion
domainComponent
drink
dynamicIPaddressBinding
dynamicIPAddress
dynamicSessionCounter
dynamicSessionId
employeeNumber
employeeType
expandable
expirationDate
facsimileTelephoneNumber
favouriteDrink

drink を参照してください。

framedCompression
framedIPAddress
framedMTU
framedProtocol
framedRoute
framedRouting
freeFormName
gecos
generationQualifier
gidNumber
givenName
grpCheckInfo
grpReplyInfo
homeDirectory
homeFacsimileTelephoneNumber
homePhone
homePostalAddress
host
idleTimeoutNumber
initials
internationalISDNNumber
ipHostNumber
ipLoginHost
ipLoginPort
ipNetmaskNumber
ipNetworkNumber
ipProtocolNumber
ipxNetworkNumber
joinable
jpegPhoto
keywords
knowledgeInformation
labeledURI
lastModifiedBy
lastModifiedTime
loginShell
ldapSyntaxes
localityName
lotusNotesAddresses
macAddress
mail
mail11Addresses
mailAutoReplyExpirationDate
mailAutoReplyMode
mailAutoReplySubject
mailAutoReplyText
mailAutoReplyTextInternal
mailDeliveryFile
mailDeliveryOption
mailFolderMap
mailForwardingAddress
mailHost
mailMessageStore
mailProgramDeliveryInfo
mailQuota
manager
matchingRules
matchingRuleUse
maxLastModifiedTime
member
memberUid
memberNisNetgroup
middleName
mobiletelephoneNumber
modifiersName
modifytimestamp
mrAddresses
mSMailAddresses
nameForms
namingContexts
nGM70Addresses
nGMAddresses
nisMapEntry
nisMapName
nisNetgroupTriple
nisNetIdGroup
nisNetIdHost
nisNetIdUser
o

organizationName を参照してください。

objectClass
objectClasses
objectStatus
obsoletedByDocument
obsoletesDocument
oncRpcNumber
organizationName
owner
ownerDeliveryFile
ownerDeliveryOption
ownerProgramDeliveryInfo
pagertelephonenumber
personalMobile
personalPager
personalSignature
personalTitle
photo
physicalDeliveryOfficeName
postalAddress
postalCode
postOfficeBox
preferredCCMailOriginator
preferredCCMailRecipient
preferredDeliveryMethod
preferredLanguage
preferredLotusNotesOriginator
preferredLotusNotesRecipient
preferredMail11Originator
preferredMail11Recipient
preferredMrOriginator
preferredMrRecipient
preferredMSMailOriginator
preferredMSMailRecipient
preferredNGM70Originator
preferredNGM70Recipient
preferredNGMOriginator
preferredPROFSOriginator
preferredPROFSRecipient
preferredRfc822Recipient
presentationAddress
pROFSAddresses
radiusAuthFailedAccess
radiusLoginExpiration
radiusLoginPasswd
radiusLoginProfile
radiusPppExpiration
radiusPppPasswd
radiusPppProfile
radiusSlipExpiration
radiusSlipPasswd
radiusSlipProfile
ref
registeredAddress
reportsTo
requestsToDeliveryFile
requestsToDeliveryOption
requestsToProgramDeliveryInfo
rfc822AuthorizedSubmitter
rfc822Mailbox
rfc822MailMember
rfc822Owner
rfc822UnauthorizedSubmitter
roleOccupant
roomNumber
searchGuide
secretary
seeAlso
serialNumber
sessionTimeoutNumber
shadowLastChange
shadowExpire
shadowFlag
shadowInactive
shadowMax
shadowMin
shadowWarning
sharedKey
stateOrProvinceName
streetAddress
subject
subschemaSubentry
sunNisDbmCache
sunNisDnsForwarding
sunNisDomain
sunNisInputFile
sunNisKey
sunNisLoadMap
sunNisMapFullName
sunNisMapState
sunNisMaster
sunNisOutputName
sunNisSecurityMode
supportedAlgorithms
supportedApplicationContext
supportedControl
supportedLDAPVersion
supportedExtension
supportedSASLMechanisms
surname
telephoneNumber
teletexTerminalIdentifier
telexNumber
textEncodedORaddress
thumbNailPhoto
thumbNailLogo
title
uidNumber
unauthorizedDomain
unauthorizedSubmitter
uniqueIdentifier
uniqueMember
updatedByDocument
updatesDocument
userCallbackId
userCallbackNumber
userCertificate
userDefinedAttribute1
userDefinedAttribute2
userDefinedAttribute3
userDefinedAttribute4
userid
userPassword
userSMIMECertificate
x121Address
x500uniqueIdentifier