Use v2 identity in AuthenticatedClient.
diff --git a/openstack/client.go b/openstack/client.go
index cbfde10..aef7e71 100644
--- a/openstack/client.go
+++ b/openstack/client.go
@@ -7,6 +7,7 @@
 	"strings"
 
 	"github.com/rackspace/gophercloud"
+	identity2 "github.com/rackspace/gophercloud/openstack/identity/v2"
 	tokens3 "github.com/rackspace/gophercloud/openstack/identity/v3/tokens"
 	"github.com/rackspace/gophercloud/openstack/utils"
 )
@@ -72,7 +73,22 @@
 
 	switch chosen.ID {
 	case v20:
-		return errors.New("Not implemented yet.")
+		v2Client := NewIdentityV2(client)
+		v2Client.Endpoint = endpoint
+		fmt.Printf("Endpoint is: %s\n", endpoint)
+
+		result, err := identity2.Authenticate(v2Client, options)
+		if err != nil {
+			return err
+		}
+
+		token, err := identity2.GetToken(result)
+		if err != nil {
+			return err
+		}
+		client.TokenID = token.ID
+
+		return nil
 	case v30:
 		// Override the generated service endpoint with the one returned by the version endpoint.
 		v3Client := NewIdentityV3(client)