{"id":28140310,"url":"https://github.com/etheadev/delphi-saml","last_synced_at":"2026-02-16T13:05:02.694Z","repository":{"id":76966216,"uuid":"555219910","full_name":"EtheaDev/Delphi-SAML","owner":"EtheaDev","description":"A SAML implementation for Delphi developers","archived":false,"fork":false,"pushed_at":"2025-09-14T18:47:53.000Z","size":3094,"stargazers_count":39,"open_issues_count":1,"forks_count":8,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-09-14T20:44:07.291Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Pascal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EtheaDev.png","metadata":{"files":{"readme":"README.htm","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"Docs/SupportingDelphi.jpg","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-10-21T06:51:02.000Z","updated_at":"2025-09-14T18:47:57.000Z","dependencies_parsed_at":"2024-02-28T15:45:56.141Z","dependency_job_id":"5b1b5bdd-6cc4-4318-a682-ec2d15b4efd5","html_url":"https://github.com/EtheaDev/Delphi-SAML","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/EtheaDev/Delphi-SAML","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EtheaDev%2FDelphi-SAML","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EtheaDev%2FDelphi-SAML/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EtheaDev%2FDelphi-SAML/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EtheaDev%2FDelphi-SAML/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EtheaDev","download_url":"https://codeload.github.com/EtheaDev/Delphi-SAML/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EtheaDev%2FDelphi-SAML/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278948017,"owners_count":26073747,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-14T18:11:18.592Z","updated_at":"2025-10-08T12:49:13.100Z","avatar_url":"https://github.com/EtheaDev.png","language":"Pascal","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cstyle type=\"text/css\"\u003e\ncode{\n  font-family: \"Consolas\", monospace;\n}\npre{\n  border: 1px solid #ddd;\n  border-left: 3px solid #f36d33;\n  overflow: auto;\n  padding: 1em 1.5em;\n  display: block;\n}\nBlockquote{\n  border-left: 3px solid #d0d0d0;\n  padding-left: 0.5em;\n  margin-left:1em;\n}\nBlockquote p{\n  margin: 0;\n}\ntable{\n  border:1px solid;\n  border-collapse:collapse;\n}\nth{  padding:5px;\n  border:1px solid;\n}\ntd{\n  padding:5px;\n  border:1px solid;\n}\n\u003c/style\u003e\n\u003ch1\u003eDelphi SAML implementation\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://opensource.org/licenses/Apache-2.0\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-Apache_2.0-blue.svg\" alt=\"License\"/\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eDelphi SAML\u003c/strong\u003e is a SAML implementation written on top of \u003ca href=\"https://www.aleksey.com/xmlsec/\"\u003exmlsec\u003c/a\u003e. The basic idea behind the code comes from \u003ca href=\"https://github.com/monmohan/samltools\"\u003esamltools\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eSupported Delphi versions: from Delphi 10.1 to Delphi 13\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"./Docs/SupportingDelphi.jpg\" alt=\"./Docs/SupportingDelphi\"/\u003e\u003c/p\u003e\n\u003ch2\u003eHow to setup a service provider locally?\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eClone the repo\u003c/li\u003e\n\u003cli\u003eCopy all the DLL in the Demos\\bin folder (see \u003cem\u003einstallation\u003c/em\u003e)\u003c/li\u003e\n\u003cli\u003eSetup a loopback mapping to \u0026ldquo;sp.samltools.com\u0026rdquo;. On windows:\u003c/li\u003e\n\u003cli\u003eOpen \u003ccode\u003eC:\\Windows\\System32\\drivers\\etc\\hosts\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e127.0.0.1 sp.samltools.com\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCompile Demos\\SAML\\SPDemo.dpr\u003c/li\u003e\n\u003cli\u003eRun it\u003c/li\u003e\n\u003cli\u003eChoose \u003ccode\u003eidp-auth0.ini\u003c/code\u003e in Identity Provider settings\u003c/li\u003e\n\u003cli\u003eChoose \u003ccode\u003esp-auth0.ini\u003c/code\u003e in Serivce Provider settings\u003c/li\u003e\n\u003cli\u003eClick \u003ccode\u003eOpen Browser\u003c/code\u003e and follow the instructions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDemo\u003c/h2\u003e\n\u003cp\u003e\u003cimg src=\"./Docs/SPDemo.gif\" alt=\"SPDemo!\"/\u003e\u003c/p\u003e\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\u003cp\u003eDownload the zip files for your platform and extract all DLLs into the demos\\bin folder.\nYou can found the precompiled binaries of the DLL here:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cem\u003e32bit\u003c/em\u003e: https://www.zlatkovic.com/pub/libxml/\u003c/li\u003e\n\u003cli\u003e\u003cem\u003e64bit\u003c/em\u003e: https://www.aleksey.com/xmlsec/download/win64/\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe required DLL are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elibxmlsec.dll\u003c/code\u003e: main DLL\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elibxml2.dll\u003c/code\u003e: to handle XML\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eiconv.dll\u003c/code\u003e: to convert between charsets\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elibxmlsec-mscrypto.dll\u003c/code\u003e: if you want to use cryptographics functions from \u003cem\u003emsCrypto\u003c/em\u003e (install msCrypto from MS)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elibxmlsec-openssl.dll\u003c/code\u003e: or if you want to use cryptographics functions from \u003cem\u003eOpenSSL\u003c/em\u003e\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elibeay32.dll\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003essleay32.dll\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ezlib1.dll\u003c/code\u003e: compression\u0026hellip; but I'm not sure who need it\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elibexslt.dll\u003c/code\u003e: xsl transformations (optional)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elibxslt.dll\u003c/code\u003e: xsl transformations (optional)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you want you can extract \u003ccode\u003exmlsec.exe\u003c/code\u003e and \u003ccode\u003eopenssl.exe\u003c/code\u003e. The first can be used to test XML signing and encryption, and the second to handle certificates and cryptography.\u003c/p\u003e\n\u003ch2\u003eTODO\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e📌 Better metadata support\u003c/li\u003e\n\u003cli\u003e✨ Identity provider implementation\u003c/li\u003e\n\u003cli\u003e✨ Basic key format conversion (PEM, DER, \u0026hellip;)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eDelphi SAML\u003c/code\u003e consists of some modules:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe cryptographic units: used to handle signing and encryption\u003c/li\u003e\n\u003cli\u003eThe SAML message units: to build request and parse response\u003c/li\u003e\n\u003cli\u003eThe metadata unit: to read and write metadata\u003c/li\u003e\n\u003cli\u003eThe demos: to see how \u003ccode\u003eDelphi SAML\u003c/code\u003e works\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you need more help you can read the \u003ca href=\"Docs/APIDoc.md\"\u003eAPI documentation\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eLicense\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eDelphi SAML\u003c/code\u003e is released under the term of the \u003cem\u003eApache License\u003c/em\u003e. Here follows the licenses of all dependencies:\u003c/p\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003eLibrary\u003c/th\u003e\n    \u003cth\u003eLicense\u003c/th\u003e\n    \u003cth\u003eUsing with proprietary applications/libraries\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003exmlsec-core\u003c/td\u003e\n    \u003ctd\u003eMIT license\u003c/td\u003e\n    \u003ctd\u003eYes\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003exmlsec-openssl\u003c/td\u003e\n    \u003ctd\u003eOpenSSL License\u003c/td\u003e\n    \u003ctd\u003eYes\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003exmlsec-mscrypto\u003c/td\u003e\n    \u003ctd\u003eMicrosoft licensing: The libraries are part of MS Windows, and are also distributed with Internet Explorer.\u003c/td\u003e\n    \u003ctd\u003eUnknown\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003elibxml2\u003c/td\u003e\n    \u003ctd\u003eMIT license\u003c/td\u003e\n    \u003ctd\u003eYes\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eiconv\u003c/td\u003e\n    \u003ctd\u003eLGPL\u003c/td\u003e\n    \u003ctd\u003eYes\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eopenssl\u003c/td\u003e\n    \u003ctd\u003eApache-2.0 license\u003c/td\u003e\n    \u003ctd\u003eYes\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003ezlib1\u003c/td\u003e\n    \u003ctd\u003eZlib license\u003c/td\u003e\n    \u003ctd\u003eYes\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003elibexslt\u003c/td\u003e\n    \u003ctd\u003eMIT License\u003c/td\u003e\n    \u003ctd\u003eYes\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003elibxslt\u003c/td\u003e\n    \u003ctd\u003eMIT License\u003c/td\u003e\n    \u003ctd\u003eYes\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ch2\u003eResources\u003c/h2\u003e\n\u003cp\u003eSAML documentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ehttp://docs.oasis-open.org/security/saml/v2.0/saml-2.0-os.zip\u003c/li\u003e\n\u003cli\u003ehttps://developer.okta.com/docs/concepts/saml/\u003c/li\u003e\n\u003cli\u003ehttps://shibboleth.atlassian.net/wiki/spaces/CONCEPT/overview\u003c/li\u003e\n\u003cli\u003ehttps://en.wikipedia.org/wiki/SAML_2.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eXML-Sec API:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ehttps://www.aleksey.com/xmlsec/api/\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eResources:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ehttps://samltest.id/\u003c/li\u003e\n\u003cli\u003ehttps://www.samltool.com/online_tools.php\u003c/li\u003e\n\u003cli\u003ehttps://github.com/monmohan/samltools\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGenerate the keys\u003c/h2\u003e\n\u003cp\u003eIf you want to sign you request you need a private and a public key. You can generate both with this command:\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"\"\u003ekeygen.bat -h sp.samltools.com -e urn:msingh.samltools:sp -y 10\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSee \u003ca href=\"Docs/CommandLine.md\"\u003ecommand line\u003c/a\u003e for further detail.\u003c/p\u003e\n\u003cp\u003eRelease Notes:\nver.1.3.0 - 13 Mar 2023\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e64bit support\u003c/li\u003e\n\u003cli\u003esupport for xmlsec 1.3\u003c/li\u003e\n\u003cli\u003eNew SAML.inc file to use the right version of the DLLs bindings\u003c/li\u003e\n\u003cli\u003eBetter demo\u003c/li\u003e\n\u003cli\u003eSupport for encrypted private keys\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ever.1.2.0 - 11 Jul 2023\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCertificates and keys can be loaded from a buffer\u003c/li\u003e\n\u003cli\u003eSP configuration improvement: NameIdFormat, Comparison, IssuerNameQualifier, IssuerFormat\u003c/li\u003e\n\u003cli\u003eSupport for signatures in nodes different from the root node\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ever.1.1.0 - 1 Apr 2023\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSPID support (Italy's public digital identity)\u003c/li\u003e\n\u003cli\u003eSupport for HTTP-POST binding\u003c/li\u003e\n\u003cli\u003eNew AuthnRequest attribute \u0026ldquo;AuthnContext\u0026rdquo;\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ever.1.0.0 - 24 Oct 2022\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFirst stable version\u003c/li\u003e\n\u003c/ul\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fetheadev%2Fdelphi-saml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fetheadev%2Fdelphi-saml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fetheadev%2Fdelphi-saml/lists"}