Лично я считаю, что отслеживание того, что Джон Доу является одним человеком, работающим как в Организации А, так и в Организации В, значительно усложняет ситуацию, не прибавляя большого значения в большинстве случаев . Если у вас нет четкой бизнес-причины понять в вашей модели, что Джон Доу из A такой же , что и Джон Доу из B, я бы от этого отказался. Поддержание вашей пользовательской базы данных во всех организациях, необходимость иметь дело с уникальными именами для всех организаций («Что вы имеете в виду, что уже есть Джон Доу? Это не я!») И наличие модели UI (например, спрашивая пользователя при входе в систему «хотите ли вы работать с данными А сегодня или с данными Б?», это добавляет существенные сложности.
Единственным недостатком моей рекомендации является то, что если вы используете сторонний аутентификатор, такой как OpenID или OAuth, то человек, имеющий несколько арендаторов, должен войти в систему с разными идентификаторами. Например. Я вхожу в систему с помощью Google OpenId. В результате я получаю данные A, но для работы с B мне нужно использовать учетную запись Twitter, потому что мой идентификатор Google уже привязан к A и только A.