diff --git a/designate_tempest_plugin/clients.py b/designate_tempest_plugin/clients.py
index 66db3de..5f4f728 100644
--- a/designate_tempest_plugin/clients.py
+++ b/designate_tempest_plugin/clients.py
@@ -13,6 +13,7 @@
 # under the License.
 from tempest import clients
 from tempest import config
+from tempest.lib.auth import KeystoneV2AuthProvider
 
 from designate_tempest_plugin.services.dns.v1.json.domains_client import \
     DomainsClient
@@ -49,58 +50,93 @@
 
 
 class ManagerV1(clients.Manager):
+
     def __init__(self, credentials=None, service=None):
         super(ManagerV1, self).__init__(credentials, service)
+        self._init_clients(self._get_params())
 
-        params = {
+    def _init_clients(self, params):
+        self.domains_client = DomainsClient(**params)
+        self.records_client = RecordsClient(**params)
+        self.servers_client = ServersClient(**params)
+
+    def _get_params(self):
+        params = dict(self.default_params)
+        params.update({
+            'auth_provider': self.auth_provider,
             'service': CONF.dns.catalog_type,
             'region': CONF.identity.region,
             'endpoint_type': CONF.dns.endpoint_type,
             'build_interval': CONF.dns.build_interval,
             'build_timeout': CONF.dns.build_timeout
-        }
-        params.update(self.default_params)
-
-        self.domains_client = DomainsClient(self.auth_provider, **params)
-        self.records_client = RecordsClient(self.auth_provider, **params)
-        self.servers_client = ServersClient(self.auth_provider, **params)
+        })
+        return params
 
 
 class ManagerV2(clients.Manager):
+
     def __init__(self, credentials=None, service=None):
         super(ManagerV2, self).__init__(credentials, service)
+        self._init_clients(self._get_params())
 
-        params = {
-            'service': CONF.dns.catalog_type,
-            'region': CONF.identity.region,
-            'endpoint_type': CONF.dns.endpoint_type,
-            'build_interval': CONF.dns.build_interval,
-            'build_timeout': CONF.dns.build_timeout
-        }
-        params.update(self.default_params)
+    def _init_clients(self, params):
+        self.zones_client = ZonesClient(**params)
+        self.zone_imports_client = ZoneImportsClient(**params)
+        self.blacklists_client = BlacklistsClient(**params)
+        self.quotas_client = QuotasClient(**params)
+        self.zone_exports_client = ZoneExportsClient(**params)
+        self.recordset_client = RecordsetClient(**params)
+        self.pool_client = PoolClient(**params)
+        self.tld_client = TldClient(**params)
+        self.transfer_request_client = TransferRequestClient(**params)
+        self.transfer_accept_client = TransferAcceptClient(**params)
+        self.tsigkey_client = TsigkeyClient(**params)
 
-        self.zones_client = ZonesClient(self.auth_provider, **params)
-        self.zone_imports_client = ZoneImportsClient(self.auth_provider,
-                                                     **params)
-        self.blacklists_client = BlacklistsClient(self.auth_provider, **params)
-        self.quotas_client = QuotasClient(self.auth_provider, **params)
-        self.zone_exports_client = ZoneExportsClient(self.auth_provider,
-                                                     **params)
-        self.recordset_client = RecordsetClient(self.auth_provider,
-                                                **params)
-        self.pool_client = PoolClient(self.auth_provider,
-                                      **params)
-        self.tld_client = TldClient(self.auth_provider,
-                                    **params)
         self.query_client = QueryClient(
             nameservers=CONF.dns.nameservers,
             query_timeout=CONF.dns.query_timeout,
             build_interval=CONF.dns.build_interval,
             build_timeout=CONF.dns.build_timeout,
         )
