def __init__(self):
super(IdpProvider, self).__init__('saml2', 'saml2')
+ self.admin = None
self.page = None
self.idp = None
self.description = """
def install_args(self, group):
group.add_argument('--saml2', choices=['yes', 'no'], default='yes',
help='Configure SAML2 Provider')
- group.add_argument('--saml2-storage',
- default='/var/lib/ipsilon/saml2',
- help='SAML2 Provider storage area')
def configure(self, opts):
if opts['saml2'] != 'yes':
return
# Check storage path is present or create it
- path = opts['saml2_storage']
+ path = os.path.join(opts['data_dir'], 'saml2')
if not os.path.exists(path):
os.makedirs(path, 0700)
cert.generate('idp', opts['hostname'])
# Generate Idp Metadata
- url = 'https://' + opts['hostname'] + '/idp/saml2'
+ proto = 'https'
+ if opts['secure'].lower() == 'no':
+ proto = 'http'
+ url = '%s://%s/%s/saml2' % (proto, opts['hostname'], opts['instance'])
meta = metadata.Metadata(metadata.IDP_ROLE)
meta.set_entity_id(url + '/metadata')
meta.add_certs(cert, cert)
meta.add_service(metadata.SAML2_SERVICE_MAP['sso-post'],
- url + 'SSO/POST')
+ url + '/SSO/POST')
meta.add_service(metadata.SAML2_SERVICE_MAP['sso-redirect'],
- url + 'SSO/Redirect')
+ url + '/SSO/Redirect')
meta.add_allowed_name_format(
lasso.SAML2_NAME_IDENTIFIER_FORMAT_TRANSIENT)
config = {'idp storage path': path,
'idp metadata file': 'metadata.xml',
'idp certificate file': cert.cert,
- 'idp key file': cert.key}
+ 'idp key file': cert.key,
+ 'enabled': '1'}
po.set_config(config)
po.save_plugin_config(FACILITY)