You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Airflow基础认证问题:无法创建用户

Fixing Password Authentication Issues in Airflow v1.9.0

Hey there, let’s work through getting password authentication up and running in your Airflow v1.9.0 instance—this version has a few specific quirks we need to account for. Here’s a step-by-step breakdown of what to check and fix:

1. Double-Check Your Core Configuration

First, make sure your airflow.cfg file has the right settings under the [webserver] section. This is the foundation for password auth to work:

[webserver]
authenticate = True
auth_backend = airflow.contrib.auth.backends.password_auth

⚠️ Critical reminder: After updating the config, restart your Airflow webserver—changes won’t take effect until you do this.

2. Correctly Create a Password User

It sounds like your initial interactive Python attempt didn’t pan out. Let’s make sure you’re using the right approach for v1.9.0:

Option 1: Use the Airflow Shell

  1. Activate your Airflow virtual environment (if you’re using one).
  2. Run airflow shell to enter an interactive Python session pre-configured with Airflow’s settings.
  3. Paste this code, replacing the placeholder values:
    from airflow.contrib.auth.backends.password_auth import PasswordUser
    from airflow import models, settings
    
    # Create a PasswordUser instance (not a regular User!)
    user = PasswordUser(models.User())
    user.username = "your_preferred_username"
    user.email = "your_email@domain.com"
    user.password = "your_secure_password"  # v1.9 handles hashing automatically here
    
    # Save the user to the database
    session = settings.Session()
    session.add(user)
    session.commit()
    session.close()
    

Option 2: Run a Standalone Script

If the shell approach fails, write a small script (e.g., create_airflow_user.py) with the code above, then run it with python create_airflow_user.py—just ensure you’re in your Airflow environment when executing it.

Common pitfalls here:

  • Forgetting to use PasswordUser (using models.User directly won’t enable password login)
  • Skipping session.commit() (this is what actually saves the user to the database)

3. Verify the User Exists in the Database

Let’s confirm your user was actually created:

  • If you’re using the default SQLite database, run this command in your terminal:
    sqlite3 $AIRFLOW_HOME/airflow.db "SELECT username, email FROM user;"
    
  • If you don’t see your user listed, go back to your creation script—there’s likely an uncaught error (e.g., missing imports, database connection issues).

4. Check Webserver Logs for Errors

If the login screen still doesn’t appear or you can’t log in, dig into the webserver logs to find clues. Logs are usually located at $AIRFLOW_HOME/logs/webserver/ or in the console output where you started the webserver.

Look for errors like:

  • "ModuleNotFoundError" for the auth backend (means your auth_backend path is wrong)
  • Database connection timeouts or permission issues (means Airflow can’t access the user data)

5. Manual Password Hashing (If Needed)

In some rare cases, v1.9.0 might not auto-hash your password. If you’re getting "invalid credentials" even with a correctly created user, try manually hashing the password:

from werkzeug.security import generate_password_hash
user.password = generate_password_hash("your_secure_password")

Update the user in the database with this hashed value, restart the webserver, and try logging in again.


内容的提问来源于stack exchange,提问作者Guido Pepper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:20:57