'Accesses **protected resource** on behalf of the **user**.
:param credentials:
The **user\'s** :class:`.Credentials` (serialized or normal).
:param str url:
The **protected resource** URL.
:param str method:
HTTP method of the request.
:param dict headers:
HTTP headers of the request.
:param str body:
Body of ``POST``, ``PUT`` and ``PATCH`` requests.
:param int max_redirects:
Maximum number of HTTP redirects to follow.
:param function content_parser:
A function to be used to parse the :attr:`.Response.data`
from :attr:`.Response.content`.
:returns:
:class:`.Response`'

def access(self, credentials, url, params=None, method='GET', headers=None, body='', max_redirects=5, content_parser=None):

    credentials = Credentials.deserialize(self.config, credentials)
    ProviderClass = credentials.provider_class
    logging.info('ACCESS    HEADERS:    {0}'.format(headers))
    provider = ProviderClass(self, adapter=None, provider_name=credentials.provider_name)
    provider.credentials = credentials
    return provider.access(url=url, params=params, method=method, headers=headers, body=body, max_redirects=max_redirects, content_parser=content_parser)
