diff --git a/lib/private/group/manager.php b/lib/private/group/manager.php
index 0f6ba7f24e050e8bb7ad5443729d6abb6fc28a0e..73ff0e537c6763a8c6eb6df9b3e960e80a2769b2 100644
--- a/lib/private/group/manager.php
+++ b/lib/private/group/manager.php
@@ -263,7 +263,9 @@ class Manager extends PublicEmitter implements IGroupManager {
 	 * @return array with group ids
 	 */
 	public function getUserGroupIds($user) {
-		return array_keys($this->getUserGroups($user));
+		return array_map(function($value) {
+			return (string) $value;
+		}, array_keys($this->getUserGroups($user)));
 	}
 
 	/**
diff --git a/tests/lib/group/manager.php b/tests/lib/group/manager.php
index e3e2a96e46da7583c36cad49d181539231201e1b..6cf473b91568953dae1e2166868c7f4ff18a3282 100644
--- a/tests/lib/group/manager.php
+++ b/tests/lib/group/manager.php
@@ -304,6 +304,32 @@ class Manager extends \Test\TestCase {
 		$this->assertEquals('group1', $group1->getGID());
 	}
 
+	public function testGetUserGroupIds() {
+		/** @var \PHPUnit_Framework_MockObject_MockObject|\OC\Group\Manager $manager */
+		$manager = $this->getMockBuilder('OC\Group\Manager')
+			->disableOriginalConstructor()
+			->setMethods(['getUserGroups'])
+			->getMock();
+		$manager->expects($this->once())
+			->method('getUserGroups')
+			->willReturn([
+				'123' => '123',
+				'abc' => 'abc',
+			]);
+
+		/** @var \OC\User\User $user */
+		$user = $this->getMockBuilder('OC\User\User')
+			->disableOriginalConstructor()
+			->getMock();
+
+		$groups = $manager->getUserGroupIds($user);
+		$this->assertEquals(2, count($groups));
+
+		foreach ($groups as $group) {
+			$this->assertInternalType('string', $group);
+		}
+	}
+
 	public function testInGroup() {
 		/**
 		 * @var \PHPUnit_Framework_MockObject_MockObject | \OC_Group_Backend $backend