An Elixir Plug library for adding SAML 2.0 Service Provider Single-Sign-On authentication to Phoenix/Plug applications.
Samly is an Elixir library that enables SAML 2.0 Service Provider (SP) Single-Sign-On (SSO) authentication for applications built with the Phoenix framework or Plug. It allows developers to integrate enterprise-grade identity management by connecting to a wide range of Identity Providers (IdPs) like Okta, Ping Identity, and ADFS.
Elixir developers building Phoenix or Plug-based applications that require SAML 2.0 SSO integration with enterprise identity providers. It is particularly suited for teams needing to authenticate users via existing corporate or institutional IdPs.
Developers choose Samly for its security-first design, flexibility in supporting multiple IdPs and URL routing models, and seamless integration into the Elixir/Plug ecosystem. It provides a robust, standards-compliant implementation with extensible pipelines and state stores for complex authentication scenarios.
Elixir Plug library to enable SAML 2.0 SP SSO in Phoenix/Plug applications.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports a wide range of Identity Providers like Okta, Ping Identity, and ADFS, as listed in the README, ensuring seamless enterprise integration without vendor lock-in.
Offers both URL path segment and subdomain-based routing for IdP identification, providing deployment flexibility for different hosting scenarios and multi-tenant setups.
Allows custom Plug pipelines for attribute transformation and Just-in-Time user provisioning, enabling deep customization of authentication flows as demonstrated in the README's sample pipeline.
Enforces signed requests/responses by default, supports encrypted assertions, and includes checks for replay attacks, prioritizing security standards and compliance.
Requires manual generation of certificates, handling of IdP metadata files, and detailed configuration, which can be time-consuming and error-prone for developers new to SAML.
The README admits that replay attack checks are not built-in; developers must implement them using custom pipelines or external stores, adding complexity and potential security gaps.
Core documentation often references external repos like samly_howto for setup, which may fragment the learning experience and require additional effort to piece together.