Skip to content

Conversation

msporny
Copy link
Member

@msporny msporny commented Sep 2, 2024

This PR is an attempt to address issue #55 by rephrasing the "authentication versus authorization" note.


Preview | Diff

Copy link
Contributor

@David-Chadwick David-Chadwick left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When comparing authn. vs. authz. I prefer you to use either
Who is this and What can they do, or
Is this X and Can X do this action
to be consistent, rather than to mix the two different styles.

<p class="note" title="Authentication versus Authorization">
Note that the definition of [=authentication=] is different from the definition
of [=authorization=]. Generally speaking, [=authentication=] answers the
question of "Who is this?" while [=authorization=] answers the question of "Are
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
question of "Who is this?" while [=authorization=] answers the question of "Are
question of "Who is this?" while [=authorization=] answers the question of "What

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
question of "Who is this?" while [=authorization=] answers the question of "Are
question of "Is this identity valid?" while [=authorization=] answers the question of "Are

Note that the definition of [=authentication=] is different from the definition
of [=authorization=]. Generally speaking, [=authentication=] answers the
question of "Who is this?" while [=authorization=] answers the question of "Are
they allowed to perform this action?". The `authentication` property in this
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
they allowed to perform this action?". The `authentication` property in this
actions are they allowed to perform?". The `authentication` property in this

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the previous wording better, but would be OK with either.

Copy link
Contributor

@dlongley dlongley Sep 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I prefer the existing wording as well because I think this suggestion fundamentally changes the question to be about getting a list of someone's authorized actions vs. asking if they are authorized for the specific action at hand. These aren't actually the same thing and if asking the former, the latter would just have to then be asked do the actual authorization check -- so, I think the existing wording captures this directness better.

Note that the definition of [=authentication=] is different from the definition
of [=authorization=]. Generally speaking, [=authentication=] answers the
question of "Who is this?" while [=authorization=] answers the question of "Are
they allowed to perform this action?". The `authentication` property in this
Copy link
Contributor

@dlongley dlongley Sep 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I prefer the existing wording as well because I think this suggestion fundamentally changes the question to be about getting a list of someone's authorized actions vs. asking if they are authorized for the specific action at hand. These aren't actually the same thing and if asking the former, the latter would just have to then be asked do the actual authorization check -- so, I think the existing wording captures this directness better.

Comment on lines +683 to +714
of [=authorization=]. Generally speaking, [=authentication=] answers the
question of "Who is this?" while [=authorization=] answers the question of "Are
they allowed to perform this action?". The `authentication` property in this
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
of [=authorization=]. Generally speaking, [=authentication=] answers the
question of "Who is this?" while [=authorization=] answers the question of "Are
they allowed to perform this action?". The `authentication` property in this
of [=authorization=]. Generally speaking, [=authentication=] answers the
question of "What entity is trying to act?" while [=authorization=] answers the
question of "Are they allowed to perform this action?". The `authentication`
property in this

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure it's better to change "Who is this?" to "What entity is trying to act?" -- as it implies that there is an additional action beyond authentication itself. Maybe we can interpret that in some some vacuously true way, but I don't think we should imply that authenticating involves additional actions. Authentication could just be a response to "Is this you?" -- with no further action implied by the entity that answers.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dlongley — Maybe this?

Suggested change
of [=authorization=]. Generally speaking, [=authentication=] answers the
question of "Who is this?" while [=authorization=] answers the question of "Are
they allowed to perform this action?". The `authentication` property in this
of [=authorization=]. Generally speaking, [=authentication=] answers the
question of "What entity is trying to act?" while [=authorization=] answers the
question of "Are they allowed to perform this action?" Note that the action being
attempted might simply be proving the entity's own identity, i.e., authenticating.
The `authentication` property in this

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe "What entity am I interacting with?" This removes the requirement that the other entity is the one driving the action (which may not be the case).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It strikes me that perhaps your suggestion is be driven by an effort to reconcile the language in the two questions together in some way. However, the two questions are not necessarily linked and can be asked independently of one another entirely. One does not necessarily need to know "who" someone is for them to act/be authorized, nor does one necessarily need to be "authorized to act" (nor "acting" at all) in order for them to be authenticated.

@msporny msporny force-pushed the msporny-authz-authn branch from 700a480 to e53fb19 Compare September 6, 2024 21:20
<p class="note" title="Authentication versus Authorization">
Note that the definition of [=authentication=] is different from the definition
of [=authorization=]. Generally speaking, [=authentication=] answers the
question of "Who is this?" while [=authorization=] answers the question of "Are
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
question of "Who is this?" while [=authorization=] answers the question of "Are
question of "Is this identity valid?" while [=authorization=] answers the question of "Are

@David-Chadwick
Copy link
Contributor

Who is this? is actually identification, not authentication. Authentication is verifying something. The dictionary definition of authentication is "The process or action of proving or showing something to be true, genuine, or valid."

@msporny
Copy link
Member Author

msporny commented Sep 8, 2024

Editorial, multiple reviews, changes requested and made, no objections, merging.

@msporny msporny merged commit 22a6b02 into main Sep 8, 2024
1 check passed
@msporny msporny deleted the msporny-authz-authn branch September 8, 2024 22:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

editorial This item is editorial in nature.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants