News for hackers. Stuff that matters.
Re:Instead of "auth", we should say "permissions" and "login" by aeonik on Monday May 27, 2024 @12:22PM (#40492213)
"Authorize" and "Authenticate" are excellent words. They go back to medieval times and haven't changed meaning too much.

Everybody knows what an "authority" is. It means they have power or capability.

Everybody knows what authentic means. Something that is proven to be genuine.

The difference between the two concepts, as they are used in crypto systems are specific, important to get right, and also inherently intertwined, confusing, and subtle. I'm skeptical that changing the words would help.

It's one of the many reasons we have the saying, "Don't roll your own crypto."

Trust and verification are just hard problems.

Re:Instead of "auth", we should say "permissions" and "login" by ghnws on Monday May 27, 2024 @12:59PM (#40492549)
Having two almost identical terms that mean completely different things is not a very good idea. Also here you are explaining what the words mean, when "login" and "permission" are immediately obvious. Most people don't speak english natively either.
Re:Instead of "auth", we should say "permissions" and "login" by 4death4 on Monday May 27, 2024 @01:03PM (#40492594)
I don’t really consider making an API call as “logging in”. The term sounds really out of place other than in a few specific contexts.
Re:Instead of "auth", we should say "permissions" and "login" by Too on Monday May 27, 2024 @01:29PM (#40492822)
The term “Identify” is a lot better in this regard.

It’s already universally used in IAM, where the other half of the puzzle is also clear and free from ambiguity: “Access”.

Re:Instead of "auth", we should say "permissions" and "login" by asalahli on Monday May 27, 2024 @02:24PM (#40493245)
Identification and authentication are different, though. You identify yourself to a website as a specific user (e.g. using a username) and the website in turn authenticates your claim, i.e. verifies that you are in fact the user you claim to be (e.g. using that user's password).
Re:Instead of "auth", we should say "permissions" and "login" by amne on Monday May 27, 2024 @02:49PM (#40493463)
If you go that route .. your OIDC provider authenticates your claim. The website just trusts some specific OIDC authorities which you must use to create your identity.
Re:Instead of "auth", we should say "permissions" and "login" by asalahli on Monday May 27, 2024 @08:01PM (#40496004)
If the website in question is using OIDC, sure.
Re:Instead of "auth", we should say "permissions" and "login" by zer00eyz on Monday May 27, 2024 @02:16PM (#40493171)
Identity/identify may or may not have anything to do with Login, or Authentication...

KYC (know your customer) are about removing the ambiguity between you user and their identity....

Re:Instead of "auth", we should say "permissions" and "login" by recursive on Monday May 27, 2024 @02:35PM (#40493330)
What could be a difference between identification and authentication? In my understanding they are completely synonymous. I frequently use an IdP (identity provider) to authenticate for web applications.
Re:Instead of "auth", we should say "permissions" and "login" by duncan-donuts on Monday May 27, 2024 @02:56PM (#40493539)
I think authentication is about proof of identity. Identity can mean a lot of things imo. Applications identify me all the time without me giving them any proof of who I am. This happens in meatspace all the time too. People project identity and we make assumptions about what we observe. We don’t necessarily ask them to verify this identify through mutually agreed upon terms.
Re:Instead of "auth", we should say "permissions" and "login" by zer00eyz on Monday May 27, 2024 @05:36PM (#40494983)
Know your customer is something that started in banking and is leaking everywhere.

Identity is who you really are. Be that you as an individual or as a corporation.... In the case of your bank they have a copy of your ID, your SSN, for them identity is what established the account and auth lets you work with it.... AWS might know some members of your company (either by corporate or individual card) but might not know your identity (as an individual) and yet you can still authenticate, because you have been authorized by an identified customer. I can transact with crypto as an authenticated user and NOT be identified.

Re:Instead of "auth", we should say "permissions" and "login" by recursive on Tuesday May 28, 2024 @10:20AM (#40500990)
In some circles "identity" is a term of art. For instance an identity provider maps credentials to user accounts. Those may or may not map to a government-numbered human.
Re:Instead of "auth", we should say "permissions" and "login" by nedt on Tuesday May 28, 2024 @09:05AM (#40500368)
KYC is not so much about removinh ambiguity. It's about risk mitigation and proof. Not only about a specific user, but also the connections of a company or a person. There is also a lot of rules and laws behind against AML and PEP checks.
Re:Instead of "auth", we should say "permissions" and "login" by jbverschoor on Monday May 27, 2024 @01:47PM (#40492958)
Access doesn’t cover everything though. But identify seems good
Re:Instead of "auth", we should say "permissions" and "login" by jonplackett on Monday May 27, 2024 @02:06PM (#40493090)
I think they mean use both - identity in place of login/authenticate and access in place of auth
Re:Instead of "auth", we should say "permissions" and "login" by jbverschoor on Monday May 27, 2024 @02:59PM (#40493570)
Yeah, but access to me feels like access to records. Not necessarily permissions to do certain actions (in general or to certain records)

Iirc, Java or J2EE used “Principal”, which I found super confusing

Re:Instead of "auth", we should say "permissions" and "login" by lupire on Monday May 27, 2024 @07:40PM (#40495870)
Principal is Identity not access.
Re:Instead of "auth", we should say "permissions" and "login" by adolph on Monday May 27, 2024 @01:49PM (#40492972)
And the third half, “management” verbalizes the action therein.

Also, IAM has a cryptic assertion of ultimate authority: In Hebrew, . . . hayah carries the added weight of representing God himself: Yahweh, “I am.” [0]

https://hebraicthought.org/meaning-of-gods-name-i-am-exodus/

Re:Instead of "auth", we should say "permissions" and "login" by rwoerz on Monday May 27, 2024 @01:17PM (#40492710)
Indeed. "Logging in" implies some kind of long lasting session. And logging in conceptually only requires "identification" (e.g. via a username) but not necessarily "authentication" (e.g. via a password)
Re:Instead of "auth", we should say "permissions" and "login" by nmz on Monday May 27, 2024 @01:33PM (#40492859)
Identification is not necessarily via a username, people can identify you via just knowing how you look or your voice, the method doesn't matter.
Re:Instead of "auth", we should say "permissions" and "login" by jagged-chisel on Monday May 27, 2024 @02:17PM (#40493182)
IMO…

To “log in” is to convert the username/password pair (or API key, or whatever) into a smaller token with an expiration. Doesn’t matter of it’s put in a cookie in my browser, held in memory by some other API client, etc.

Aside: Why bother even doing that? Because every time you transmit the credential, there’s the possibility of leaking. We would rather leak the token that has an expiration.

Re:Instead of "auth", we should say "permissions" and "login" by mistercow on Monday May 27, 2024 @02:03PM (#40493073)
The wild thing is that they’re apparently from different etymologies. “Authorization” comes from “auctor” in Latin, meaning “leader” or “author”, whereas “authentication” originally comes from the Greek “auto” meaning “self”. There probably was some cross influence that brought them into line though.
Re:Instead of "auth", we should say "permissions" and "login" by lupire on Monday May 27, 2024 @07:42PM (#40495883)
I'm going to call IAM "Classics", with "Latin" for identity and "Greek" for access.
Re:Instead of "auth", we should say "permissions" and "login" by mepiethree on Monday May 27, 2024 @01:12PM (#40492682)
I don’t think they are almost identical, they just have the same prefix. “Login” and “permission” each have the same problem: “login” is very similar to “logging”, and “permission” shares a prefix with “persistence” (or permanent). Ultimately software engineering is a broad enough field that we will necessarily have to use similar words to describe the many, many concepts
Re:Instead of "auth", we should say "permissions" and "login" by pjerem on Monday May 27, 2024 @01:16PM (#40492708)
The issue is that they have the same prefix AND that unfortunately this prefix is used to abbreviate both words.

What does the "auth" module ?

Re:Instead of "auth", we should say "permissions" and "login" by diego_sandoval on Monday May 27, 2024 @02:14PM (#40493153)
We shouldn't use that abbreviation, then.
Re:Instead of "auth", we should say "permissions" and "login" by lsaferite on Tuesday May 28, 2024 @09:33AM (#40500599)
Given that _AuthN_ and _AuthZ_ are in common technical use, I would expect something handling _Auth_ to work on both _AuthN_ and _AuthZ_.
Re:Instead of "auth", we should say "permissions" and "login" by ninininino on Tuesday May 28, 2024 @10:41AM (#40501188)
me, reading thread on hacker news, where a different team that used to build the auth service just transferred ownership of the service to my team, which builds the authz service....
Re:Instead of "auth", we should say "permissions" and "login" by bigyikes on Monday May 27, 2024 @02:44PM (#40493415)
Not a good analogy.

“Permission” and “persistence” have the same prefix but entirely different semantics. They also occur more commonly in everyday life.

AuthN and AuthZ are similar in in spelling, appear in similar contexts, and are less colloquial, making the distinction a lot less clear.

There’s a reason many junior devs use them interchangeably without knowing better.

Re:Instead of "auth", we should say "permissions" and "login" by mepiethree on Monday May 27, 2024 @11:46PM (#40497141)
Okay fair enough about it not being a perfect analogy.

I think the reason junior devs get them confused is that many junior devs are never taught anything about either in school. But then you just tell the junior dev that they mean different things and in my experience they only need to be told that once.

Ultimately I think it’s fine to use vocabulary.

Re:Instead of "auth", we should say "permissions" and "login" by croes on Monday May 27, 2024 @01:16PM (#40492707)
But authentication and authorization are often used in the same context where confusion is lethal.
Re:Instead of "auth", we should say "permissions" and "login" by coldtea on Monday May 27, 2024 @02:38PM (#40493366)
Why would it be "lethal"?

As a dev you're either building or hooking up to either or both of them. And you know what each requires you to build / hook up to.

As a user, you just care "I put my login/password/api key here, and I get the capability to do several things in that webpage/service/etc". Both auth and the other auth are handed for you.

Re:Instead of "auth", we should say "permissions" and "login" by croes on Monday May 27, 2024 @03:51PM (#40494019)
Ever heard of a hyperbole?

And if the other dev made an error and confused authorization and authentication you have a problem.

Stupider mistakes have been made and it is a sign of overconfidence if you think you are immune to them.

Re:Instead of "auth", we should say "permissions" and "login" by coldtea on Tuesday May 28, 2024 @02:53AM (#40498077)
>Ever heard of a hyperbole?

Yes, primarily I've heard that it is to be avoided in technical discussions...

Re:Instead of "auth", we should say "permissions" and "login" by numpad0 on Tuesday May 28, 2024 @06:37AM (#40499283)
The real problem is people don't have clear differentiation between authN and authZ. You being you doesn't mean you or they consent to something, those are separate, though very close.

Hence the confusion and ambiguous shorthand "auth". You auth and gets everything. You fail to auth and you don't have access. That covers ~80% of any authentication-authorization-accounting systems use cases, and that allows people to be care-free about differences.

Re:Instead of "auth", we should say "permissions" and "login" by bru on Monday May 27, 2024 @01:30PM (#40492833)
That's because they share the same root auto-, i.e. "self". Because they're related concepts...
Re:Instead of "auth", we should say "permissions" and "login" by yencabulator on Tuesday May 28, 2024 @12:21PM (#40502411)
Apparently not.

> “Authorization” comes from “auctor” in Latin, meaning “leader” or “author”

https://news.ycombinator.com/item?id=40493073

Re:Instead of "auth", we should say "permissions" and "login" by inopinatus on Monday May 27, 2024 @03:22PM (#40493741)
"login" refers to the record of access¹, not the access itself, so it is more properly associated with audit. This dates from the early days² of time-sharing systems when you didn't need a password, you were just saying hi to the computer.

__________

[1] Derived from the signing of a ship's logbook³ when coming aboard.

[2] A few decades ago.

[3] The logbook originally⁴ recorded navigational data and is named for instruments measuring speed through water⁵, of which the simplest is literally throwing roped wooden logs off the stern and counting the knots on the line paying out per interval⁶.

[4] Doubtless some bright-eyed young hornblower with a glittering future career as an admiralty archivist realised that log-structured records could be generalised usefully to all timestamped event and measurement capture, which is why your syslog is full of crap.

[5] Consequently any vessel, maritime or otherwise, measures its speed through the medium in knots. The Enterprise NCC-1701-D, for example, tops out ca.146 megaknots under impulse engine.

[6] It follows by transitive etymology that you may use the term "knots" to edify and delight your colleagues when referring to the rate of creation of user sessions.

Re:Instead of "auth", we should say "permissions" and "login" by joemi on Monday May 27, 2024 @04:07PM (#40494164)
offtopic, but: I think when your footnotes themselves need footnotes, there's probably a clearer way to write what you wanted to write. Jumping through multiple levels of nested footnotes is fairly hard to read, at least for me.
Re:Instead of "auth", we should say "permissions" and "login" by inopinatus on Monday May 27, 2024 @04:12PM (#40494208)
Indeed. They are log-structured.
Re:Instead of "auth", we should say "permissions" and "login" by mrgoldenbrown on Monday May 27, 2024 @06:00PM (#40495163)
It's most likely not that they needed footnoted footnotes, rather that they wanted them and structured their post on purpose to create them.
Re:Instead of "auth", we should say "permissions" and "login" by gtirloni on Monday May 27, 2024 @01:19PM (#40492739)
what's the difference between login and logon?
Re:Instead of "auth", we should say "permissions" and "login" by interbased on Tuesday May 28, 2024 @01:45AM (#40497685)
I believe “login” is the process of actually logging in, or the set of credentials used to log in. “Logon” refers to the act of connecting to something. They’re often used interchangeably, though.
Re:Instead of "auth", we should say "permissions" and "login" by jknoepfler on Monday May 27, 2024 @03:55PM (#40494052)
I disagree. To authenticate something is to challenge it to prove its identity. Authentication is much broader in scope than "login," even within the narrow domain of computer science. JWT signing, domain certs and so forth fall under the "authN" header and use the same cryptographic tools and techniques... even many forms of user authN don't have a "login" flow.

Why would we choose "login" - which is more of a special case than the norm to describe something we already have a precise term for?

Re:Instead of "auth", we should say "permissions" and "login" by rockemsockem on Monday May 27, 2024 @02:31PM (#40493305)
You're saying that they are almost identical because they share the first 4 letters.... That's a pretty low bar.
Re:Instead of "auth", we should say "permissions" and "login" by popalchemist on Monday May 27, 2024 @06:19PM (#40495298)
Most people literally do speak English

https://www.google.com/search?q=most+popular+language+in+the...

but the rest of your point is dead on.

Re:Instead of "auth", we should say "permissions" and "login" by amrangaye on Monday May 27, 2024 @06:30PM (#40495386)
Sorry I don’t understand - the link you posted shows that “most people” actually speak mandarin and Spanish?
Re:Instead of "auth", we should say "permissions" and "login" by bigtunacan on Monday May 27, 2024 @07:06PM (#40495639)
Parent provided a poor link by just using a Google search results.

https://www.visualcapitalist.com/top-languages-spoken-in-the...

English is not the most popular 1st spoken language, but it is the most spoken language overall.

Re:Instead of "auth", we should say "permissions" and "login" by topaz0 on Monday May 27, 2024 @11:03PM (#40496950)
1.5B speakers is still not "most people", even if it is the most spoken language. To be clear none of this matters, but there is nothing more irritating than seeing a nitpick of a nitpick that is still wrong.
Re:Instead of "auth", we should say "permissions" and "login" by amrangaye on Tuesday May 28, 2024 @06:28PM (#40506284)
That makes more sense. Thanks.
Re:Instead of "auth", we should say "permissions" and "login" by nulbyte on Monday May 27, 2024 @06:48PM (#40495513)
If you think two different words having different meanings is difficult, wait 'til you hear about contranyms! English is full of words like these, where context is needed to understand the meaning.

If something is fast, it moves quickly or not at all. Cocktails can be garnished, but so can wages. Sales or trade of a product could be sanctioned by one country, but sanctioned by another.

I generally think it is a good thing to communicate clearly. Sometimes that means using words differently to explain something. Other times, that means using words the same way as others. I think this is a case of the latter.

Also, I think the idea of "native speaker" is a bit of a red flag. There are plenty of people that speak English from birth but are utterly unintelligible, and there are plenty of people that speak English as a second language who speak more clearly than those.

Re:Instead of "auth", we should say "permissions" and "login" by JadeNB on Monday May 27, 2024 @09:17PM (#40496445)
Something can be held fast, but I don't think it is usual English to say that something fixed is fast.

Garnishment of wages is garnisheeing, though here I'll agree "garnishing" seems to be acceptable too.

Re:Instead of "auth", we should say "permissions" and "login" by rout39574 on Monday May 27, 2024 @09:44PM (#40496590)
Something "made fast" is perfectly reasonable usage for tying it in place.
Re:Instead of "auth", we should say "permissions" and "login" by Riseed on Monday May 27, 2024 @10:16PM (#40496754)
Yep. And something "made fast" is also perfectly reasonable usage for vastly upgrading its speed. "Fast" can absolutely be a contronym.
Re:Instead of "auth", we should say "permissions" and "login" by wolfram74 on Tuesday May 28, 2024 @09:17AM (#40500455)
I think two-word contranyms are more concrete, like "fight together".

Oversight is a less ambiguous example of a single-word contranym.

Re:Instead of "auth", we should say "permissions" and "login" by benwills on Monday May 27, 2024 @09:49PM (#40496613)
I've heard "fast" as a contranym to "moving quickly," referenced as "to fast" or "fasting." ie: not eating at all.

Edited to add: Sticking with the context of food, "fasting from food" contradicts someone being a "fast eater."

Re:Instead of "auth", we should say "permissions" and "login" by riehwvfbk on Tuesday May 28, 2024 @09:09AM (#40500397)
"Fasten your seatbelt" doesn't usually mean "twirl it wildly above your head".
Re:Instead of "auth", we should say "permissions" and "login" by matt-attack on Tuesday May 28, 2024 @12:22AM (#40497289)
When I'm at a restaurant and I don't see anything I like, I just order something "off the menu".

When I'm at a restaurant and I like everyone I see, I order something "off the menu".

Re:Instead of "auth", we should say "permissions" and "login" by balex on Tuesday May 28, 2024 @03:32AM (#40498329)
So essentially you order off the menu based on your surroundings?
Re:Instead of "auth", we should say "permissions" and "login" by scoot on Tuesday May 28, 2024 @12:43PM (#40502679)
The first is "off-menu", and the second (for which I don't think you meant "everyone") is "from the menu". So, no...
Re:Instead of "auth", we should say "permissions" and "login" by fshbbdssbbgdd on Tuesday May 28, 2024 @05:20PM (#40505738)
People really do say they “ordered something off the menu” when they found the item on the menu. I believe I could usually distinguish the two meanings if I heard a recording. If the item is not on the menu, the word “off” would be stressed.
Re:Instead of "auth", we should say "permissions" and "login" by averageRoyalty on Friday May 31, 2024 @05:26PM (#40540446)
In Australian english, "off the menu" is perfectly normal vernacular in non formal settings.
Re:Instead of "auth", we should say "permissions" and "login" by krakrnews on Tuesday May 28, 2024 @03:10AM (#40498190)
I sanction this comment.
Re:Instead of "auth", we should say "permissions" and "login" by thfuran on Tuesday May 28, 2024 @08:14AM (#40499920)
>wait 'til you hear about contranyms! English is full of words like these, where context is needed to understand the meaning.

It is, unfortunately, possible for more than one thing to be bad at a time.

Re:Instead of "auth", we should say "permissions" and "login" by BobaFloutist on Tuesday May 28, 2024 @11:37AM (#40501797)
Sanction and nonplus are the most insane examples, because sometimes it's literally not possible to figure out from the context which of the two opposite meanings is intended.
Re:Instead of "auth", we should say "permissions" and "login" by janalsncm on Tuesday May 28, 2024 @09:19PM (#40507266)
> Also, I think the idea of "native speaker" is a bit of a red flag

I assume you mean “red herring”. Red flag just means a sign that something is wrong.

Re:Instead of "auth", we should say "permissions" and "login" by Spooky23 on Monday May 27, 2024 @07:09PM (#40495664)
In the case of “auth”, it stands for two related but often separately managed operational processes.

From an end user perspective, auth is the problem. Users can’t determine what is login vs permission. If non native speakers can’t handle the distinction, it’s a valuable lesson to learn.

Re:Instead of "auth", we should say "permissions" and "login" by kenjackson on Monday May 27, 2024 @08:04PM (#40496019)
Except then I won't be able to flip the bozo bit on people who confuse authentication for authorization in conversation...
Re:Instead of "auth", we should say "permissions" and "login" by voxelghost on Monday May 27, 2024 @08:50PM (#40496291)
'permission' might be ok, but 'login' is very imprecise and much more ill defined than authenticate.
Re:Instead of "auth", we should say "permissions" and "login" by ehnto on Monday May 27, 2024 @10:08PM (#40496700)
If words being similar is truly an issue we would have vastly different languages.

Related words for related concepts is very normal, and if you are a professional in this space it's the least we can do to recognize the difference. We aren't astronauts, we have the time to figure it out.

Language learners already learned a second language, they have the skills to figure this out. At least it's not a homonym.

Re:Instead of "auth", we should say "permissions" and "login" by bigstrat2003 on Monday May 27, 2024 @11:56PM (#40497180)
> Most people don't speak english natively either.

This is a problem with only one solution: continue to improve one's skill with the language. You can't solve this by choosing different terms, because then something else will be the "this is confusing to non-native speakers" hangup. You can whack those moles until the day you die and you'll never get them all.

Re:Instead of "auth", we should say "permissions" and "login" by renegade-otter on Tuesday May 28, 2024 @07:01AM (#40499444)
Well, in that case, we are all going to have to talk about the difference between a "product manager" and a "project manager" ;)
Re:Instead of "auth", we should say "permissions" and "login" by chipdart on Tuesday May 28, 2024 @10:14AM (#40500947)
> Having two almost identical terms that mean completely different things is not a very good idea.

What's the problem of telling apart the task of authenticating users from authorizing their access?

There's already identification and authorization (IAM) which is mostly a backronym.

Re:Instead of "auth", we should say "permissions" and "login" by swombat on Tuesday May 28, 2024 @10:24AM (#40501028)
Identification & Authorisation are a better pairing here than Authentication and Authorisation.

This way, if someone says "Oh yeah we have an auth module on this site" you don't need to immediately disambiguate the statement.

But then "auth" itself is ambiguous. So it might make sense to get rid of the lot. "Identification" is a good word for the first. Perhaps "Permissions" for the second?

Re:Instead of "auth", we should say "permissions" and "login" by yencabulator on Tuesday May 28, 2024 @12:19PM (#40502387)
authn -> ident

authz -> perm

So much clearer.

Re:Instead of "auth", we should say "permissions" and "login" by funcDropShadow on Wednesday May 29, 2024 @05:18AM (#40510016)
Login is not obvious. A login is usual a process step before the main part of the process. That does not fit to an API call which is authenticated using a token.
Re:Instead of "auth", we should say "permissions" and "login" by OvbiousError on Monday May 27, 2024 @03:44PM (#40493939)
For me as a non-native English speaker, "authorize" and "authenticate" are always pretty unclear as to what exactly they mean in a security context. I don't use it enough for it to stick. I'll actually try to remember "login" and "permissions" as shorthand for getting a feel of what they are. And yes, I've never dug deep in security code/systems, but doesn't that make this even more of a problem instead of less. I should be able to understand what these concepts by themselves want to achieve without having a deep understanding of the technical details or coming into contact with it on a regular basis.
Re:Instead of "auth", we should say "permissions" and "login" by oreilles on Monday May 27, 2024 @03:49PM (#40494004)
Think of it in a real life context instead of a software context. Let's say you want to go inside a building and there's a bouncer at the entry. By presenting him your ID, he'll be able to authenticate you (determine who you are). Only then, will he decide to authorize you in, or not - depending of your right to do so.
Re:Instead of "auth", we should say "permissions" and "login" by deanishe on Monday May 27, 2024 @05:38PM (#40495000)
The problem here, I think, is the words, not the concepts.

Like remembering when it's spelled "stationary" and when "stationery".

"Still" and "paper" are easier to remember.

Re:Instead of "auth", we should say "permissions" and "login" by kaashif on Monday May 27, 2024 @08:59PM (#40496339)
Stationery means more than just paper. I don't think there are any good synonyms for stationery, it's the only word with that exact meaning.

Same problem when someone wants to substitute "login" for "authenticate" - not synonyms.

Re:Instead of "auth", we should say "permissions" and "login" by barrkel on Monday May 27, 2024 @06:35PM (#40495414)
The problem is the similarity of the words, not understanding the concepts.
Re:Instead of "auth", we should say "permissions" and "login" by Control8894 on Tuesday May 28, 2024 @01:53AM (#40497733)
Is it? Or is the problem the similarity of the concepts?
Re:Instead of "auth", we should say "permissions" and "login" by numpad0 on Tuesday May 28, 2024 @07:10AM (#40499515)
imo it's stupid notion that authentication and authorizations are completely different concepts that were infuriatingly given similar spellings.

We give oranges and apples those distinct sounds, while giving blueberries and strawberries very similar names. It's just makes no sense that we should change the latter two so no one mixes them up trying to sprinkle some on yogurt.

Re:Instead of "auth", we should say "permissions" and "login" by barrkel on Monday May 27, 2024 @06:34PM (#40495410)
They're so unclear that HTTP error codes got them confused. 401 Unauthorized usually actually means Unauthenticated, while 403 Forbidden means Unauthorized.

I'm a native speaker and I need to pause for a few hundred milliseconds just to be sure I'm using the right one in a sentence.

Re:Instead of "auth", we should say "permissions" and "login" by Jensson on Tuesday May 28, 2024 @12:45AM (#40497402)
> Unauthorized usually actually means Unauthenticated

What does "unauthenticated" even mean here? You aren't logged in, not logged in isn't a state of "unauthenticated", you haven't given any credentials meaning currently you don't have any authority, so unauthorized makes sense. You can have several sets of credentials and switch between them, not giving them any isn't being in an unauthenticated state its a different thing, and using "unauthorized" in that case makes sense.

Re:Instead of "auth", we should say "permissions" and "login" by Control8894 on Tuesday May 28, 2024 @01:51AM (#40497719)
> What does "unauthenticated" even mean here?

That you're not logged in.

> You aren't logged in, not logged in isn't a state of "unauthenticated"

What? Yes it is.

> you haven't given any credentials meaning currently you don't have any authority, so unauthorized makes sense

Ok? Yes, if you are unauthenticated (and authentication is required), then you are also unauthorized. However, the error code is not communicating that you are unauthorized; it is communicating that you need to authenticate, thus unauthenticated is more appropriate.

> You can have several sets of credentials and switch between them

Ok?

> not giving them any isn't being in an unauthenticated state its a different thing

That is exactly what being in an unauthenticated state means. What would you define to be an unauthenticated state otherwise?

Re:Instead of "auth", we should say "permissions" and "login" by RiverCrochet on Tuesday May 28, 2024 @07:06AM (#40499476)
While we're at it, let's change 404 from "file not found" to "nothing here." The stream thrown back at you in response to an HTTP request is often not really a file.
Re:Instead of "auth", we should say "permissions" and "login" by dbsmith83 on Tuesday May 28, 2024 @10:33AM (#40501110)
Unix would like a word (file) with you :)
Re:Instead of "auth", we should say "permissions" and "login" by withinboredom on Tuesday May 28, 2024 @10:51AM (#40501277)
401 may or may not be unauthenticated, but it doesn't necessarily mean that. It just means that you do not have the authority to do whatever you were trying to do. A 401 implies that you need to gain authority to do what you want to do and try again[1].

A 403 means that it is simply forbidden. You cannot gain the authority to do what you want to do[2] and has nothing to do with credentials, no matter how nicely you ask.

For example, getting a project in your organization may return 401 (simply ask an admin for access), while getting a project in a different organization may return a 403 (you cannot get access to other organizations, ever).

1: https://www.rfc-editor.org/rfc/rfc9110#name-401-unauthorized

2: https://www.rfc-editor.org/rfc/rfc9110#name-403-forbidden

Re:Instead of "auth", we should say "permissions" and "login" by clwg on Monday May 27, 2024 @08:39PM (#40496234)
I think of them like this: Authentication is the act of verifying that you are who you say you are, generally with something you know (password) and ideally with something you have (token, authenticator app, etc.). This lets you log in.

Once you log in, you are granted authorization for certain tasks. This could be rights to an individual record or column, or it could be administrative privileges within an app. It's not involved in determining who you say you are; it authorizes you to access things based on who you are (from the act of authenticating).

That's the way I understand those two terms and their practical applications.

Re:Instead of "auth", we should say "permissions" and "login" by cwilby on Monday May 27, 2024 @01:41PM (#40492916)
Saw the headline, found your comment within two seconds, exhaled with relief.

Every time a cohesive pair of words is redefined, a new JS framework is born.

Re:Instead of "auth", we should say "permissions" and "login" by OJFord on Monday May 27, 2024 @02:28PM (#40493278)
Yeah me too, but then I actually read the (very short) article, which immediately addresses that and not much else.

Better title would be 'instead of authz & authn ...' to make that clear, because it does just sound like they haven't heard of the concept at first.

Re:Instead of "auth", we should say "permissions" and "login" by zzo38computer on Monday May 27, 2024 @04:26PM (#40494343)
I think you are right, although sometimes other words may be better in some contexts. Also, "auth" can still be used if it is clear from the context or if you really mean both together, since sometimes they do go together and in that case "auth" can make sense. If it does not, then you can use full words such as "authorization", "authentication", etc.
Re:Instead of "auth", we should say "permissions" and "login" by hackernewds on Monday May 27, 2024 @12:55PM (#40492511)
Auth means authentication or authorization? that's the dilemma
Re:Instead of "auth", we should say "permissions" and "login" by theptip on Monday May 27, 2024 @01:01PM (#40492565)
The industry has used “authz” and “authn” to disambiguate for decades.
Re:Instead of "auth", we should say "permissions" and "login" by cdelsolar on Monday May 27, 2024 @01:10PM (#40492658)
I’ve been working in this industry for decades and this is the first time I made that connection…
Re:Instead of "auth", we should say "permissions" and "login" by foobazgt on Monday May 27, 2024 @01:47PM (#40492956)
I can second GP.

I have always heard and used authz and authn (pronounced auth-z and auth-n). Bare "auth" typically was used to mean both, but IAM was more clear for that in specific contexts. E.G. you might say someone "authed" to indicate both authentication and authorization, and you might have an IAM team that handles both authentication and authorization.

FWIW, I lead an IAM team.

Re:Instead of "auth", we should say "permissions" and "login" by bostik on Monday May 27, 2024 @01:41PM (#40492920)
The distinction was already present in Apache2 configs in early 2000's, although there authentication was "auth", and "authorisation" was authz.

Real travesty came from OAuth. A system designed to handle authorisation was named after the term for authentication.

Re:Instead of "auth", we should say "permissions" and "login" by recursive on Monday May 27, 2024 @02:36PM (#40493343)
But then it mostly ended up getting used for authentication anyway, so maybe it was ok.
Re:Instead of "auth", we should say "permissions" and "login" by mgkimsal on Monday May 27, 2024 @01:38PM (#40492896)
you're not alone.
Re:Instead of "auth", we should say "permissions" and "login" by erik_seaberg on Monday May 27, 2024 @01:59PM (#40493048)
I've seen https://en.wikipedia.org/wiki/AAA_(computer_security) because authentication, authorization, and accounting (audit trails) need to go together so often. You need to know who they really are and whether they're abusing the system.
Re:Instead of "auth", we should say "permissions" and "login" by croes on Monday May 27, 2024 @01:13PM (#40492690)
One type and you have a problem.

Maybe it's better to use less similar words if it's security related.

Re:Instead of "auth", we should say "permissions" and "login" by mgkimsal on Monday May 27, 2024 @01:58PM (#40493036)
How are those pronounced?
Re:Instead of "auth", we should say "permissions" and "login" by giaour on Monday May 27, 2024 @02:24PM (#40493242)
You pronounce the last letter as a second syllable: authn is "auth-in" and authz is "auth-zee" (probably "auth-zed" in non-American English).
Re:Instead of "auth", we should say "permissions" and "login" by croes on Tuesday May 28, 2024 @04:38AM (#40498702)
And then you someone who uses "auth" for AUTHentication and and authn for AUTHorizatioN.

authn and authz are only clear if used as pair.

Re:Instead of "auth", we should say "permissions" and "login" by selecsosi on Monday May 27, 2024 @01:01PM (#40492566)
AuthN and AuthZ are appropriate and succinct ways to express the concerns when brevity is required
Re:Instead of "auth", we should say "permissions" and "login" by croes on Monday May 27, 2024 @01:12PM (#40492679)
So one wrong letter or wrong auto complete and we have the wrong meaning.

In security, anything that is less prone to error is good, so words that are hard to confuse or misspell are good.

Re:Instead of "auth", we should say "permissions" and "login" by selecsosi on Monday May 27, 2024 @01:43PM (#40492933)
Why would you type the wrong letter when you mean the other one? Authentication means proving what something says it is, authorization is allowing someone to do something.

The concepts are different so it's not like a dial you are turning to make a measurement, the terms are for different domains

Re:Instead of "auth", we should say "permissions" and "login" by deathanatos on Monday May 27, 2024 @01:52PM (#40492999)
While I also agree that authn or authz are perfectly clear,

> Why would you type the wrong letter when you mean the other one?

Really? Ignorance, laziness, rushing, fatigue, simple mistakes, etc.

What I think is worse is more letters doesn't save you. I've had some conversations where it has gone like 2–3 round trips before the other end realizes that "not" means not, and they mean … the other way.

Re:Instead of "auth", we should say "permissions" and "login" by baronvonsp on Monday May 27, 2024 @02:33PM (#40493314)
These are widely-used industry terms that have been used for decades. If that was a problem, surely we would have seen it by now?

Replacing terms - that have been around so long that many systems' behaviors map to them closely - with new terms that don't quite overlap seems wildly more likely to create ambiguity and confusion.

Re:Instead of "auth", we should say "permissions" and "login" by bigstrat2003 on Monday May 27, 2024 @11:59PM (#40497197)
Unfortunately that is no obstacle for some - see for example the misguided efforts to replace "master/slave" or "blacklist/whitelist". Those terms are similarly clear and not problematic, but there are people who are insistent that they must be replaced.
Re:Instead of "auth", we should say "permissions" and "login" by Jach on Monday May 27, 2024 @03:41PM (#40493907)
No, it is not the case that anything that is less prone to error is good.
Re:Instead of "auth", we should say "permissions" and "login" by croes on Monday May 27, 2024 @03:46PM (#40493963)
Strange take on errors.

Less error prone means less errors means better results. Better results are good.

Re:Instead of "auth", we should say "permissions" and "login" by Jach on Monday May 27, 2024 @04:40PM (#40494468)
Getting fewer errors does not mean better results -- sorry, I don't really want to continue this conversation of answering vastly general assertions backed by nothing with counter-assertions backed by nothing. My bad, since I started this way. The real objection I have that takes longer to articulate is that this logic is way too simplistic, broad, and worthless.

I'll try to articulate a bit though, but it probably needs expanding into more than a comment to have a chance at persuasion. When you start trying to derive logic chains that conclude in good, leading you to further conclude other things are bad, and base your decision making on what's good/bad in these chains, you've made a mistake. Engineering should be focused on trade-offs, not some binary and local good/bad. Engineering should be focused on measurements, not platonic qualities like "good". The world isn't so coarsely binary. So what if your results are better? Are they accomplishing something good down the line, like being better at [insert something you find morally objectionable]? And given we have limited resources, is the amount something is better worth expending the effort on it vs. something else, or even worth it relative to a measured good-enough steady state? Does the local change meaningfully impact the overall system at all? (You may be familiar with a semi-famous (around HN) article "The optimal amount of fraud is non-zero", if not, I recommend it.) Lastly, you need to actually look at what kind of errors there are, how they surface, when they surface (e.g. during software development, during design and prior to any code, during a test phase, or discovered by the end user), and their consequences for surfacing. You need to analyze whether something is actually less error prone or is just good at hiding its errors and continuing on. You need to look at whether the errors are loud or subtle.

All this high level chatter is of course further pointless in this specific concrete context. As someone already pointed out, it's exceedingly unlikely for a developer to confuse authN and authZ in practice for any significant duration. You can't just import and write code for authN when you meant authZ and expect things to "work" while perhaps errors accumulate (silently or not), because these terms express different concepts, different protocols, and different APIs. The code will simply not work, immediately. In a sense, this makes it quite error-prone if you typo what module you're importing to do your authN/authZ work. This isn't necessarily a bad thing because you'll see the error and fix it before it ever has a chance of impacting anything important. Would it have been better to not make the typo to begin with? Sure, but not meaningfully so. Focus on more important problems.

Meanwhile, to take a different concrete case, if you're writing crypto code and accidentally use ECB block cipher mode vs. CBC (a reasonable typo to be concerned about, even), everything will continue to appear to work. But you're already FUBAR. Of course, there are many subtle such errors in cryptography, and you can even choose the right cipher mode and still make huge mistakes that aren't immediately obvious, and not because of some trivial typo either. (Another semi-famous article you might want to check out, if you haven't, is "If You're Typing The Letters A-E-S Into Your Code, You're Doing It Wrong".) It's interesting to consider that the industry's broadest recommendation in the face of how error-prone implementing crypto code can be is to say "Don't" rather than to try and somehow make it less error-prone.

Re:Instead of "auth", we should say "permissions" and "login" by dathinab on Monday May 27, 2024 @02:17PM (#40493183)
yes but it's also even more important to be precise and correct which login/permission fail to be

login is at best defined as authorization + authentication

but things which are in general referred to as login but only provide authorization are not that rare (e.g. you pass a token to a client)

and logins which to provide authentication but not authorization exist to (but are rare and you probably could always nitpick them out of existence)

Similar the term permission is hugely overloaded due to it's wide usage in more causal most times end user facing documentation. Most times permissions are used in a more generic context, like a user having the permission to do something vs. a request made by a user being authorized to do something.

I mean in the end there is no reason not to use login/permission for end-user facing documentations, causal conversations etc. This terms are "good enough" most times. But if you provide a login library or technical documentation for APIs with complex interactions between authentication and authorization then using login/permission just won't cut it.

Also for AuthN,AuthZ there is no point to use auto completion and there is very very little chance to mistype them as long as you don't confused them. Luckily this kind of mistakes do not fall under the patterns dyslexia causes (especially if you do the capitalization).

Re:Instead of "auth", we should say "permissions" and "login" by spacebanana7 on Monday May 27, 2024 @02:55PM (#40493530)
AuthZ is troublesome in British English domains where the usual spelling is Authorisation.
Re:Instead of "auth", we should say "permissions" and "login" by calrain on Monday May 27, 2024 @05:18PM (#40494817)
100%, this is a standard approach.

If you're new to this concept, then you're new to programming in this space.

Re:Instead of "auth", we should say "permissions" and "login" by bradjohnson on Monday May 27, 2024 @01:48PM (#40492968)
Identity and permission are often closely related, and usually auth means both. If we replaced auth with permissions and login, I suspect we would still encapsulate the same overarching concept with one of those two words anyway. E.g. use the login module to add permissions to a user or use the permissions module to authenticate.
Re:Instead of "auth", we should say "permissions" and "login" by alex_lav on Monday May 27, 2024 @12:59PM (#40492546)
Sure, so why would we replace the two words that have correct meaning when the real problem is laziness?
Re:Instead of "auth", we should say "permissions" and "login" by croes on Monday May 27, 2024 @01:10PM (#40492656)
We now have autocomplete that could choose the wrong word.
Re:Instead of "auth", we should say "permissions" and "login" by alex_lav on Monday May 27, 2024 @01:35PM (#40492870)
We've had autocomplete that could choose the wrong word for over a decade. And?
Re:Instead of "auth", we should say "permissions" and "login" by pquerna on Monday May 27, 2024 @04:21PM (#40494288)
What about "access controls" for the AuthZ side, instead of Permissions?

Wondering HNs collective wisdom on this-- at work we've been using Access Controls on our homepage for awhile- https://www.conductorone.com/ - to the people outside the IAM-geek space does this make more sense?

Re:Instead of "auth", we should say "permissions" and "login" by tracker1 on Tuesday May 28, 2024 @12:24PM (#40502451)
I like the idea of exposing Roles for selection, and having those roles generally apply to permissions or workflows internally. This tends to work pretty well for many, or even most applications. I can't stand fine-grained access controls in general.
Re:Instead of "auth", we should say "permissions" and "login" by packetlost on Monday May 27, 2024 @12:31PM (#40492283)
I could see an argument for using the less precise terminology for user facing error messages, but certainly not on the technical side.
Re:Instead of "auth", we should say "permissions" and "login" by re on Monday May 27, 2024 @03:25PM (#40493768)
They are excellent words but easily confused. See for example HTTP 1.0, which uses "unauthorized"/"authorization" to mean "credentials required"/"credentials", which persists in field names and status codes today.
Re:Instead of "auth", we should say "permissions" and "login" by jonplackett on Monday May 27, 2024 @01:08PM (#40492635)
Think you’re giving ‘Everybody’ a bit too much credit.
Re:Instead of "auth", we should say "permissions" and "login" by divan on Monday May 27, 2024 @01:33PM (#40492854)
> Everybody knows ...

Especially non-native English speakers, right.

Re:Instead of "auth", we should say "permissions" and "login" by diego_sandoval on Monday May 27, 2024 @02:21PM (#40493218)
The Spanish words are very similar to the English ones:

- Autorización : Authorization

- Autenticación : Authentication

- Autoridad : Authority

- Auténtico : Authentic

I would guess that in other romance languages, they are also similar to the English version.

"Log In", on the other hand, only makes sense in English. If you tell someone "Estoy registrando adentro" they will be dumbfounded.

Re:Instead of "auth", we should say "permissions" and "login" by Muromec on Monday May 27, 2024 @05:53PM (#40495115)
Language families other than romance and germanic exist.
Re:Instead of "auth", we should say "permissions" and "login" by bigstrat2003 on Tuesday May 28, 2024 @12:01AM (#40497203)
And programmers who work in those languages are more than welcome to use terms that make sense to them! There is zero reason to change terms that are perfectly clear to English speaking programmers simply because not everyone speaks English (or languages where English got its words from).
Re:Instead of "auth", we should say "permissions" and "login" by anthk on Monday May 27, 2024 @07:22PM (#40495744)
"Estoy registrándome dentro" (I'm signing myself up) it's totally fine. The problem lies on that the phrase looks like you are signing up first, and not logging in to a previous account. In Spanish you would just say 'enter in your account'.
Re:Instead of "auth", we should say "permissions" and "login" by redeeman on Monday May 27, 2024 @02:07PM (#40493098)
well either they know the language to some functional degree, or they dont.
Re:Instead of "auth", we should say "permissions" and "login" by vsuperpower2020 on Monday May 27, 2024 @04:50PM (#40494560)
I can't imagine learning German or some similar language and complaining that their words aren't clear just because I don't speak German fluently enough.
Re:Instead of "auth", we should say "permissions" and "login" by divan on Tuesday May 28, 2024 @04:30AM (#40498651)
The point OP is making that those words are intuitive for readers (everyone). Knowing language is one thing, but intuitively making sense of similar words in a new context is another. Most non native English speakers think in their own language. Seeing word “authorization” simply doesn’t evoke the link with “authority” in their own language.
Re:Instead of "auth", we should say "permissions" and "login" by dataflow on Monday May 27, 2024 @03:24PM (#40493759)
> The difference between the two concepts, as they are used in crypto systems are specific, important to get right, and also inherently intertwined, confusing, and subtle. I'm skeptical that changing the words would help.

This sounds a lot like https://www.azquotes.com/quote/1026562

Sorry, but you're just wrong here. The words are speed bumps at best, and it would help a ton to use more instinctive words for them. Nobody needs to pause and think what login means, and that's not true for authentication.

Re:Instead of "auth", we should say "permissions" and "login" by schrodinger on Monday May 27, 2024 @02:43PM (#40493407)
I agree and was going to say the same thing, so instead I'll elaborate on another angle. (Also—don't shorten to auth solves the vast majority of this debate.)

Some things in computer science are just plain "hard," and no amount of renaming or abstracting is going to solve it; you either need to take the time to understand it (i.e. learn authenticate = prove you who are, authorize = what are you allowed to do), or outsource the prob (e.g. "don't roll your own crypto").

Similar problems:

- Time. It's non-linear in calendar representations because of definition changes by humans. There are gaps in years trying to reconcile different calendars. There are leap seconds added based on scientific measurements, non-deterministic ways. Time zones enough confuse people. 99% of the time you can use something like "duration since 1970 UTC" (unix epoch) but you may eventually hit non-linearities if you try and say "once every 10 days" by doing 10 * secs / day.

- Names. Different all over the world. I won't even give examples because I'm still a bit confused, I recently learned that in parts of India first name and surname are reversed, so not even consistent in one country. Prob best to just put a "Name" field and a "Nickname / Display Name" field and let the user decide.

- Geodistance. The Earth is not a sphere, it's an "oblate ellipsoid" since the spinny makes the middle bulge. There are many ways to calculate distance between two coords and generally simple ones will work for majority of settlements. But if your customers are near the poles, or maybe include flight paths, etc the errors could be very significant. I've had this leak out in cases like Postgres where you can use the sphere approximation (much faster) or the proper calculationg (much slower) when running a query like "give me all points within a x mile radius".

Auth (hah!) is just another one intrinsically difficult concept that's not made more complex by language and can't be simplified away.

Re:Instead of "auth", we should say "permissions" and "login" by charles_f on Monday May 27, 2024 @12:32PM (#40492299)
> Everybody knows what an "authority" is. It means they have power or capability. > > Everybody knows what authentic means. Something that is proven to be genuine.

And yet a lot of the devs I work with (I'd even go a say most) can't really explain to you the difference between both concepts and use "auth" as a blanket keyword ; which that word allows since it has the same root.

I think that proposal isn't bad because it makes a distinction using simpler words. I'd also prefer for people to learn that simple difference, but that's what we get.

Re:Instead of "auth", we should say "permissions" and "login" by oooyay on Monday May 27, 2024 @12:47PM (#40492426)
Some time ago authentication was shortened to authn and authorization was shortened to authz. If I had to guess that was to aid people who had to write those words a lot. In that aid, I think they've somewhat lost meaning and just became generalized as "auth". People generally do know there are two steps to auth, are aware of the standards, but when asked to put it in words struggle because of some lexical convergence.

An analog to this is when I first stumbled upon words like a11y and i18n I had no idea what they meant. Now that I've actually had to deal with internationalization systems and accessibility systems I know very much what they mean, but similar to "auth" they're an umbrella invoking a large number of systems that can all function differently.

Re:Instead of "auth", we should say "permissions" and "login" by ysofunny on Monday May 27, 2024 @01:04PM (#40492599)
over many years, I've noticed how it's all about differences that get more subtle and precise on every field. I think this specially after watching this the introduction of https://www.youtube.com/watch?v=OMaYFUm8kQQ

this is specially complicated in fields with long histories. I've got an example that may only make sense in both english and spanish: fats, oils, gases/gasolines (grasas, aceites... gasolinas, petroleo)

other subtelties fresh on my mind today:

proposition vs axiom

argument vs parameter

(common) case law vs civil law

Re:Instead of "auth", we should say "permissions" and "login" by dergyitheron on Monday May 27, 2024 @12:46PM (#40492417)
It's not that simple for non-native English speakers, not everyone works in an international team so English is being used on a technical level and you basically have to memorize what those words mean if they dont have similar sounding equivalent in your native language. And there people mess it up or simplify the terms by combining them and it doesn't make sense. And you wouldn't use your native language equivalents because docs are usually in English and we code naming things in English. Using those dumber terms would be much more straightforward for everyone.
Re:Instead of "auth", we should say "permissions" and "login" by marcosdumay on Monday May 27, 2024 @01:14PM (#40492696)
> non-native English speakers

Hum... I imagine you mean people without any Latine inheritance in their culture. Those words are very good words on way more languages than English.

Those words are also shared with other domains, where they have compatible meanings, and that intersect the usage in computer systems. So you'd better fix them there too.

Besides "permission" is not a verb, and "login" is one between a lot of different ways to authenticate people. What do you intend to do with the correct meaning of those words once you overload them?

Re:Instead of "auth", we should say "permissions" and "login" by blablabla123 on Monday May 27, 2024 @02:24PM (#40493252)
Yeah but it's hard to understand unless doing a lot with auth. Indeed "don't roll you own crypto" but you don't need a PhD in Mathematics to roll you own auth. Sometimes it's necessary and even if not, it's good to know what could need work.
Re:Instead of "auth", we should say "permissions" and "login" by bossyTeacher on Monday May 27, 2024 @02:35PM (#40493332)
Old isn't always better.

Also, I love how you say that everybody knows the meaning of those words yet you feel compelled to provide the meaning. Doesn't really make a good case in your favour.

I highly doubt laymen would understand the difference when using "authorize" and "authenticate" as opposed to "permission" and "login". I would bet you $100 in bitcoin that most people would understand the latter.

Re:Instead of "auth", we should say "permissions" and "login" by bsder on Monday May 27, 2024 @02:13PM (#40493147)
> inherently intertwined, confusing, and subtle.

Our current implementations are like this. I'm not convinced this is inherent complexity, though.

It seems like almost all the complexity stems from people trying to create hooks to monetize all the pieces of the process.

Security and usability feel like a second and distant third in importance.

Re:Instead of "auth", we should say "permissions" and "login" by ern on Monday May 27, 2024 @07:49PM (#40495920)
It's one of the many reasons we have the saying, "Don't roll your own crypto.

I remember when this saying referred to people rolling their own cryptography algorithms. When did it become about not doing your own auth? (I agree it's generally a bad idea, but curious about the scope expansion of the statement)

Re:Instead of "auth", we should say "permissions" and "login" by tracker1 on Tuesday May 28, 2024 @12:22PM (#40502417)
Even then, I don't think it's quite the same... I've built several authentication and authorization controls, for the past decade mostly around JWT, but even then, I find more of the formal dedicated systems are often more complex than a given application needs, but it does take some understanding in terms of what to get right and getting what things wrong can be problematic. You can use some tools off the shelf, but may want other bits to be custom.

For example, I've worked on several applications where an external provider winds up sending the user through an adapter to the application itself. So that external roles or groups can map to application roles. Especially if your application may be Azure AD for one client, and Okta for another. And another still may want you to provide something (simple user/password backed).

Re:Instead of "auth", we should say "permissions" and "login" by redwoolf on Monday May 27, 2024 @11:10PM (#40496979)
I agree. I’ve never run into a situation in my professional work as a software engineer where there has been confusion about these two terms.

The only problem I have is that I can never remember which one maps to HTTP status codes 401 and 403. But that’s just a personal quirk.

Words mean specific things, let’s not dilute or overload the definitions of other words to avoid a confusion that may only exist in the mind of the individual writing the blog.

We already have so many overloaded terms in software engineering.

Re:Instead of "auth", we should say "permissions" and "login" by cnity on Tuesday May 28, 2024 @09:35AM (#40500610)
> The only problem I have is that I can never remember which one maps to HTTP status codes 401 and 403. But that’s just a personal quirk.

It's probably because the name of the codes is actually wrong. 401 is called "unauthorized" but actually means "unathenticated" in every situation I've seen it used. 403 is called "forbidden" which is fine, but is synonymous with "unauthorized" in this case.

Re:Instead of "auth", we should say "permissions" and "login" by 9Ljdg6p8ZSzejt on Wednesday May 29, 2024 @06:02PM (#40517557)
It isn't that the codes are named wrongly. 401 Unauthorized means you don't have permission to access the page, whether you're authenticated or not. 403 Forbidden means you can never access the page, regardless of permissions. This is typical in multi-tenant setups or when a site is never accessible to unauthenticated users. The distinction is subtle but important, and developers often misuse these codes, serving 403 Forbidden for authorization issues instead of indicating a permanent block.
Re:Instead of "auth", we should say "permissions" and "login" by cnity on Monday June 03, 2024 @07:59AM (#40561805)
The MDN docs state this about 401[0]:

> Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response.

[0]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#cli...

Re:Instead of "auth", we should say "permissions" and "login" by chuckadams on Tuesday May 28, 2024 @12:41PM (#40502658)
Like others said, 401 Unauthorized really means unauthenticated. Authentication comes before Authorization, both in the process and alphabetically, and 401 comes before 403. Hope that helps.
Re:Instead of "auth", we should say "permissions" and "login" by redwoolf on Tuesday May 28, 2024 @01:26PM (#40503131)
I mean more that I always have to look it up to double check. But I like the tip to remember by thinking of the sequence and the numerical order. That does help!
Re:Instead of "auth", we should say "permissions" and "login" by tryauuum on Monday May 27, 2024 @11:20PM (#40497023)
I don't really understand the point of using two words

In daily life you wouldn't be implementing one without another anyway

Re:Instead of "auth", we should say "permissions" and "login" by devjab on Tuesday May 28, 2024 @01:45AM (#40497683)
I completely agree with you, I also think that authenticate and authorise carry different meanings than permission and login.

A login is an active thing that you do, but systems can authenticate you with things like single sign ons, so that you don’t actually “login” to many of the systems you want to be authorised in.

Similarly permissions are the roles and claims your digital persona carries with it. These grant you permission to resources, but these can be trusted once your persona is authorised.

Re:Instead of "auth", we should say "permissions" and "login" by m463 on Tuesday May 28, 2024 @02:11AM (#40497836)
Years and years ago, when I was first learning secure networking, including ssh and ssl, I ran across auth and auth (authentication, authorization).

I was confused and it wasn't until years later that I realized that the similar/identical terms stunted my growth.

Re:Instead of "auth", we should say "permissions" and "login" by h1fra on Tuesday May 28, 2024 @04:57AM (#40498808)
I have implemented auth and auth multiple times in my life, and I'm still unsure which one we are talking about sometimes. Permissions and login might not be the best but they immediately brings clarity
Re:Instead of "auth", we should say "permissions" and "login" by thih9 on Tuesday May 28, 2024 @08:23AM (#40500002)
Also, when I forget which is which, or when I’m unsure which of these applies in a given case, I can just say “auth” and let others worry about that.
Re:Instead of "auth", we should say "permissions" and "login" by sporkland on Tuesday May 28, 2024 @10:29AM (#40501064)
I came on to say much the same thing: a lot of authorization policies are very basic "is this a request by an authenticated user or service."

But I also think the fact that they both get abbreviated to "auth" also causes a lot of bad mental modeling and poor communication.

Re:Instead of "auth", we should say "permissions" and "login" by gofreddygo on Tuesday May 28, 2024 @10:59AM (#40501359)
"authorization" and "authentication" are poor stupid choice of words.

They are long, not easy to pronounce, sound too similar, have the first 4 and last 5 characters the same, they mean wildly different things and yet get interchangeably used as "authn".

If i give you keys to a room with the number 101 on it, is that authentication or authorization, or none ?

If a gatekeeper says "sorry, invalid auth", what the f does that even mean?

An expired token, is that authentication failure or authorization error?

What about fake token ? A token with valid signature but wrong audience ?

Its such a fu*ing mess.

Re:Instead of "auth", we should say "permissions" and "login" by swyx on Tuesday May 28, 2024 @11:23AM (#40501629)
> yet get interchangeably used as "authn".

maybe a nitpick but no, they're not. everyone I know distinguishes between "auth-N" and "auth-Z". i agree that they sound similar but actually its kinda nice that they all group into "auth" and then subdivide to authN and authZ. i guess this is me disagreeing with TFA.

Re:Instead of "auth", we should say "permissions" and "login" by vekker on Tuesday May 28, 2024 @11:29AM (#40501696)
Colleagues & I have always distinguished them as authC and authZ ... less confusing than authN :)
Re:Instead of "auth", we should say "permissions" and "login" by WorldMaker on Tuesday May 28, 2024 @05:29PM (#40505825)
I do the same in text sometimes, but there's more likelihood of confusion when used verbally unless your accent uses something like "Zed". In most American dialects "C" and "Z" are sometimes hard to distinguish verbally. You start into "C as in cow" and "Z as in zoo" games at which point it is easier to revert back to "authn" and "authz".
Re:Instead of "auth", we should say "permissions" and "login" by vekker on Thursday May 30, 2024 @02:59AM (#40520944)
Never thought about abbreviating verbally and I never heard anyone doing so, but maybe that's because in Dutch (much like in German) we're used to longer words :D
Re:Instead of "auth", we should say "permissions" and "login" by gofreddygo on Tuesday May 28, 2024 @01:46PM (#40503392)
You're right. i meant to say "auth" being used interchangeably for authn/z
Re:Instead of "auth", we should say "permissions" and "login" by 0xbadcafebee on Tuesday May 28, 2024 @11:14AM (#40501503)
> They are long, not easy to pronounce, sound too similar, have the first 4 and last 5 characters the same, they mean wildly different things and yet get interchangeably used as "authn".

This is a complaint about the English language. We still use many English words that are confusing. The computer science department is perhaps not the best place to reform an entire human language.

"AuthN" is shorthand for authe N tication.

"AuthZ" is shorthand for authori Z ation.

"AuthN+Z" is shorthand for something that provides both.

> If i give you keys to a room with the number 101 on it, is that authentication or authorization, or none ?

Authorization.

To authenticate is to prove who you are. To authorize is to grant access. The key does not prove who you are, it proves you have access to the room.

> If a gatekeeper says "sorry, invalid auth", what the f does that even mean?

Means either authentication or authorization or both failed. This is a complaint about a stupid programmer who can't communicate properly, not with a word.

Bet you a million dollars they'll output the error "invalid login" when it's actually a permissions issue (user can't log into this site/tenant/group/resource, not because the username or password was wrong, but because they didn't have the right role assigned). Changing the word won't make the programmer make fewer mistakes.

> An expired token, is that authentication failure or authorization error?

Authentication.

'Tokens' are not one thing (many things can be called 'a token' and be used in different ways... again, choose the right term to communicate properly), but generally speaking, 'tokens' are things you use to authenticate your identity, and the backend system matches the authenticated token with the authorized roles.

> What about fake token ? A token with valid signature but wrong audience ?

Authentication. Authentication and/or authorization (depends how your example works).

> Its such a fu*ing mess.

The concepts can be difficult to understand at first. Use them more and they make more sense.

Re:Instead of "auth", we should say "permissions" and "login" by tracker1 on Tuesday May 28, 2024 @12:15PM (#40502327)
A token can also contain the roles themselves. Though, proper usage of roles as groups of permissions can also go interestingly wrong in practice by many.
Re:Instead of "auth", we should say "permissions" and "login" by mcluck on Tuesday May 28, 2024 @11:43AM (#40501878)
> To authenticate is to prove who you are. To authorize is to grant access.

We should be screaming this type of thing from the rooftops. I struggled so much with the difference until someone said something to this effect. AuthN = who you are, AuthZ = what can you do. People seem to get confused because certain classes of individuals have certain rights and think it's the "who" that's important and not the role

Re:Instead of "auth", we should say "permissions" and "login" by gofreddygo on Tuesday May 28, 2024 @02:00PM (#40503555)

    > can be difficult to understand at first.
If a concept is already painful to understand, is it prudent to make the pain worse by choosing words that could be examples of grammatical alliteration?

It it really a computer science department v/s english department thing?

The article suggest better alternative, suggestive words to alleviate the confusion.

My comment rants about the premise of the article - poor choice of words.

we can debate a long time about keys with the label 101 on it being authentication or authorization or none.

mine and OP's point is that a better choice of words can avoid these debates and make the world a little less ambiguous.

Re:Instead of "auth", we should say "permissions" and "login" by 0xbadcafebee on Tuesday May 28, 2024 @03:28PM (#40504580)
> mine and OP's point is that a better choice of words can avoid these debates and make the world a little less ambiguous.

If you changed the words to different ones, we would just be having a different debate, because two words cannot resolve the inherent complexity of the subject matter. It would still be ambiguous because the concepts themselves are too complex to address in two words. You would, however, feel like they were simpler, because you chose simpler words that only cover a small fraction of the overall subject matter. This is a self-deception; you'll feel safer in your understanding of what's going on, but you will still have the same problems when trying to use them in different cases. Call it "login" or "jskjfhskjdf", your experience in doing engineering with them will be the same.

("login" does not encompass everything that is authentication, and "permissions" does not encompass everything that is authorization. there are "authentication permissions" and "authorization permissions", and some systems authenticate without "logging in". so you're still going to be confused later on with this choice of words, even if they had the same definitions as the current words)

Re:Instead of "auth", we should say "permissions" and "login" by gofreddygo on Tuesday May 28, 2024 @06:53PM (#40506460)

  > Call it "login" or "jskjfhskjdf", your experience in doing engineering with them will be the same.
Don't agree. Won't argue.
Re:Instead of "auth", we should say "permissions" and "login" by noashavit on Tuesday May 28, 2024 @10:28PM (#40507784)
Whatever the terms we use are we should definitely have 2 distinct terms to describe the process of proving you are who you claim to be and the process of determining what you can do once logged into the application.

All two many developers and engineering leaders lump both concepts together as “auth” and falsely assume that both can be handled by their SSO service/ using a jwt.