69 lines
1.5 KiB
Python
Executable File
69 lines
1.5 KiB
Python
Executable File
#!/usr/bin/env python
|
|
import sys
|
|
from saml2 import metadata
|
|
from saml2 import saml
|
|
from saml2 import md
|
|
from saml2.attribute_converter import ac_factory
|
|
|
|
from saml2.mdie import to_dict
|
|
|
|
from saml2.extension import mdui
|
|
from saml2.extension import idpdisc
|
|
from saml2.extension import dri
|
|
from saml2.extension import mdattr
|
|
from saml2.extension import ui
|
|
import xmldsig
|
|
import xmlenc
|
|
|
|
__author__ = 'rolandh'
|
|
|
|
"""
|
|
A script that imports and verifies metadata and dumps it in a basic
|
|
dictionary format.
|
|
"""
|
|
|
|
MDIMPORT = {
|
|
"swamid": {
|
|
"url": "https://kalmar2.org/simplesaml/module.php/aggregator/?id=kalmarcentral2&set=saml2",
|
|
"cert":"kalmar2.pem"
|
|
},
|
|
"incommon": {
|
|
"url": "file://InCommon-metadata.xml"
|
|
},
|
|
"test": {
|
|
"url": "file://mdtest.xml"
|
|
}
|
|
}
|
|
|
|
ATTRCONV = ac_factory("attributemaps")
|
|
|
|
ONTS = {
|
|
saml.NAMESPACE: saml,
|
|
mdui.NAMESPACE: mdui,
|
|
mdattr.NAMESPACE: mdattr,
|
|
dri.NAMESPACE: dri,
|
|
ui.NAMESPACE: ui,
|
|
idpdisc.NAMESPACE: idpdisc,
|
|
md.NAMESPACE: md,
|
|
xmldsig.NAMESPACE: xmldsig,
|
|
xmlenc.NAMESPACE: xmlenc
|
|
}
|
|
|
|
|
|
metad = metadata.MetaData(xmlsec_binary="/opt/local/bin/xmlsec1",
|
|
attrconv=ATTRCONV)
|
|
|
|
for src in sys.argv[1:]:
|
|
spec = MDIMPORT[src]
|
|
url = spec["url"]
|
|
if url.startswith("file://"):
|
|
metad.import_metadata(open(url[7:]).read(), src)
|
|
else:
|
|
metad.import_external_metadata(url, spec["cert"])
|
|
|
|
_dict = to_dict(metad.entity, ONTS.values())
|
|
|
|
import json
|
|
print json.dumps(_dict, indent=2)
|
|
|