DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
View Events Video Library
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Integrating PostgreSQL Databases with ANF: Join this workshop to learn how to create a PostgreSQL server using Instaclustr’s managed service

Mobile Database Essentials: Assess data needs, storage requirements, and more when leveraging databases for cloud and edge applications.

Monitoring and Observability for LLMs: Datadog and Google Cloud discuss how to achieve optimal AI model performance.

Automated Testing: The latest on architecture, TDD, and the benefits of AI and low-code tools.

Related

  • Why Is SaaS Compliance Important?
  • Unpacking the 'As-a-Service' Model
  • Single-Tenant vs. Multi-Tenant Architecture: Breaking Down the Key Differences
  • Applications and SaaS Plugins: Data Exfiltrations

Trending

  • AI for Web Devs: Project Introduction and Setup
  • AWS vs. Azure vs. Google Cloud: Comparing the Top Cloud Providers
  • The API-Centric Revolution: Decoding Data Integration in the Age of Microservices and Cloud Computing
  • Common Problems in Redux With React Native
  1. DZone
  2. Software Design and Architecture
  3. Integration
  4. A User, an Account and SaaS

A User, an Account and SaaS

Oren Eini user avatar by
Oren Eini
·
Sep. 02, 11 · News
Like (0)
Save
Tweet
Share
2.32K Views

Join the DZone community and get the full member experience.

Join For Free

users are almost always the simplest entity in your application. i mean, they usually just look like this:

image

how complex can something like that be? the answer is that as simple as something like that is, people still get it wrong, and quite often they get it horribly wrong.

just to set the proper context, i am talking about applications that provide software as a service.  for example, we may be building an accounting saas system.

a user logs into the system, and gets to see his invoices, outstanding bills, etc. this sounds simple enough to do, so what is the reason for this post? the reason is that while this may sound simple, it is also wrong .

the user is the account

let us introduce a few other semantics into the mix. i don’t want to do accounting, so i get pkida to do that for me. but, since my data is tied to my user account, i would have to provide her with my username and password. now, i am willing to let pkida do my accounting, but i am not going to give her my credentials.

this is usually the first stumbling block for systems where “user is an account” model. you want multiple users to manage the same account. a good example of a system that for a very long time failed to handle this properly is amazon aws platform. for a long time, there was your aws account and your username, and they were pretty much one and the same. consider the case of an it department that wanted to use amazon aws. until as recently as may 2011, they didn’t have any way to have multiple people manage the account, because they would need a single user/pass for the entire thing.

that is a huge problem for most scenarios. sharing user/pass means that you lost control on the account:

  • you don’t know who of the people who have access to the account made a particular change (no auditing).
  • you can’t use standard approaches for detecting fraud.
  • it is much harder to change the password.

accounts owns the users

the next step is to ask what happen when you have something like this:

image

now we have a way to have an account, and it can have multiple users. and all is good in the world, right?

not so fast. what happens when it turns out that pkida isn’t just working for me, but actually manages the accounting for several companies, each of them is using the saas accounting package. in order to use the software, pkida would now have to have a separate user account for every customer she manages. that sucks:

  • it may mean that you charge her for each account (she will go to a competitor).
  • some users would show very little activity.
  • the amount of information you will have to do things like cross selling or targeted offers would be far reduced.
  • it is annoying for the users.

a much better option is a total separation of users and accounts. a user can have several accounts (usually with a default one selected), and they can use a single login to access each, and each account may have multiple users associated with it.

this brings to question how you are going to handle charging people, but that is an issue for another post, and another day…

SaaS

Published at DZone with permission of Oren Eini, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • Why Is SaaS Compliance Important?
  • Unpacking the 'As-a-Service' Model
  • Single-Tenant vs. Multi-Tenant Architecture: Breaking Down the Key Differences
  • Applications and SaaS Plugins: Data Exfiltrations

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends: