Python Kadmin RS

0.7.0 · active · verified Fri Apr 17

Python interface to the Kerberos administration interface (kadm5), providing a safe and idiomatic way to manage Kerberos principals and policies. It leverages a Rust implementation (kadmin-rs) for enhanced safety and performance. The library is currently at version 0.7.0 and sees active development with releases tied to new features or bug fixes.

Common errors

Warnings

Install

Imports

Quickstart

Demonstrates how to initialize a `Client` using a keytab file and list Kerberos principals. Requires proper Kerberos setup and a valid admin principal with a keytab.

import os
from kadmin_rs.client import Client

# IMPORTANT: Replace with your actual Kerberos admin principal and keytab path.
# For testing, you can set these environment variables:
# export KADMIN_ADMIN_PRINCIPAL="admin/admin@EXAMPLE.COM"
# export KADMIN_KEYTAB_PATH="/etc/krb5.keytab"
# Ensure Kerberos is properly configured and the keytab is valid.

admin_principal = os.environ.get("KADMIN_ADMIN_PRINCIPAL", "admin/admin@EXAMPLE.COM")
keytab_path = os.environ.get("KADMIN_KEYTAB_PATH", "/etc/krb5.keytab")

try:
    client = Client.with_keytab(
        principal=admin_principal,
        keytab_path=keytab_path,
    )
    print(f"Kadmin client connected as {admin_principal}")

    # List all principals
    all_principals = client.list_principals()
    print(f"Found {len(all_principals)} principals.")
    if all_principals:
        print(f"First principal: {all_principals[0]}")

except Exception as e:
    print(f"Error initializing Kadmin client or listing principals: {e}")
    print("Please check your Kerberos configuration, admin principal, and keytab path.")
    print("Also ensure system Kerberos development libraries are installed (e.g., libkrb5-dev).")

view raw JSON →