'Makes all necessary preparations for an authentication request.
:param entityid: The entity ID of the IdP to send the request to
:param relay_state: To where the user should be returned after
successfull log in.
:param binding: Which binding to use for sending the request
:param vorg: The entity_id of the virtual organization I\'m a member of
:param scoping: For which IdPs this query are aimed.
:param consent: Whether the principal have given her consent
:param extensions: Possible extensions
:param sign: Whether the request should be signed or not.
:param response_binding: Which binding to use for receiving the response
:param kwargs: Extra key word arguments
:return: session id and AuthnRequest info'

def prepare_for_authenticate(self, entityid=None, relay_state='', binding=saml2.BINDING_HTTP_REDIRECT, vorg='', nameid_format=None, scoping=None, consent=None, extensions=None, sign=None, response_binding=saml2.BINDING_HTTP_POST, **kwargs):

    destination = self._sso_location(entityid, binding)
    (reqid, req) = self.create_authn_request(destination, vorg, scoping, response_binding, nameid_format, consent=consent, extensions=extensions, sign=sign, **kwargs)
    _req_str = ('%s' % req)
    logger.info(('AuthNReq:    %s' % _req_str))
    info = self.apply_binding(binding, _req_str, destination, relay_state)
    return (reqid, info)
