Skip to content

Add LDAP Authentication Support to Teradata Provider#69136

Open
sc250072 wants to merge 1 commit into
apache:mainfrom
Teradata:develop
Open

Add LDAP Authentication Support to Teradata Provider#69136
sc250072 wants to merge 1 commit into
apache:mainfrom
Teradata:develop

Conversation

@sc250072

Copy link
Copy Markdown
Contributor

This PR introduces a pluggable authentication framework to the Teradata provider, enabling support for multiple authentication mechanisms including native Teradata (TD2) and LDAP.

Changes

New Authentication Framework (providers/teradata/src/airflow/providers/teradata/auth/)

  1. base.py: Abstract TeradataAuthMechanism base class
  2. td2.py: Native Teradata (TD2) authentication (default)
  3. ldap.py: New LDAP authentication support
  4. registry.py: Mechanism registry for dynamic auth provider lookup

Enhanced Teradata Hook

  1. Refactored _get_conn_config_teradatasql() to use authentication registry
  2. New _add_shared_connection_params() for SSL/TLS and transaction mode config
  3. Updated sqlalchemy_url property to carry logmech parameter

Documentation Updates

  1. Added LDAP authentication configuration examples
  2. Documented logmech parameter and connection URI format
  3. Added Port field documentation

Bug Fix

  1. teradata_to_teradata.py: Fixed cursor.execute() when sql_params is empty

Comprehensive Tests

  1. Auth mechanism tests (TD2, LDAP, registry)
  2. Hook integration tests with LDAP and logdata support

Configuration Example

LDAP Authentication:

JSON
{
"logmech": "LDAP",
"sslmode": "verify-ca",
"sslca": "/tmp/server-ca.pem"
}

Backward Compatibility

✅ Fully backward compatible - TD2 remains default when logmech is not specified.

Teradata Provider System Health Dashboard: https://teradata.github.io/airflow/

Teradata Provider documentation build status: https://github.com/Teradata/airflow/actions/workflows/ci-teradata-push-branch-documentation-unit-tests.yml


Was generative AI tooling used to co-author this PR?
  • Yes (please specify the tool below)

  • Read the Pull Request Guidelines for more information. Note: commit author/co-author name and email in commits become permanently public when merged.
  • For fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
  • When adding dependency, check compliance with the ASF 3rd Party License Policy.
  • For significant user-facing changes create newsfragment: {pr_number}.significant.rst, in airflow-core/newsfragments. You can add this file in a follow-up commit after the PR is created so you know the PR number.

- Add pluggable authentication mechanism interface (TeradataAuthMechanism)
- Implement TD2 (native) and LDAP authentication mechanisms
- Add authentication registry for mechanism lookup and registration
- Update Teradata connection documentation for LDAP configuration
- Fix TeradataToTeradataOperator to handle empty sql_params dict
- Simplify authentication framework docstrings

Co-Authored-By: Satish Ch <satish.chinthanippu@teradata.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant