News for hackers. Stuff that matters.
Re:Pick strong consistency whenever possible by jedberg on Monday January 15, 2018 @07:59PM (#16154965)
> Is anyone actually "failing open" for user authentication?

Netflix did for a while at least, may still do it. Worst case is that someone didn't pay for the month. The partitions happen rarely enough that it is better to give the user a good experience then not let a legit user in because of a network partition.

But the nice part is that this was a business decision, not a database decision.

Re:Pick strong consistency whenever possible by sk5t on Monday January 15, 2018 @09:11PM (#16155243)
Billing is not authentication, it's a facet of authorization. In any event, it would be pretty lousy if Netflix exposed account details, viewing history, etc., to loosely-authenticated accounts.
Re:Pick strong consistency whenever possible by jedberg on Monday January 15, 2018 @09:13PM (#16155254)
It was only for playing a movie. But that right there is a perfect example of why the logic should be at the business level and not the database level.

Allow them to watch a movie, but don't show billing details.

Re:Pick strong consistency whenever possible by taeric on Monday January 15, 2018 @09:25PM (#16155299)
This is still worded poorly. You aren't skipping authentication for these people. You just aren't doing it again.

In theater parlance, people in the theater are assumed authorized to be there by virtue of the entrance requiring authorization.

Right?

Similarly, this had little to do with consistency. Any client that makes a logout should assume the connections it has are no longer valid. To assume otherwise seems odd. Worse, to encourage relying on it.

Re:Pick strong consistency whenever possible by taeric on Monday January 15, 2018 @08:29PM (#16155079)
This sounds suspicious. They had other mechanics to guard against abuse than auth?

Worst case would be a renegade client that constantly used the open door, no?

Re:Pick strong consistency whenever possible by EgoIncarnate on Monday January 15, 2018 @09:01PM (#16155201)
I think this is a backend thing, so renegade client isn't an issue. The choice is: if the auth system was down, should the video system prevent everyone from seeing video, or let everyone in. If auth is down, some people will be able to watch when the shouldn't be able to, but only for the period of time while the auth system is down.
Re:Pick strong consistency whenever possible by taeric on Monday January 15, 2018 @09:22PM (#16155281)
Wouldn't this only allow recently authenticated people in? That is, connections at this point can check if there is an "authenticated" flag set. Assuming any basic expiration, the only people getting through this are those that have recently lost authorization. They were still authenticated. Right?
Re:Pick strong consistency whenever possible by EgoIncarnate on Monday January 15, 2018 @09:30PM (#16155318)
If auth is up, everything works as normal. If it's down let everyone in.

I'm envisioning something on the backend equivalent to:

OnGetVideoChunkRequest: if Authorized(User) or IsDown(AuthSystem) then SendVideoChunk

Re:Pick strong consistency whenever possible by taeric on Monday January 15, 2018 @10:07PM (#16155475)
Makes sense. Still surprises me that it wouldn't be a check more like "if not expiredOrAbsentAuthentication..."
Re:Pick strong consistency whenever possible by EgoIncarnate on Monday January 15, 2018 @10:39PM (#16155619)
I think you're overly focusing on details. Authorized(User) might check expiration or other things, but that isn't really relevant to the fail open vs fail close idea being discussed.
Re:Pick strong consistency whenever possible by taeric on Tuesday January 16, 2018 @12:00AM (#16155958)
I'm focused on connections. All systems should not have to connect back to the auth system to do their job. To that end, determining that a connection is trusted is not a weak versus strong consistency issue.

Now, checking a password in the system should be strongly consistent. In that I should be able to update my password and immediately use the updated password. Any other behavior will surprise me.

Re:Pick strong consistency whenever possible by EgoIncarnate on Tuesday January 16, 2018 @12:23AM (#16156027)
I wouldn't take my example too literally. The example was just to illustrate the basic logic for fail open and intentionally wasn't complete or detailed.

For purposes of discussing fail open, how that logic gets translated during implementation doesn't matter. Authorized(User) might be expiring tokens passed in via cookie. IsDown(AuthSystem) could just check some global flag that gets set by some watchdog service on a AuthSystem heartbeat. It could be something else. It doesn't matter because it's not relevant.

Having a direct connection to the AuthSystem or not is an implementation detail, not something that changes the idea "Netflix should fail open".

Re:Pick strong consistency whenever possible by taeric on Tuesday January 16, 2018 @12:48AM (#16156115)
I suspect it is just focusing on an example. So, to that, apologies if I am over diluting the conversation. Rereading my first post, I should have been clearer that I can agree with the point. Just don't know if auth is the domain I would pick, since it isn't a persisted thing, but a vouched one.

Similarly, anywhere you are doing idempotent guarantees, strong consistency is vital. Same for customer interaction. Reads following writes that a user made should almost certainly strive for strong consistency. If only to avoid confused customers.

Writes the system makes, though? Expect those to just fail in ways that will leave things inconsistent and constantly check for them.

Re:Pick strong consistency whenever possible by jedberg on Monday January 15, 2018 @09:12PM (#16155248)
It would only fail open if the connection from the auth service to the database was down. It's all server side.
Re:Pick strong consistency whenever possible by taeric on Monday January 15, 2018 @09:26PM (#16155303)
See my sibling response. This doesn't sounds like a consistency debate as much as a trusted connections debate.