Credential abstraction