diff --git a/src/main/java/org/onosproject/aaa/AaaShowUsersCommand.java b/src/main/java/org/onosproject/aaa/AaaShowUsersCommand.java
new file mode 100644
index 0000000..c2c496e
--- /dev/null
+++ b/src/main/java/org/onosproject/aaa/AaaShowUsersCommand.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2016 Open Networking Laboratory
+ *
+ * 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.
+ */
+package org.onosproject.aaa;
+
+import org.apache.karaf.shell.commands.Command;
+import org.onosproject.cli.AbstractShellCommand;
+
+/**
+ * Shows the users in the aaa.
+ */
+@Command(scope = "onos", name = "aaa-users",
+        description = "Shows the aaa users")
+public class AaaShowUsersCommand extends AbstractShellCommand {
+    @Override
+    protected void execute() {
+        String[] state = {
+                "IDLE",
+                "STARTED",
+                "PENDING",
+                "AUTHORIZED",
+                "UNAUTHORIZED"
+        };
+        for (StateMachine stateMachine : StateMachine.sessionIdMap().values()) {
+            String deviceId = stateMachine.supplicantConnectpoint().deviceId().toString();
+            String portNum = stateMachine.supplicantConnectpoint().port().toString();
+            String username = new String(stateMachine.username());
+            print("UserName=%s,CurrentState=%s,DeviceId=%s,PortNumber=%s",
+                  username, state[stateMachine.state()], deviceId, portNum);
+        }
+    }
+}
diff --git a/src/main/java/org/onosproject/aaa/StateMachine.java b/src/main/java/org/onosproject/aaa/StateMachine.java
index 6b8ebcb..cb9291c 100644
--- a/src/main/java/org/onosproject/aaa/StateMachine.java
+++ b/src/main/java/org/onosproject/aaa/StateMachine.java
@@ -124,6 +124,10 @@
         identifierMap = null;
     }
 
+    public static Map<String, StateMachine> sessionIdMap() {
+        return sessionIdMap;
+    }
+
     public static StateMachine lookupStateMachineById(byte identifier) {
         return identifierMap.get((int) identifier);
     }
