#!/usr/bin/env python
from saml2.saml import AUTHN_PASSWORD
__author__ = "rolandh"
import json
BASE = "http://localhost:8087"
# BASE= "http://lingon.catalogix.se:8087"
metadata = open("./sp/sp.xml").read()
AUTHN = {"class_ref": AUTHN_PASSWORD, "authn_auth": "http://lingon.catalogix.se/login"}
info = {
"start_page": BASE,
"entity_id": f"{BASE}/sp.xml",
"result": {
"matches": {"content": "
Your identity are"},
},
"metadata": metadata,
"args": {
"AuthnResponse": {
"sign_assertion": "always", # always, never
"sign_response": "never", # always, never
"sign_digest_alg": ds.DIGEST_SHA256,
"sign_signature_alg": ds.SIG_RSA_SHA256,
"authn": AUTHN,
}
},
# This is the set of attributes and values that are returned in the
# SAML Assertion
"identity": {"given_name": "Roland", "sn": "Hedberg"},
# This is the value of the NameID that is return in the Subject in the
# Assertion
"userid": "roland",
# regex pattern that must be contained in the resulting echo page to validate
# that the SP returned the right page after Login.
"echopageIdPattern": r"SAML Echo Service",
# list of regex patterns that must be contained in the resulting echo page to validate
# that the SP's echo page returns expected SAMLe response values (e.g. attribute values)
"echopageContentPattern": [
r"Given Name\s*\s*Roland | ",
r"Userid\s*\s*roalnd | ",
r"Surname\s*\s*Hedberg | ",
],
"constraints": {
"authnRequest_signature_required": True,
# allowed for assertion & response signature:
"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_SHA1,
ds.DIGEST_SHA224,
ds.DIGEST_SHA256,
ds.DIGEST_SHA384,
ds.DIGEST_SHA512,
ds.DIGEST_RIPEMD160,
],
},
}
print(json.dumps(info))