Skip to content

Commit

Permalink
Documentation (IdentityPython#301)
Browse files Browse the repository at this point in the history
* Update views.py (IdentityPython#297)

changed from error to debug

* Unsupported Binding exception in SLO

There's the possibility that an IdP doesn't support the SLO, added an exception handling as a workaround for this.
Now we have in the log something like:

````
Unsupported binding: None (https://172.17.0.1:10000/Saml2IDP/metadata)
Error Handled - SLO - unsupported binding by IDP: None
Traceback (most recent call last):
  File "~/DEV/IdentityPython/env/lib/python3.8/site-packages/djangosaml2/views.py", line 601, in get
    result = client.global_logout(subject_id)
  File "~/DEV/IdentityPython/env/lib/python3.8/site-packages/saml2/client.py", line 210, in global_logout
    return self.do_logout(
  File "~/DEV/IdentityPython/env/lib/python3.8/site-packages/djangosaml2/overrides.py", line 25, in do_logout
    return super().do_logout(*args, **kwargs)
  File "~/DEV/IdentityPython/env/lib/python3.8/site-packages/saml2/client.py", line 259, in do_logout
    bindings_slo_supported = self.metadata.single_logout_service(
  File "~/DEV/IdentityPython/env/lib/python3.8/site-packages/saml2/mdstore.py", line 1236, in single_logout_service
    return self.service(entity_id, "%s_descriptor" % typ,
  File "~/DEV/IdentityPython/env/lib/python3.8/site-packages/saml2/mdstore.py", line 1147, in service
    raise UnsupportedBinding(binding)
saml2.s_utils.UnsupportedBinding: None
````

* v1.3.2

* chore: Documentation improvements that fixed IdentityPython#231 and IdentityPython#299 (@tkloda)

Co-authored-by: sur.la.route <[email protected]>
  • Loading branch information
peppelinux and sur.la.route authored Jun 27, 2021
1 parent aa95de2 commit c9ac2e7
Showing 1 changed file with 23 additions and 7 deletions.
30 changes: 23 additions & 7 deletions docs/source/contents/setup.rst
Original file line number Diff line number Diff line change
Expand Up @@ -380,19 +380,35 @@ Learn more about Django profile models at:
https://docs.djangoproject.com/en/dev/topics/auth/customizing/#substituting-a-custom-user-model


Custom user attributes processing
---------------------------------

Sometimes you need to use special logic to update the user object
depending on the SAML2 attributes and the mapping described above
is simply not enough. For these cases djangosaml2 provides hooks_
that can be overriden with custom functionality. For example::
that can be overriden with custom functionality.

First of all reference the modified Saml2Backend in settings.py file::


AUTHENTICATION_BACKENDS = [
'your_package.authentication.ModifiedSaml2Backend',
]


For example::

from djangosaml2.backends import Saml2Backend

from djangosaml2.backends import Saml2Backend
class ModifiedSaml2Backend(Saml2Backend):
def save_user(self, user, *args, **kwargs):
user.save()
user_group = Group.objects.get(name='Default')
user.groups.add(user_group)
return super().save_user(user, *args, **kwargs)

class MySaml2Backend(Saml2Backend):
def save_user(self, user, *args, **kwargs):
# Add custom logic here
return super().save_user(user, *args, **kwargs)
.. _hooks: https://github.com/identitypython/djangosaml2/blob/master/djangosaml2/backends.py#L181

.. _hooks: https://github.com/knaperek/djangosaml2/blob/master/djangosaml2/backends.py#L181


URLs
Expand Down

0 comments on commit c9ac2e7

Please sign in to comment.