Skip to content

Bug: crate fails to parse NTLM authentication schemes (by design) #3

@xanathar

Description

@xanathar

Implementation notes say:

Doesn't allow token68, which as far as I know has never been and will
never be used in a challenge:

  • RFC 2617 never
    allowed token68 for challenges.
  • RFC 7235 Appendix
    A
    says
    token68 "was added for consistency with legacy authentication
    schemes such as Basic", but Basic only uses token68 in
    credential, not challenge.
  • RFC 7235 section
    5.1.2

    says "new schemes ought to use the auth-param syntax instead
    [of token68], because otherwise future extensions will be
    impossible."
  • No scheme in the registry
    uses token68 challenges as of 2021-10-19.

NTLM authentication headers are in the form:

Proxy-Authenticate: NTLM Q29udGVudCBoYXMgYmVlbiByZWRhY3RlZA==

(here as a Proxy-Authenticate because it's the sample that I have, but it's also sent as a WWW-Authenticate by IIS server on a domain intranet afaik).

Being in that form, they require token68 compliancy as per RFC-7235 because / and = are among the characters used by base-64 and allowed by token68 and disallowed by RFC 7230/3.2.6.


Now, I can try to contribute the change, but:

1 - before I jump to implementation, I want to know if the contribution will be welcome as it diverges from one design tenet (but closes some gap with RFC implementation)

2 - is there any part of the parser that relies on the missing support for token68 in order to work that I have to be aware of?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions