:type data: dict[str, dict[str, str] | str]
        :rtype: satosa.internal_data.InternalResponse
        :param data: A dict representation of an InternalResponse object
        :return: An InternalResponse object

def from_dict(cls, data):
        """
        :type data: dict[str, dict[str, str] | str]
        :rtype: satosa.internal_data.InternalResponse
        :param data: A dict representation of an InternalResponse object
        :return: An InternalResponse object
        """
        auth_info = _AuthenticationInformation.from_dict(data.get("auth_info"))
        instance = cls(auth_info=auth_info)
        instance.user_id_hash_type = data.get("hash_type")
        instance.attributes = data.get("attributes", {})
        instance.user_id = data.get("user_id")
        instance.requester = data.get("requester")
        return instance