def getPrincipal(id):
    """Get principal meta-data.

        Returns an object of type :class:`~.IPrincipal` for the given principal
        id. A :class:`PrincipalLookupError` is raised if the principal cannot be
        found.

        Note that the authentication utility nearest to the requested
        resource is called. It is up to authentication utility
        implementations to collaborate with utilities higher in the
        object hierarchy.
        """
