I sincerely feel like the Person Directory API is overly complex for CAS use cases. What do we gain from `IUsernameAttributeProvider` here?