README 8.85 KB
Newer Older
Antony Chazapis's avatar
Antony Chazapis committed
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
README
======

Astakos is an identity management service, built by GRNET using Django (https://www.djangoproject.com/).
Learn more about Astakos at: http://code.grnet.gr/projects/astakos

Consult COPYRIGHT for licensing information.

About Astakos application
-------------------------

This package contains the Django application that implements all identity management functions.

How to run
----------

Use snf-webproject to run Astakos automatically.

To use Astakos in a custom Django project, add ``astakos.im`` to ``INSTALLED_APPS``. Astakos requires South (http://south.aeracode.org/).

Also, add the following to your ``settings.py``::

    TEMPLATE_CONTEXT_PROCESSORS = (
        ...
        'astakos.im.context_processors.cloudbar',
        'astakos.im.context_processors.im_modules',
        'astakos.im.context_processors.next',
        'astakos.im.context_processors.code',
        'astakos.im.context_processors.invitations')
    
    AUTHENTICATION_BACKENDS = ('astakos.im.auth_backends.EmailBackend',
                               'astakos.im.auth_backends.TokenBackend')
    
    CUSTOM_USER_MODEL = 'astakos.im.AstakosUser'
    
    LOGIN_URL = '/im'

Settings
--------

Configure in ``settings.py`` or a ``.conf`` file in ``/etc/synnefo`` if using snf-webproject.

43
=================================== =============================================================================   ===========================================================================================
44
Name                                Default value                                                                   Description
45
=================================== =============================================================================   ===========================================================================================
46
47
48
49
ASTAKOS_AUTH_TOKEN_DURATION         one month                                                                       Expiration time of newly created auth tokens
ASTAKOS_DEFAULT_USER_LEVEL          4                                                                               Default (not-invited) user level
ASTAKOS_INVITATIONS_PER_LEVEL       {0:100, 1:2, 2:0, 3:0, 4:0}                                                     Number of user invitations per user level
ASTAKOS_DEFAULT_CONTACT_EMAIL       support\@cloud.grnet.gr                                                         Contact email
50
ASTAKOS_IM_MODULES                  ['local', 'shibboleth']                                                         Signup modules
51
52
53
54
55
56
57
58
59
ASTAKOS_FORCE_PROFILE_UPDATE        True                                                                            Force user profile verification
ASTAKOS_INVITATIONS_ENABLED         True                                                                            Enable invitations
ASTAKOS_COOKIE_NAME                 _pithos2_a                                                                      ``Key`` parameter passed in ``django.http.HttpResponse.set_cookie``
ASTAKOS_COOKIE_DOMAIN               None                                                                            ``Domain`` parameter passed in ``django.http.HttpResponse.set_cookie``
ASTAKOS_COOKIE_SECURE               True                                                                            ``Secure`` parameter passed in ``django.http.HttpResponse.set_cookie``
ASTAKOS_IM_STATIC_URL               /static/im/                                                                     URL to use when referring to static files
ASTAKOS_MODERATION_ENABLED          True                                                                            If False and invitations are not enabled newly created user will be automatically accepted
ASTAKOS_BASEURL                     \http://pithos.dev.grnet.gr                                                     Astakos baseurl
ASTAKOS_SITENAME                    GRNET Cloud                                                                     Service name that appears in emails
60
ASTAKOS_RECAPTCHA_ENABLED           True                                                                            Enable recaptcha
Sofia Papagiannaki's avatar
Sofia Papagiannaki committed
61
62
ASTAKOS_RECAPTCHA_PUBLIC_KEY                                                                                        Recaptcha public key obtained after registration here: http://recaptcha.net
ASTAKOS_RECAPTCHA_PRIVATE_KEY                                                                                       Recaptcha private key obtained after registration here: http://recaptcha.net
63
64
65
66
67
ASTAKOS_RECAPTCHA_OPTIONS           {'theme': 'white'}                                                              Options for customizing reCAPTCHA look and feel
                                                                                                                    (see: http://code.google.com/intl/el-GR/apis/recaptcha/docs/customization.html)
ASTAKOS_LOGOUT_NEXT                                                                                                 Where the user should be redirected after logout
                                                                                                                    (if not set and no next parameter is defined it renders login page with message)
ASTAKOS_BILLING_FIELDS              ['id', 'is_active', 'provider', 'third_party_identifier']                       AstakosUser fields to propagate in the billing system
Sofia Papagiannaki's avatar
Sofia Papagiannaki committed
68
ASTAKOS_QUEUE_CONNECTION                                                                                            The queue connection ex. 'rabbitmq://guest:guest@localhost:5672/astakos'
69
                                                                                                                    (if it is not set, it does not send messages)
Sofia Papagiannaki's avatar
Sofia Papagiannaki committed
70
ASTAKOS_RE_USER_EMAIL_PATTERNS      []                                                                              Email patterns that are automatically activated ex. ['^[a-zA-Z0-9\._-]+@grnet\.gr$']
71
72
73

ASTAKOS_LOGIN_MESSAGES              {}                                                                              Notification messages to display on login page header
                                                                                                                    e.g. {'warning': 'Warning message (can contain html)'}
74
ASTAKOS_PROFILE_EXTRA_LINKS         {}                                                                              Messages to display as extra actions in account forms
75
                                                                                                                    e.g. {'https://cms.okeanos.grnet.gr/': 'Back to ~okeanos'}
76
ASTAKOS_RATELIMIT_RETRIES_ALLOWED   3                                                                               Number of unsuccessful login requests per minute allowed for a specific account.
Sofia Papagiannaki's avatar
Sofia Papagiannaki committed
77
78
                                                                                                                    When this number exceeds and ASTAKOS_RECAPTCHA_ENABLED is set the user has to solve a
                                                                                                                    captcha challenge.
79
80
ASTAKOS_EMAILCHANGE_ENABLED         False                                                                           Enable email change mechanism
ASTAKOS_EMAILCHANGE_ACTIVATION_DAYS 10                                                                              Number of days that email change requests remain active
81
ASTAKOS_LOGGING_LEVEL               INFO                                                                            Message logging severity
82
ASTAKOS_QUOTA_HOLDER_URL            ''                                                                              The quota holder URI
83
=================================== =============================================================================   ===========================================================================================
Antony Chazapis's avatar
Antony Chazapis committed
84
85
86
87
88
89

Administrator functions
-----------------------

Available as extensions to Django's command-line management utility:

90
91
92
===============  ===========================
Name             Description
===============  ===========================
Sofia Papagiannaki's avatar
Sofia Papagiannaki committed
93
94
addgroup         Add new group
addterms         Add new approval terms
95
96
createuser       Create a user
inviteuser       Invite a user
Sofia Papagiannaki's avatar
Sofia Papagiannaki committed
97
listgroups       List groups
98
99
100
listinvitations  List invitations
listusers        List users
modifyuser       Modify a user's attributes
Sofia Papagiannaki's avatar
Sofia Papagiannaki committed
101
sendactivation   Send activation email
102
103
104
showinvitation   Show invitation info
showuser         Show user info
===============  ===========================
Sofia Papagiannaki's avatar
Sofia Papagiannaki committed
105
106
107

To update user credibility from the billing system (Aquarium), enable the queue, install snf-pithos-tools and use ``pithos-dispatcher``::

108
    pithos-dispatcher --exchange=aquarium --callback=astakos.im.endpoints.aquarium.consumer.on_creditevent
Sofia Papagiannaki's avatar
Sofia Papagiannaki committed
109
110
111
112
113
114
115

Load groups:
------------

To set the initial user groups load the followind fixture:

    snf-manage loaddata groups