Django SAML自定义用户属性&保存信号

时间:2014-02-21 22:39:24

标签: django signals saml django-custom-user

我已成功使用djangosaml2包实现了与SAML断言的基线Django / pysaml2集成。用户是基于成功的身份验证动态创建的,这非常棒!现在我想在我的Django 1.6 "extended" user model中注入一个自定义属性的简短列表。

djangosaml2文档声明(参见:https://pypi.python.org/pypi/djangosaml2#user-attributes)我应该使用提供的Django信号:

  

...对于这些情况,djangosaml2提供了一个Django信号   听。为此,您可以将以下代码添加到您的   应用程式:

from djangosaml2.signals import pre_user_save

def custom_update_user(sender=user, attributes=attributes, user_modified=user_modified)
    ...
    return True  # I modified the user object

以下是我的问题:

  • 我在哪里放置上述信号代码?
  • 如果我的扩展用户模型看起来如此,如何告诉我的扩展用户模型设置员工ID?

models.py

from django.db import models
from django.contrib.auth.models import User

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    employee_id = models.CharField(blank=True,max_length=150)

1 个答案:

答案 0 :(得分:0)

替代信号方法是使用this pull requestsettings.py中的代码定义:

SAML_PROFILE_MODULE = 'app.UserProfile'

SAML_ATTRIBUTE_MAPPING = {
    'samlAttributeThatDefinesID': ('employee_id',),
}

SAML_ATTRIBUTE_MAPPING中的值应该是app.UserProfileauth.User模型中要填充saml属性作为键的字段名称的元组。

免责声明:此公关仍处于公开状态,这是否会进入上游回购的问题。