Skip to content
Snippets Groups Projects
Commit 227e1d07 authored by Jupiter Hu's avatar Jupiter Hu
Browse files

refactoring

parent 335dafa6
No related branches found
No related tags found
No related merge requests found
...@@ -95,6 +95,13 @@ ...@@ -95,6 +95,13 @@
template: src=karaage3-wsgi.conf.j2 dest=/etc/apache2/conf-available/karaage3-wsgi.conf template: src=karaage3-wsgi.conf.j2 dest=/etc/apache2/conf-available/karaage3-wsgi.conf
sudo: true sudo: true
- name: install karaage3-wsgi.conf
template: src=index.html.j2 dest=/var/www/index.html
sudo: true
- name: install karaage3-wsgi.conf
template: src=kg-idps.j2 dest=/usr/bin/kg-idps
sudo: true
- -
name: "enabling Karaage configuration" name: "enabling Karaage configuration"
shell: a2enconf karaage3-wsgi shell: a2enconf karaage3-wsgi
...@@ -152,4 +159,7 @@ ...@@ -152,4 +159,7 @@
sudo: true sudo: true
when: ansible_os_family == "RedHat" when: ansible_os_family == "RedHat"
- name: "Start cron job for creating idps"
cron: name=idps job=/usr/bin/kg-idps user=root day=*/1 state=present
sudo: true
<html><body><h3>HPC identity management</h3>
<p>To log in via AAF authentication, connect to URL: https://{{ ansible_fqdn }}/aafbootstrap</p>
<p>To log in without AAF authentication, connect to URL: https://{{ ansible_fqdn }}/users</p>
</body></html>
...@@ -12,6 +12,7 @@ WSGIScriptAlias /karaage /etc/karaage3/karaage.wsgi ...@@ -12,6 +12,7 @@ WSGIScriptAlias /karaage /etc/karaage3/karaage.wsgi
# support old URLs. # support old URLs.
Redirect permanent /kgadmin /karaage Redirect permanent /kgadmin /karaage
Redirect permanent /users /karaage Redirect permanent /users /karaage
Redirect permanent /aafbootstrap /karaage/aafbootstrap
Alias /kgstatic "/var/lib/karaage3/static" Alias /kgstatic "/var/lib/karaage3/static"
<Location "/kgstatic"> <Location "/kgstatic">
...@@ -29,7 +30,7 @@ Alias /kgfiles "/var/cache/karaage3/files" ...@@ -29,7 +30,7 @@ Alias /kgfiles "/var/cache/karaage3/files"
</IfVersion> </IfVersion>
</Location> </Location>
<Location /karaage> <Location /karaage/aafbootstrap>
AuthType Shibboleth AuthType Shibboleth
ShibRequireSession On ShibRequireSession On
ShibUseHeaders On ShibUseHeaders On
......
import os
import django
os.environ['DJANGO_SETTINGS_MODULE'] = "karaage.conf.settings"
def get_idps_from_metadata():
import xml.etree.ElementTree as ET
tree = ET.parse('/var/cache/shibboleth/metadata.aaf.xml')
root=tree.getroot()
idps=[]
for entity in root.findall("{urn:oasis:names:tc:SAML:2.0:metadata}EntityDescriptor"):
idp=False
# %s"%entity.attrib['entityID']
for idp in entity.findall('{urn:oasis:names:tc:SAML:2.0:metadata}IDPSSODescriptor'):
idp=True
if idp:
for o in entity.findall('{urn:oasis:names:tc:SAML:2.0:metadata}Organization'):
for c in o.findall('{urn:oasis:names:tc:SAML:2.0:metadata}OrganizationDisplayName'):
idps.append({'entityID':entity.attrib['entityID'],'name':c.text})
return idps
def get_next_idp_group():
from karaage.people.models import Group
i=-1
available=False
nextgroup=None
groupname='idpgroup{idx}'
while not available:
i=i+1
try:
group =Group.objects.get(name=groupname.format(idx=i))
except Group.DoesNotExist:
available=True
nextgroup=groupname.format(idx=i)
return nextgroup
def get_or_create_idp(entityID,name):
print "get_or_create %s"%name
from karaage.institutes.forms import InstituteForm
from karaage.institutes.models import Institute
from karaage.people.models import Group
try:
Institute.objects.get(saml_entityid=entityID)
return
except Institute.DoesNotExist:
print "does not exists, creating"
groupname=get_next_idp_group()
group, _ =Group.objects.get_or_create(name=groupname)
institute=Institute(name=name,group=group,saml_entityid=entityID,is_active=True)
institute.save()
#
# d={}
# d['name']=name
# d['group_id']=group
# d['saml_entityid']=entityID
# d['is_active']=True
# form=InstituteForm(d)
# if form.is_valid():
# print "tying to save"
# form.save()
# else:
# print "form not valid"
# print dir(form)
# #print "not actually saving my form"
django.setup()
idps = get_idps_from_metadata()
for idp in idps:
try:
get_or_create_idp(entityID=idp['entityID'],name=idp['name'])
except:
pass
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment