Skip to main content

rustauth_saml/
lib.rs

1//! SAML 2.0 service-provider support for RustAuth enterprise SSO.
2//!
3//! Signed and encrypted SAML paths use [`opensaml`] when the `saml-signed`
4//! feature is enabled; otherwise they fail closed with stable error codes.
5
6pub mod options;
7
8mod bridge;
9
10#[path = "saml/mod.rs"]
11mod saml_impl;
12
13pub mod metadata {
14    pub use crate::saml_impl::metadata::*;
15}
16
17#[cfg(any(feature = "sso-internal", feature = "test-util"))]
18pub mod assertions {
19    pub use crate::saml_impl::assertions::*;
20}
21
22#[cfg(any(feature = "sso-internal", feature = "test-util"))]
23pub mod authn_request {
24    pub use crate::saml_impl::authn_request::*;
25}
26
27#[cfg(feature = "test-util")]
28pub mod encryption {
29    pub use crate::saml_impl::encryption::*;
30}
31
32#[cfg(any(feature = "sso-internal", feature = "test-util"))]
33pub mod logout {
34    pub use crate::saml_impl::logout::*;
35}
36
37#[cfg(any(feature = "sso-internal", feature = "test-util"))]
38pub mod security {
39    pub use crate::saml_impl::security::*;
40}
41
42#[cfg(any(feature = "sso-internal", feature = "test-util"))]
43pub mod signature {
44    pub use crate::saml_impl::signature::*;
45}
46
47#[cfg(any(feature = "sso-internal", feature = "test-util"))]
48pub mod state {
49    pub use crate::saml_impl::state::*;
50}
51
52#[cfg(feature = "test-util")]
53pub mod xml {
54    pub use crate::saml_impl::xml::*;
55}
56
57pub use crate::bridge::SpBuildOptions;
58pub use options::{
59    SamlConfig, SamlIdpMetadata, SamlMapping, SamlProviderConfig, SamlService, SamlSpMetadata,
60};
61pub use saml_impl::{
62    collect_saml_runtime_algorithms, validate_saml_config_algorithms,
63    validate_saml_config_algorithms_with_policy, validate_saml_runtime_algorithms,
64    validate_saml_timestamp, validate_saml_timestamp_at, DataEncryptionAlgorithm,
65    DeprecatedAlgorithmBehavior, DigestAlgorithm, KeyEncryptionAlgorithm, SamlConditions,
66    SamlRuntimeAlgorithmPolicy, SamlRuntimeAlgorithms, SamlSecurityError, SignatureAlgorithm,
67    TimestampValidationOptions,
68};
69
70/// Public signature policy placeholder for future backend selection.
71pub type SamlSignaturePolicy<'a> = SamlRuntimeAlgorithmPolicy<'a>;
72/// Public parsed assertion type.
73pub type SamlAssertion = saml_impl::assertions::ParsedSamlAssertion;
74/// Public logout state identifier type.
75pub type SamlLogoutState = String;
76/// Public SAML error type for security validation failures.
77pub type SamlError = SamlSecurityError;
78
79/// Current crate version.
80pub const VERSION: &str = env!("CARGO_PKG_VERSION");