# PySAML2 - SAML2 for Python
[![Version](https://img.shields.io/pypi/v/pysaml2)](https://pypi.org/project/pysaml2/)
[![Supported Python versions](https://img.shields.io/pypi/pyversions/pysaml2)](https://pypi.org/project/pysaml2/)
[![Total downloads](https://pepy.tech/badge/pysaml2)](https://pepy.tech/project/pysaml2)
[![Weekly downloads](https://pepy.tech/badge/pysaml2/week)](https://pepy.tech/project/pysaml2)
[![License](https://img.shields.io/github/license/IdentityPython/pysaml2)](https://github.com/IdentityPython/pysaml2/blob/master/LICENSE)
PySAML2 is a pure python implementation of SAML Version 2 Standard.
It contains all necessary pieces for building a SAML2 service provider
or an identity provider. The distribution contains examples of both.
Originally written to work in a WSGI environment
there are extensions that allow you to use it with other frameworks.
**Website**: https://idpy.org/
**Documentation**: https://pysaml2.readthedocs.io/
**Contribution guidelines**: [CONTRIBUTING.md][contributing]
**Security policies**: [SECURITY.md][sec]
**Source code**: https://github.com/IdentityPython/pysaml2/
**Developer guidelines**: [DEVELOPERS.md][dev]
**PyPI project**: https://pypi.org/project/pysaml2/
**License**: [LICENSE][license]
## Specifications
Retrieved from https://wiki.oasis-open.org/security/FrontPage
#### SAML V2.0 Standard
- SAML2 Core (aka Assertions and Protocols): http://www.oasis-open.org/committees/download.php/56776/sstc-saml-core-errata-2.0-wd-07.pdf
- Assertion schema: http://docs.oasis-open.org/security/saml/v2.0/saml-schema-assertion-2.0.xsd
- Protocols schema: http://docs.oasis-open.org/security/saml/v2.0/saml-schema-protocol-2.0.xsd
- Bindings: http://www.oasis-open.org/committees/download.php/56779/sstc-saml-bindings-errata-2.0-wd-06.pdf
- Profiles: http://www.oasis-open.org/committees/download.php/56782/sstc-saml-profiles-errata-2.0-wd-07.pdf
- Metadata: http://www.oasis-open.org/committees/download.php/56785/sstc-saml-metadata-errata-2.0-wd-05.pdf
- Metadata schema: http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd
- Authentication Context: http://docs.oasis-open.org/security/saml/v2.0/saml-authn-context-2.0-os.pdf
- Conformance Requirements: https://docs.oasis-open.org/security/saml/v2.0/saml-conformance-2.0-os.pdf
- Security and Privacy Considerations: http://docs.oasis-open.org/security/saml/v2.0/saml-sec-consider-2.0-os.pdf
- Glossary: http://docs.oasis-open.org/security/saml/v2.0/saml-glossary-2.0-os.pdf
#### Profiles and extensions
- Metadata Extension for SAML V2.0 and V1.x Query Requesters: http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-metadata-ext-query-os.pdf
- SAML V2.0 Metadata Interoperability Profile: https://docs.oasis-open.org/security/saml/Post2.0/sstc-metadata-iop-os.pdf
- SAML V2.0 Metadata Extensions for Login and Discovery User Interface Version 1.0: https://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-metadata-ui/v1.0/os/sstc-saml-metadata-ui-v1.0-os.pdf
- SAML V2.0 LDAP/X.500 Attribute Profile: http://www.oasis-open.org/committees/download.php/28042/sstc-saml-attribute-x500-cs-01.pdf
- SAML V2.0 Enhanced Client or Proxy Profile Version 2.0: https://docs.oasis-open.org/security/saml/Post2.0/saml-ecp/v2.0/cs01/saml-ecp-v2.0-cs01.pdf
#### Committee Specifications
- SAML V2.0 Subject Identifier Attributes Profile Version 1.0: https://docs.oasis-open.org/security/saml-subject-id-attr/v1.0/cs01/saml-subject-id-attr-v1.0-cs01.pdf
## Installation
You can install PySAML2 through pip:
```shell
pip install pysaml2
```
### External dependencies
PySAML2 works with the [`xmlsec`][xmlsec] binary.
Notice that support for xmlsec `1 1.3` was added with `v7.4.2`.
`xmlsec` should be readily available in most Linux distributions:
```shell
$ apt-get install xmlsec1
$ dnf install xmlsec1-openssl
$ yum install xmlsec1-openssl
$ pacman -S xmlsec
...
```
and on MacOS through [`homebrew`][brew]
```shell
$ brew install libxmlsec1
```
## Changelog
See the [CHANGELOG][clog] to learn about the latest developments.
## Contributing
We've set up a separate document for our [contribution guidelines][contributing].
## Community
[IdentityPython][idpy] is a community around
a collection of libraries and tools to manage identity related concepts with Python code.
You can interact with the community though the [mailing list](https://lists.sunet.se/postorius/lists/idpy-discuss.lists.sunet.se/)
or on the [Slack workspace](https://identity-python.slack.com/) ([invitation](https://join.slack.com/t/identity-python/shared_invite/enQtNzEyNjU1NDI1MjUyLTM2MWI5ZGNhMTk1ZThiOTIxNWY2OTY1ODVmMWNjMzUzMTYxNTY5MzE5N2RlYjExZTIyM2MwYjBjZGE4MGVlMTM)).
## Development
We've set up a separate document for [developers][dev].
### Releasing
We've set up a separate document for our [release process][rel].
### Pre-commit
(TODO)
[idpy]: https://idpy.org/
[docs]: https://pysaml2.readthedocs.io/
[contributing]: https://github.com/IdentityPython/pysaml2/blob/master/CONTRIBUTING.md
[sec]: https://github.com/IdentityPython/pysaml2/blob/master/SECURITY.md
[repo]: https://github.com/IdentityPython/pysaml2/
[dev]: https://github.com/IdentityPython/pysaml2/blob/master/DEVELOPERS.md
[pypi]: https://pypi.org/project/pysaml2/
[license]: https://github.com/IdentityPython/pysaml2/blob/master/LICENSE
[clog]: https://github.com/IdentityPython/pysaml2/blob/master/CHANGELOG.md
[rel]: https://github.com/IdentityPython/pysaml2/blob/master/RELEASE.md
[xmlsec]: http://www.aleksey.com/xmlsec/
[brew]: https://brew.sh/
Raw data
{
"_id": null,
"home_page": "https://idpy.org",
"name": "pysaml2",
"maintainer": "IdentityPython",
"docs_url": null,
"requires_python": ">=3.9,<4.0",
"maintainer_email": "discuss@idpy.org",
"keywords": "saml,saml2,standard,federation,identity,idpy,IdentityPython",
"author": "IdentityPython",
"author_email": "discuss@idpy.org",
"download_url": "https://files.pythonhosted.org/packages/76/02/e8ecb5d1574a2add1431c8ec16dff137610f30580a7c1d6205929b3db3ee/pysaml2-7.5.0.tar.gz",
"platform": null,
"description": "# PySAML2 - SAML2 for Python\n\n[![Version](https://img.shields.io/pypi/v/pysaml2)](https://pypi.org/project/pysaml2/)\n[![Supported Python versions](https://img.shields.io/pypi/pyversions/pysaml2)](https://pypi.org/project/pysaml2/)\n[![Total downloads](https://pepy.tech/badge/pysaml2)](https://pepy.tech/project/pysaml2)\n[![Weekly downloads](https://pepy.tech/badge/pysaml2/week)](https://pepy.tech/project/pysaml2)\n[![License](https://img.shields.io/github/license/IdentityPython/pysaml2)](https://github.com/IdentityPython/pysaml2/blob/master/LICENSE)\n\nPySAML2 is a pure python implementation of SAML Version 2 Standard.\nIt contains all necessary pieces for building a SAML2 service provider\nor an identity provider. The distribution contains examples of both.\nOriginally written to work in a WSGI environment\nthere are extensions that allow you to use it with other frameworks.\n\n**Website**: https://idpy.org/\n\n**Documentation**: https://pysaml2.readthedocs.io/\n\n**Contribution guidelines**: [CONTRIBUTING.md][contributing]\n\n**Security policies**: [SECURITY.md][sec]\n\n**Source code**: https://github.com/IdentityPython/pysaml2/\n\n**Developer guidelines**: [DEVELOPERS.md][dev]\n\n**PyPI project**: https://pypi.org/project/pysaml2/\n\n**License**: [LICENSE][license]\n\n\n## Specifications\n\nRetrieved from https://wiki.oasis-open.org/security/FrontPage\n\n#### SAML V2.0 Standard\n\n- SAML2 Core (aka Assertions and Protocols): http://www.oasis-open.org/committees/download.php/56776/sstc-saml-core-errata-2.0-wd-07.pdf\n - Assertion schema: http://docs.oasis-open.org/security/saml/v2.0/saml-schema-assertion-2.0.xsd\n - Protocols schema: http://docs.oasis-open.org/security/saml/v2.0/saml-schema-protocol-2.0.xsd\n- Bindings: http://www.oasis-open.org/committees/download.php/56779/sstc-saml-bindings-errata-2.0-wd-06.pdf\n- Profiles: http://www.oasis-open.org/committees/download.php/56782/sstc-saml-profiles-errata-2.0-wd-07.pdf\n- Metadata: http://www.oasis-open.org/committees/download.php/56785/sstc-saml-metadata-errata-2.0-wd-05.pdf\n - Metadata schema: http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd\n- Authentication Context: http://docs.oasis-open.org/security/saml/v2.0/saml-authn-context-2.0-os.pdf\n- Conformance Requirements: https://docs.oasis-open.org/security/saml/v2.0/saml-conformance-2.0-os.pdf\n- Security and Privacy Considerations: http://docs.oasis-open.org/security/saml/v2.0/saml-sec-consider-2.0-os.pdf\n- Glossary: http://docs.oasis-open.org/security/saml/v2.0/saml-glossary-2.0-os.pdf\n\n#### Profiles and extensions\n\n- Metadata Extension for SAML V2.0 and V1.x Query Requesters: http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-metadata-ext-query-os.pdf\n- SAML V2.0 Metadata Interoperability Profile: https://docs.oasis-open.org/security/saml/Post2.0/sstc-metadata-iop-os.pdf\n- SAML V2.0 Metadata Extensions for Login and Discovery User Interface Version 1.0: https://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-metadata-ui/v1.0/os/sstc-saml-metadata-ui-v1.0-os.pdf\n- SAML V2.0 LDAP/X.500 Attribute Profile: http://www.oasis-open.org/committees/download.php/28042/sstc-saml-attribute-x500-cs-01.pdf\n- SAML V2.0 Enhanced Client or Proxy Profile Version 2.0: https://docs.oasis-open.org/security/saml/Post2.0/saml-ecp/v2.0/cs01/saml-ecp-v2.0-cs01.pdf\n\n#### Committee Specifications\n\n- SAML V2.0 Subject Identifier Attributes Profile Version 1.0: https://docs.oasis-open.org/security/saml-subject-id-attr/v1.0/cs01/saml-subject-id-attr-v1.0-cs01.pdf\n\n\n## Installation\n\nYou can install PySAML2 through pip:\n\n```shell\npip install pysaml2\n```\n\n### External dependencies\n\nPySAML2 works with the [`xmlsec`][xmlsec] binary.\nNotice that support for xmlsec `1 1.3` was added with `v7.4.2`.\n\n`xmlsec` should be readily available in most Linux distributions:\n\n```shell\n$ apt-get install xmlsec1\n$ dnf install xmlsec1-openssl\n$ yum install xmlsec1-openssl\n$ pacman -S xmlsec\n...\n```\n\nand on MacOS through [`homebrew`][brew]\n\n```shell\n$ brew install libxmlsec1\n```\n\n\n## Changelog\n\nSee the [CHANGELOG][clog] to learn about the latest developments.\n\n\n## Contributing\n\nWe've set up a separate document for our [contribution guidelines][contributing].\n\n\n## Community\n\n[IdentityPython][idpy] is a community around\na collection of libraries and tools to manage identity related concepts with Python code.\nYou can interact with the community though the [mailing list](https://lists.sunet.se/postorius/lists/idpy-discuss.lists.sunet.se/)\nor on the [Slack workspace](https://identity-python.slack.com/) ([invitation](https://join.slack.com/t/identity-python/shared_invite/enQtNzEyNjU1NDI1MjUyLTM2MWI5ZGNhMTk1ZThiOTIxNWY2OTY1ODVmMWNjMzUzMTYxNTY5MzE5N2RlYjExZTIyM2MwYjBjZGE4MGVlMTM)).\n\n\n## Development\n\nWe've set up a separate document for [developers][dev].\n\n\n### Releasing\n\nWe've set up a separate document for our [release process][rel].\n\n\n### Pre-commit\n\n(TODO)\n\n\n [idpy]: https://idpy.org/\n [docs]: https://pysaml2.readthedocs.io/\n [contributing]: https://github.com/IdentityPython/pysaml2/blob/master/CONTRIBUTING.md\n [sec]: https://github.com/IdentityPython/pysaml2/blob/master/SECURITY.md\n [repo]: https://github.com/IdentityPython/pysaml2/\n [dev]: https://github.com/IdentityPython/pysaml2/blob/master/DEVELOPERS.md\n [pypi]: https://pypi.org/project/pysaml2/\n [license]: https://github.com/IdentityPython/pysaml2/blob/master/LICENSE\n [clog]: https://github.com/IdentityPython/pysaml2/blob/master/CHANGELOG.md\n [rel]: https://github.com/IdentityPython/pysaml2/blob/master/RELEASE.md\n [xmlsec]: http://www.aleksey.com/xmlsec/\n [brew]: https://brew.sh/\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Python implementation of SAML Version 2 Standard",
"version": "7.5.0",
"project_urls": {
"Bug Tracker": "https://github.com/IdentityPython/pysaml2/issues",
"Documentation": "https://pysaml2.readthedocs.io",
"Homepage": "https://idpy.org",
"Repository": "https://github.com/IdentityPython/pysaml2"
},
"split_keywords": [
"saml",
"saml2",
"standard",
"federation",
"identity",
"idpy",
"identitypython"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "fed192d84ae0e80e829e84785c6e4e425ff6d447116289f0ecf2af068f771a73",
"md5": "812ea63e08b5a786f0b1aae51b0fe50e",
"sha256": "bc6627cc344476a83c757f440a73fda1369f13b6fda1b4e16bca63ffbabb5318"
},
"downloads": -1,
"filename": "pysaml2-7.5.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "812ea63e08b5a786f0b1aae51b0fe50e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9,<4.0",
"size": 419304,
"upload_time": "2024-01-30T11:49:04",
"upload_time_iso_8601": "2024-01-30T11:49:04.500306Z",
"url": "https://files.pythonhosted.org/packages/fe/d1/92d84ae0e80e829e84785c6e4e425ff6d447116289f0ecf2af068f771a73/pysaml2-7.5.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7602e8ecb5d1574a2add1431c8ec16dff137610f30580a7c1d6205929b3db3ee",
"md5": "0bb713a1c56acd4615b5bcae48e09113",
"sha256": "f36871d4e5ee857c6b85532e942550d2cf90ea4ee943d75eb681044bbc4f54f7"
},
"downloads": -1,
"filename": "pysaml2-7.5.0.tar.gz",
"has_sig": false,
"md5_digest": "0bb713a1c56acd4615b5bcae48e09113",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9,<4.0",
"size": 340338,
"upload_time": "2024-01-30T11:49:08",
"upload_time_iso_8601": "2024-01-30T11:49:08.589697Z",
"url": "https://files.pythonhosted.org/packages/76/02/e8ecb5d1574a2add1431c8ec16dff137610f30580a7c1d6205929b3db3ee/pysaml2-7.5.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-01-30 11:49:08",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "IdentityPython",
"github_project": "pysaml2",
"travis_ci": true,
"coveralls": false,
"github_actions": false,
"lcname": "pysaml2"
}