Bien, ahora puedo hacer SSO en Django a través de AzureAD usando django-microsoft-auth . Pero también me gustaría gestionar los grupos allí. Para eso configuramos pasar roles en el token. Pero, ¿cómo los mapeo a grupos de Django? Parece que no encuentro ningún ejemplo para eso.
Lo encontré. Para cualquier persona con la misma pregunta, deberá usar la configuración 'MICROSOFT_AUTH_AUTHENTICATE_HOOK'.
Hice un módulo en mi 'aplicación' llamado aad.py:
import jwt def add_to_group(user, token): from django.contrib.auth.models import Group id_token = token['id_token'] token_data = jwt.decode(id_token, options={"verify_signature": False}) roles = token_data.get('roles', []) user.groups.clear() for r in roles: current_group, created = Group.objects.get_or_create(name=r) current_group.user_set.add(user)en la configuración agregué la siguiente configuración:
MICROSOFT_AUTH_AUTHENTICATE_HOOK = "myApp.aad.add_to_group"Por supuesto, las cosas podrían ser más ordenadas, pero funciona por ahora.