If you want a SOAP/WSDL based API, then there's the Partner API, which is the same for all Salesforce.com customer. Seems like you should be able to built your integration directly from that. The partner API includes a describeGlobal/describeSObject call that will allow you to programmatically discover the users schema so that you establish which objects/fields the user has access to.
Rather than storing credentials, you'll probably want to use OAuth to authenticate the user, this will give you an access token to make API calls on behalf of the user, and will better handle cases like where the user changes their password.