It’s really not that hard. Authentication is about proving the identity of the subject e.g. logging in using information only known / in possession by the subject (password, mfa etc). Authorization is about establishing what permissions that identity has in a given context. E.g. is this identity allowed to create/read/update/delete these resources. Authorization is typically done through roles (RBAC) or more granulary through attributes (ABAC).
Programmer Humor
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
Now how does this compare to AuthN and AuthZ...
Holy crap after writing that AuthN must be authentication and AuthZ must be authorization.
I'm a genius.
Indeed you are ;)
Just call it a11n or a12n and nobody will know if they can't count or if you can't count
And even with 'AuthN' vs 'AuthZ' it always takes me a minute to spell them out and work out which is which
What's this authN / authZ business?
AutheNtication vs. AuthoriZation, I believe
How's that supposed to help?
AuthN is: I claim to be dreadgoat, but how can I prove it? (login, password, mfa)
AuthZ is: Now that you know I am dreadgoat, do I have permission to post this comment? (access control, roles, attributes)
I know what they are and the differences, I thought the N and Z would somehow be an easy way to work it out/remember. But the trick is just to remember which is which.
N comes before Z in the alphabet, and you must always AuthN before you can AuthZ. Easy mnemonic.
This is a great explanation, thank you.
I deal mainly with authorization and I'm not sure I've ever had the differences explained this simply (so I incorrectly lump them together)
It doesn’t
AutheNtication
Ahh, that would make more sense, thank you - corrected
That's the thing, nobody really knows!
Who doesn't like compounding two words with different meaning by definition, but for some inexpiable reason have the same meaning in the programming world, by shortening them?
Now the poor, average programmer has to deal with strange words. One such example is "permission," which is normally used within a casual context, rather then within a more serious context, like a program handling secure data. The poor programmer can now no longer take his job seriously, and is now forever in an existential crisis, due to the lack of formality. ;)
I made a class one time called Auther that did both. Got some chuckles in the code review so I was pretty happy with that
Access Control