Penrose is a Java-based virtual directory server. A virtual directory enables federating (aggregating) identity data in real-time from multiple heterogeneous sources like directories, databases, flat files, and Web services, and makes it available to identify users via LDAP.