将SAML映射与Djangosaml2结合使用

时间:2018-08-07 12:19:36

标签: django saml-2.0 simplesamlphp

我至少有2个Django应用程序与SAML SSO一起使用,其中simplePAMLphp作为IDP,而Djangosaml2作为SP。

尽管有一些与此问题无关的问题,但一般来说auth仍在工作。两种应用都使用不同的用户模型。

这是我用于一个应用程序的SAML映射:

SAML_ATTRIBUTE_MAPPING = {
    'uid': ('username', ),
    'mail': ('email', ),
    'givenName': ('first_name', ),
    'sn': ('last_name', ),
    'is_staff': ('is_staff', ),
    'is_superuser': ('is_superuser', ),
}

这里是另一个

SAML_ATTRIBUTE_MAPPING = {
    'mail': ('email', ),
    'givenName': ('nick', ),
    'sn': ('name', ),
    'is_staff': ('is_staff', ),
    'is_superuser': ('is_superuser', ),
}

这正常。 但是这些字段不是它们的意图。

我想要实现的是结合

  

givenName

  

sn

转换为一个值,我可以将其保存在用户模型的名称字段中。

在查看Djangosaml2文档时,它提到了可以用于它的信号

from djangosaml2.signals import pre_user_save

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

但是我不知道这应该去哪里,以及如何处理该信号接收到的数据。 还是有人知道更好的方法吗? 非常感谢。

0 个答案:

没有答案