-        self.transfer_request_client = TransferRequestClient(
-                                           self.auth_provider, **params)
-        self.transfer_accept_client = TransferAcceptClient(
-                                           self.auth_provider, **params)
-        self.tsigkey_client = TsigkeyClient(
-                                           self.auth_provider, **params)
+
+    def _get_params(self):
+        params = dict(self.default_params)
+        params.update({
+            'auth_provider': self.auth_provider,
+            'service': CONF.dns.catalog_type,
+            'region': CONF.identity.region,
+            'endpoint_type': CONF.dns.endpoint_type,
+            'build_interval': CONF.dns.build_interval,
+            'build_timeout': CONF.dns.build_timeout
+        })
+        return params
+
+
+class ManagerV2Unauthed(ManagerV2):
+
+    def __init__(self, credentials=None, service=None):
+        super(ManagerV2Unauthed, self).__init__(credentials, service)
+        self.auth_provider = KeystoneV2UnauthedProvider(
+            credentials=self.auth_provider.credentials,
+            auth_url=self.auth_provider.auth_client.auth_url,
+            disable_ssl_certificate_validation=self.auth_provider.dscv,
+            ca_certs=self.auth_provider.ca_certs,
+            trace_requests=self.auth_provider.trace_requests,
+        )
+        self._init_clients(self._get_params())
+
+
+class KeystoneV2UnauthedProvider(KeystoneV2AuthProvider):
+    """This auth provider will ensure requests are made without a token"""
+
+    def _decorate_request(self, filters, method, url, headers=None, body=None,
+                          auth_data=None):
+        result = super(KeystoneV2UnauthedProvider, self)._decorate_request(
+            filters, method, url, headers=headers, body=body,
+            auth_data=auth_data)
+        url, headers, body = result
+        try:
+            del headers['X-Auth-Token']
+        except KeyError:
+            pass
+        return url, headers, body
diff --git a/designate_tempest_plugin/tests/api/v2/test_unauthed.py b/designate_tempest_plugin/tests/api/v2/test_unauthed.py
new file mode 100644
index 0000000..f036824
--- /dev/null
+++ b/designate_tempest_plugin/tests/api/v2/test_unauthed.py
@@ -0,0 +1,48 @@
+# Copyright 2016 Rackspace
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+from oslo_log import log as logging
+from tempest import test
+from tempest.lib import decorators
+from tempest.lib import exceptions as lib_exc
+import ddt
+
+from designate_tempest_plugin.tests import base
+from designate_tempest_plugin.clients import ManagerV2Unauthed
+
+LOG = logging.getLogger(__name__)
+
+
+@ddt.ddt
+class TestDnsUnauthed(base.BaseDnsV2Test):
+
+    client_manager = ManagerV2Unauthed
+    credentials = ["primary"]
+
+    @classmethod
+    def setup_clients(cls):
+        super(TestDnsUnauthed, cls).setup_clients()
+        cls.zones_client = cls.os.zones_client
+        cls.recordset_client = cls.os.recordset_client
+        cls.tld_client = cls.os.tld_client
+        cls.pool_client = cls.os.pool_client
+        cls.blacklists_client = cls.os.blacklists_client
+
+    @test.attr(type='smoke')
+    @decorators.idempotent_id('0f7a6d20-f6f3-4937-8fe6-7a9851227d98')
+    @ddt.file_data('unauthed_data.json')
+    def test_unauthed(self, client, method, args=None):
+        client = getattr(self, client)
+        method = getattr(client, method)
+        args = args or []
+        self.assertRaises(lib_exc.Unauthorized, method, *args)
diff --git a/designate_tempest_plugin/tests/api/v2/unauthed_data.json b/designate_tempest_plugin/tests/api/v2/unauthed_data.json
new file mode 100644
index 0000000..c4faf80
--- /dev/null
+++ b/designate_tempest_plugin/tests/api/v2/unauthed_data.json
@@ -0,0 +1,127 @@
+{
+    "list_zones": {
+        "client": "zones_client",
+        "method": "list_zones"
+    },
+    "show_zone": {
+        "client": "zones_client",
+        "method": "show_zone",
+        "args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
+    },
+    "create_zone": {
+        "client": "zones_client",
+        "method": "create_zone",
+        "args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
+    },
+    "update_zone": {
+        "client": "zones_client",
+        "method": "update_zone",
+        "args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
+    },
+    "delete_zone": {
+        "client": "zones_client",
+        "method": "delete_zone",
+        "args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
+    },
+
+    "list_recordsets": {
+        "client": "recordset_client",
+        "method": "list_recordset",
+        "args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
+    },
+    "show_recordset": {
+        "client": "recordset_client",
+        "method": "show_recordset",
+        "args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90", "6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
+    },
+    "create_recordset": {
+        "client": "recordset_client",
+        "method": "create_recordset",
+        "args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90", "6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
+    },
+    "update_recordset": {
+        "client": "recordset_client",
+        "method": "update_recordset",
+        "args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90", "6ef3b7f2-df39-43ef-9f37-ce2bc424ab90", {}]
+    },
+    "delete_recordset": {
+        "client": "recordset_client",
+        "method": "delete_recordset",
+        "args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90", "6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
+    },
+
+    "list_tlds": {
+        "client": "tld_client",
+        "method": "list_tlds"
+    },
+    "show_tld": {
+        "client": "tld_client",
+        "method": "show_tld",
+        "args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
+    },
+    "create_tld": {
+        "client": "tld_client",
+        "method": "create_tld",
+        "args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
+    },
+    "update_tld": {
+        "client": "tld_client",
+        "method": "update_tld",
+        "args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
+    },
+    "delete_tld": {
+        "client": "tld_client",
+        "method": "delete_tld",
+        "args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
+    },
+
+    "list_blacklists": {
+        "client": "blacklists_client",
+        "method": "list_blacklists"
+    },
+    "show_blacklist": {
+        "client": "blacklists_client",
+        "method": "show_blacklist",
+        "args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
+    },
+    "create_blacklist": {
+        "client": "blacklists_client",
+        "method": "create_blacklist",
+        "args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
+    },
+    "update_blacklist": {
+        "client": "blacklists_client",
+        "method": "update_blacklist",
+        "args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
+    },
+    "delete_blacklist": {
+        "client": "blacklists_client",
+        "method": "delete_blacklist",
+        "args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
+    },
+
+    "list_pools": {
+        "client": "pool_client",
+        "method": "list_pools"
+    },
+    "show_pool": {
+        "client": "pool_client",
+        "method": "show_pool",
+        "args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
+    },
+    "create_pool": {
+        "client": "pool_client",
+        "method": "create_pool",
+        "args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
+    },
+    "update_pool": {
+        "client": "pool_client",
+        "method": "update_pool",
+        "args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
+    },
+    "delete_pool": {
+        "client": "pool_client",
+        "method": "delete_pool",
+        "args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
+    }
+}
