Если кому-то интересно, я решил это сам, выполнив следующее:
Во-первых, я интегрировал flask-ldap3-login с Flask-SQLAlchemy, используя шаги здесь - https://github.com/nickw444/flask-ldap3-login/issues/26
Мой метод сохранения пользователя теперь выглядит следующим образом:
@ldap_manager.save_user
def save_user(dn, username, data, memberships):
id=int(data.get("uidNumber"))
if 'group-goes-here' in data.get("memberOf"):
user=User.query.filter_by(id=id).first()
if not user:
user=User(
id=int(id),
dn=dn,
username=username,
email=data['mail'],
firstname=data['givenName'],
lastname=data['sn']
)
db.session.add(user)
db.session.commit()
return user
Таким образом, в основном, при условии, что пользователь вводит действительные учетные данные LDAP, он отправляется в AD для получения членства в группах, и это просто, если «group-go-here» в data.get («memberOf»): определяет, сохранять ли пользователя в Моя модель пользователя и верните ее обратно обработчику.
@auth.route('/login', methods=['GET', 'POST'])
def login():
# Redirect users who are not logged in.
form = LDAPLoginForm()
if form.validate_on_submit():
if form.user:
login_user(form.user)
else:
flash('Login Failed', 'warning')
return redirect(url_for('auth.login'))
return redirect(url_for('main.home'))
Надеюсь, это поможет!