O virtual member manager suporta um tipo de entidade LoginAccount e um tipo de entidade PersonAccount que permite que uma pessoa tenha várias contas de login e permite o esquema de uma pessoa e suas contas de login serem independentes umas das outras.
Uma conta de login pode ter vários nomes e senhas de proprietários. Cada nome do proprietário pode ter sua própria senha. Vários nomes de proprietários podem compartilhar a mesma senha e, em alguns casos raros, um nome do proprietário ou uma senha podem ter vários valores.
O virtual member manager suporta entidades Person e non-person (como aplicativos ou programas) como proprietários. Um proprietário é uma entidade que supõe-se que utilizará uma conta de login, por exemplo, uma pessoa. No entanto, programas, aplicativos e serviços também podem ser proprietários. O virtual member manager tem suporte parcial para proprietários non-person em que esses proprietários podem efetuar login utilizando o virtual member manager com um nome e senha do proprietário. Se esses proprietários non-person foram autenticados utilizando um certificado e um navegador, o adaptador LDAP do virtual member manager pode mapear o certificado para uma entrada no diretório LDAP. Se a criação de um LoginAccount é necessária para proprietários non-person, PersonAccount é o único tipo de objeto que pode ser criado.
PersonAccount estende-se a partir da LoginAccount. A PersonAccount representa uma conta com propriedades de pessoa. É equivalente a um conceito de usuário, quando a entidade que usa a conta é uma pessoa (em vez de um aplicativo). PersonAccount no gerenciador de membro virtual é projetada para suportar especificamente entradas do usuário nos repositórios que combinam informações de pessoa e conta. Os exemplos dessas entradas do usuário são inetOrgPerson e as entradas do usuário do IBM Tivoli Directory Server e Active Directory respectivamente.
Uma conta de pessoa suporta vários nomes do principal, os quais compartilham a mesma senha. Os valores de nome do principal vêm de diferentes propriedades no objeto PersonAccount. A propriedade principalName pode ser mapeada para uma lista de uma ou mais propriedades. Se o mapeamento não estiver configurado, os adaptadores de repositório padrão para o gerenciador de membro virtual fornecerão um mapeamento padrão do principalName para a propriedade RDN da PersonAccount.
<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>
A seguir, um objeto de dados PersonAccount de amostra
<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>