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

Node.js中Sequelize ORM切换Kerberos认证及Python3.7配置方案

Node.js Sequelize 替换 NTLM 为 Kerberos 认证方案

无需更换 ORM:Sequelize 支持 Kerberos 认证

Sequelize 本身不直接处理认证逻辑,依赖底层数据库驱动实现 Kerberos 支持,针对常用数据库的配置方式如下:

SQL Server(使用 tedious 驱动)

  1. 安装依赖:
npm install sequelize tedious kerberos
  1. 配置示例:
const { Sequelize } = require('sequelize');

const sequelize = new Sequelize({
  dialect: 'mssql',
  host: 'your-db-host',
  database: 'your-db-name',
  dialectOptions: {
    authentication: {
      type: 'kerberos',
      options: {
        realm: 'YOUR-REALM.COM', // 你的 Kerberos 领域
        userName: 'your-domain-username',
        password: 'your-password'
        // 若系统已缓存 Kerberos 票据,可省略用户名/密码
      }
    }
  }
});

PostgreSQL(使用 pg 驱动)

  1. 安装依赖:
npm install sequelize pg pg-kerberos
  1. 配置示例:
const sequelize = new Sequelize('postgres://your-user@your-db-host/your-db-name', {
  dialectOptions: {
    ssl: true,
    krbsrvname: 'postgres' // PostgreSQL 的 Kerberos 服务名
  }
});
Python 3.7 环境安装与配置 Kerberos

针对不同操作系统,步骤如下:

Linux(Ubuntu/Debian)

  • 安装系统依赖:
sudo apt-get update && sudo apt-get install krb5-user libkrb5-dev
  • 安装 Python 包:
pip install kerberos
  • 配置 Kerberos 领域:
    编辑 /etc/krb5.conf,添加基础配置:
[libdefaults]
    default_realm = YOUR-REALM.COM
    dns_lookup_realm = false
    dns_lookup_kdc = true

[realms]
    YOUR-REALM.COM = {
        kdc = kdc.your-realm.com # KDC 服务器地址
        admin_server = admin.your-realm.com # 管理服务器地址
    }
  • 获取 Kerberos 票据:
kinit your-username@YOUR-REALM.COM

输入密码后,用 klist 可查看已获取的票据。

Windows

  • 安装 Python 依赖:
pip install pywin32 kerberos
  • 配置系统 Kerberos 领域:
    打开命令提示符(管理员权限)执行:
ksetup /setrealm YOUR-REALM.COM
ksetup /addkdc YOUR-REALM.COM kdc.your-realm.com
  • 获取票据:
kinit your-domain-username

输入密码后,用 klist 验证票据状态。

macOS

  • 安装系统依赖(通过 Homebrew):
brew install krb5
  • 设置环境变量(让 pip 找到 Kerberos 库):
export PATH="/usr/local/opt/krb5/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/krb5/lib"
export CPPFLAGS="-I/usr/local/opt/krb5/include"
  • 安装 Python 包:
pip install kerberos
  • 配置 /etc/krb5.conf(同 Linux 配置格式),然后执行 kinit 获取票据。

验证安装

运行以下 Python 代码测试 Kerberos 功能:

import kerberos

# 替换为你的服务标识
service = 'HTTP@your-service-host'
result, ctx = kerberos.authGSSClientInit(service)
kerberos.authGSSClientStep(ctx, '')
token = kerberos.authGSSClientResponse(ctx)
print(f"生成的 Kerberos 令牌:{token}")
kerberos.authGSSClientClean(ctx)

内容的提问来源于stack exchange,提问作者Shiva Priya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 01:01:19