镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

[coverage] Conformance findings: AUTH-017 #540

Open

Description

@peco-engineer-bot

Summary

Surfaced by the multi-language coverage fan-out while conformance-testing these SPEC-IDs against databricks/databricks-sql-nodejs. Each finding is committed as an expected-failure (xfail) test in the coverage PR — the test asserts the CORRECT (post-fix) behavior and stays red until THIS driver (databricks/databricks-sql-nodejs) is fixed, then flips green as a tripwire.

Findings

  • AUTH-017 [thrift]: OAuth client-secret M2M ignores the configured scope option and always sends scope=all-apis on the client_credentials token request, so a scoped service-principal secret cannot authenticate
    • failing test: AUTH-017 — configured multi-scope value reaches the client_credentials token request as that exact scope set [thrift] (see the coverage PR diff under tests/)
  • AUTH-017 [sea]: SEA/kernel OAuth client-secret M2M ignores the configured scope option and always sends scope=all-apis on the client_credentials token request, so a scoped service-principal secret cannot authenticate
    • failing test: AUTH-017 — configured multi-scope value reaches the client_credentials token request as that exact scope set [sea] (see the coverage PR diff under tests/)
  • AUTH-017: OAuth client-secret M2M ignores the configured scope connection option and always sends scope=all-apis on the client_credentials token request (both Thrift and SEA/kernel), so a scoped service-principal secret cannot authenticate

Reproduce & Expected

AUTH-017 — Verifies that the configured OAuth scope property is honored on the OAuth client-secret machine-to-machine (M2M) flow: ONE property value holding space-separated scopes is parsed into the scope set t…

Reproduce:

SELECT CURRENT_USER() AS user
SELECT CURRENT_USER() AS user

Expected (per the shared spec):

  • completes without an exception
  • result has exactly 1 row(s)
  • completes without an exception
  • result has exactly 1 row(s)
  • full assertion contract:
result:
- label: m2m_multi_scope
  oauth_token_request_scope:
    grant_type: client_credentials
    scopes:
    - sql
    - offline_access
    exactly: true
- label: m2m_multi_scope
  no_exception: true
- label: m2m_multi_scope
  row_count: 1
- label: m2m_blank_default
  oauth_token_request_scope:
    grant_type: client_credentials
    scopes:
    - all-apis
    exactly: true
- label: m2m_blank_default
  no_exception: true
- label: m2m_blank_default
  row_count: 1
- label: jwt_blank_omits
  oauth_token_request_scope:
    grant_type: client_credentials
    present: false
- label: u2m_blank_default
  oauth_token_request_scope:
    scopes:
    - sql
    - offline_access
    exactly: true

Context

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions