1

我已经使用djangosaml2包成功实现了与 SAML 断言的基线 Django/pysaml2 集成。用户是基于成功的身份验证动态创建的,这很棒!现在我想在我的Django 1.6“扩展”用户模型中注入一个简短的自定义属性列表。

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?

模型.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)
4

1 回答 1

0

信号方法的替代方法是在此拉取请求settings.py定义中使用代码:

SAML_PROFILE_MODULE = 'app.UserProfile'

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

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

免责声明:这个 PR 仍然是开放的,它是否会进入上游 repo 是个问题。

于 2014-02-22T10:42:53.793 回答