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
|
#!/usr/bin/env python
from saml2.saml import NAME_FORMAT_URI
__author__ = "rolandh"
import json
from saml2 import xmldsig as ds
from saml2.saml import NAME_FORMAT_URI
BASE = "http://localhost:8088"
metadata = open("./idp/idp.xml").read()
info = {
"entity_id": f"{BASE}/idp.xml",
"interaction": [
{
"matches": {"url": f"{BASE}/sso/redirect", "title": "IDP test login"},
"page-type": "login",
"control": {"type": "form", "set": {"login": "roland", "password": "dianakra"}},
},
{
"matches": {"url": f"{BASE}/sso/post", "title": "IDP test login"},
"page-type": "login",
"control": {"type": "form", "set": {"login": "roland", "password": "dianakra"}},
},
{
"matches": {"url": f"{BASE}/sso/redirect", "title": "SAML 2.0 POST"},
"page-type": "other",
"control": {
"index": 0,
"type": "form",
},
},
{
"matches": {"url": f"{BASE}/sso/post", "title": "SAML 2.0 POST"},
"page-type": "other",
"control": {"index": 0, "type": "form", "set": {}},
},
{
"matches": {"url": f"{BASE}/slo/post", "title": "SAML 2.0 POST"},
"page-type": "other",
"control": {"index": 0, "type": "form", "set": {}},
},
],
# metadata source for the test target's EntityDescriptor:
"metadata": metadata,
"constraints": {
# test if attribute name format matches the given value. Absence of this
# option or the value NAME_FORMAT_UNSPECIFIED will match any format
# "name_format": NAME_FORMAT_BASIC,
# "name_format": NAME_FORMAT_UNSPECIFIED,
"name_format": NAME_FORMAT_URI,
# allowed for assertion & response:
"signature_algorithm": [
# ds.SIG_RSA_SHA1, # you may need this for legacy deployments
ds.SIG_RSA_SHA224,
ds.SIG_RSA_SHA256,
ds.SIG_RSA_SHA384,
ds.SIG_RSA_SHA512,
],
"digest_algorithm": [
# ds.DIGEST_SHA1, # you may need this for legacy deployments
ds.DIGEST_SHA224,
ds.DIGEST_SHA256,
ds.DIGEST_SHA384,
ds.DIGEST_SHA512,
ds.DIGEST_RIPEMD160,
],
},
}
print(json.dumps(info))
|