summaryrefslogtreecommitdiff
path: root/coip/apps/auth/__init__.py
blob: 06effdf56ed63d7c1999f9f57dbf167400a506bf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
__author__ = 'leifj'

from django.conf import settings
from saml2.config import SPConfig
import copy
from saml2 import BINDING_HTTP_POST, BINDING_HTTP_REDIRECT

import logging
logging.basicConfig()
logger = logging.getLogger("djangosaml2")
logger.setLevel(logging.DEBUG)

def asgard_sp_config(request=None):
    host = "localhost"
    if request != None:
        host = request.get_host().replace(":","-")
    x= {
        # your entity id, usually your subdomain plus the url to the metadata view
        'entityid': 'https://coip.app.nordu.net/saml2/sp/metadata',
        # directory with attribute mapping
        "attribute_map_dir" : "%s/saml2/attributemaps" % settings.BASE_DIR,
        # this block states what services we provide
        'service': {
            # we are just a lonely SP
            'sp' : {
                'name': 'COIP',
                'endpoints': {
                    # url and binding to the assertion consumer service view
                    # do not change the binding osettingsr service name
                    'assertion_consumer_service': [
                        ('https://coip.app.nordu.net/saml2/sp/acs/',
                         BINDING_HTTP_POST),
                    ],
                    # url and binding to the single logout service view
                    # do not change the binding or service name
                    'single_logout_service': [
                        ('https://coip.app.nordu.net/saml2/sp/ls/',
                         BINDING_HTTP_REDIRECT),
                    ],
                    },
                # attributes that this project need to identify a user
                'required_attributes': ['eduPersonPrincipalName','displayName'],
                }
        },

        # where the remote metadata is stored
        #'metadata': { 'remote': [{'url':'http://md.swamid.se/md/swamid-idp.xml',
        #                          'cert':'%s/saml2/credentials/md-signer.crt' % settings.BASE_DIR}] },
        'metadata': {'local': [settings.SAML_METADATA_FILE]},

        # set to 1 to output debugging information
        'debug': 1,

        # certificate
        "key_file" : "%s/%s.key" % (settings.SSL_KEY_DIR,host),
        "cert_file" : "%s/%s.crt" % (settings.SSL_CRT_DIR,host),
        # own metadata settings
        'contact_person': [
                {'given_name': 'Leif',
                 'sur_name': 'Johansson',
                 'company': 'NORDUnet',
                 'email_address': 'leifj@nordu.net',
                 'contact_type': 'technical'},
                {'given_name': 'Johan',
                 'sur_name': 'Berggren',
                 'company': 'NORDUnet',
                 'email_address': 'jbn@nordu.net',
                 'contact_type': 'technical'},
        ],
        # you can set multilanguage information here
        'organization': {
            'name': [('NORDUNet', 'en')],
            'display_name': [('NORDUnet A/S', 'en')],
            'url': [('http://www.nordu.net', 'en')],
            }
    }
    c = SPConfig()
    c.load(copy.deepcopy(x))
    return c