Virtual member manager は、LoginAccount エンティティー・タイプと PersonAccount エンティティー・タイプをサポートします。 これらのエンティティー・タイプにより、個人は複数のログイン・アカウントを持つことができ、 また個人のスキーマとそのログイン・アカウントを互いに独立させることができます。
ログイン・アカウントは、複数のプリンシパル名とパスワードを持つことができます。 各プリンシパル名は、独自のパスワードを持つことができます。 複数のプリンシパル名が同じパスワードを共有できるので、まれに、1 つのプリンシパル名または 1 つのパスワードが複数の値を持つことがあります。
Virtual member manager は、Person と非個人の (アプリケーションやプログラムなど) エンティティーをプリンシパルとしてサポートします。 プリンシパルは、ログイン・アカウントを使用することが予想されるエンティティー (例えば、個人) です。 ただし、プログラム、アプリケーション、およびサービスもプリンシパルとすることができます。 Virtual member manager は、非個人のプリンシパルを部分的にサポートします。 それは、これらのプリンシパルが、プリンシパル名とパスワードを使用して Virtual member manager にログインできるからです。 証明書とブラウザーを使用して、これらの非個人のプリンシパルが認証されている場合は、Virtual member manager の LDAP アダプターが、その証明書を LDAP ディレクトリーのエントリーにマップできます。 非個人のプリンシパルのために LoginAccount の作成が必要な場合は、PersonAccount が、作成可能な唯一のオブジェクトです。
PersonAccount は LoginAccount から拡張されます。 PersonAccount は、個人プロパティーを含む account を表します。 これは、アカウントを使用するエンティティーが個人 (アプリケーションと対立するものとして) であるときは、ユーザー概念と等価です。 Virtual member manager の PersonAccount の目的は、リポジトリー内の、 個人情報とアカウント情報を結合したユーザー・エントリーを具体的にサポートすることにあります。 このようなユーザー・エントリーの例としては、それぞれ IBM Tivoli Directory Server および Active Directory からの inetOrgPerson および User エントリーです。
個人アカウントは複数のプリンシパル名をサポートし、さまざまなプリンシパル名が同じパスワードを共有します。 プリンシパル名の値は、PersonAccount オブジェクトのさまざまなプロパティーを基にしています。 principalName プロパティーは、1 つ以上の他のプロパティーのリストにマップできます。 マッピングが構成されていない場合は、Virtual member manager のデフォルトのリポジトリー・アダプターが、principalName から PersonAccount の RDN プロパティーへのデフォルト・マッピングを提供します。
<xsd:element name="principalName" type="xsd:string"/>
<xsd:element name="realm" type="xsd:string"/>
<xsd:element name="password" type="xsd:string"/>
<xsd:element name="certificate" type="xsd:base64Binary"/>
<xsd:complexType name="LoginAccount">
<xsd:complexContent>
<xsd:extension base="Party">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" ref="principalName" />
<xsd:element maxOccurs="1" minOccurs="0" ref="password" />
<xsd:element maxOccurs="1" minOccurs="0" ref="realm" />
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="certificate" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="PersonAccount">
<xsd:complexContent>
<xsd:extension base="LoginAccount">
<xsd:group ref="PersonPropertyGroup"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
次に、PersonAccount データ・オブジェクトのサンプルを示します。
<wim:Root>
<wim:entities xsi:type="wim:PersonAccount">
<wim:groups>
<wim:identifier uniqueName="cn=Managers,cn=groups,dc=yourco,dc=com"/>
</wim:groups>
<wim:password>KioqKg==</wim:password>
<wim:uid>SalesMgr</wim:uid>
<wim:cn>Sales Mgr</wim:cn>
<wim:sn>SalesMgrSn</wim:sn>
</wim:entities>
</wim:Root>