'Created the HTTP redirect URL needed to send the user to the
discovery service.
:param url: The URL of the discovery service
:param entity_id: The unique identifier of the service provider
:param return: The discovery service MUST redirect the user agent
to this location in response to this request
:param policy: A parameter name used to indicate the desired behavior
controlling the processing of the discovery service
:param returnIDParam: A parameter name used to return the unique
identifier of the selected identity provider to the original
requester.
:param isPassive: A boolean value True/False that controls
whether the discovery service is allowed to visibly interact with
the user agent.
:return: A URL'

@staticmethod
def create_discovery_service_request(url, entity_id, **kwargs):

    args = {'entityID': entity_id}
    for key in ['policy', 'returnIDParam']:
        try:
            args[key] = kwargs[key]
        except KeyError:
            pass
    try:
        args['return'] = kwargs['return_url']
    except KeyError:
        try:
            args['return'] = kwargs['return']
        except KeyError:
            pass
    if ('isPassive' in kwargs):
        if kwargs['isPassive']:
            args['isPassive'] = 'true'
        else:
            args['isPassive'] = 'false'
    params = urlencode(args)
    return ('%s?%s' % (url, params))
