项目作者: nick96

项目描述 :
A SAML identity provider factory for dev and test (:construction: Under construction :construction:)
高级语言: Rust
项目地址: git://github.com/nick96/sidre.git
创建时间: 2020-10-24T13:29:29Z
项目社区:https://github.com/nick96/sidre

开源协议:Other

下载


Sidre - An identity provider factory

:construction: Sidre is still under development. You’re welcome to contribute but
it’s not ready for use! :construction:

For what needs to be done see the TODO file or the TODOs in the
codebase.

Motivation

Using SSO has many benefits for users and developers alike, but it can be
difficult to test properly, often different identity providers have different
configurations and integration testing is difficult because you don’t have
control over them. Sidre aims to provide an interface where you can
easily and programmatically provision IdPs with different configurations and
configure their relationship with service providers.

Goals

  • Provision IdPs on demand (when metadata is requested)
  • Highly configurable IdPs
  • Highly configurable Idp-SP relationships

Non-goals

  • Full SAML compliance
    • Just go so far as emulating normal behavior of common IdPs (SAML is big
      and hairy)
  • Proper security - This isn’t intended for use as an actual production IdP

Getting started

The expected high level usage for sidre is:

  • Request the metadata for an Identity Provider (IdP) identified by some ID.
    This creates the IdP if it doesn’t exist, otherwise just returns it’s metadata
    (GET /:idp_id/metadata)
  • Register the IdP in the Service Provider (SP) with the IdP metadata
  • Post the SP metadata to an endpoint that will associate the created IdP with
    the SP (POST /:idp_id/:sp_id/metadata)
  • Do some setup within the SP to register the IdP
  • Submit configuration updates for the IdP or SP-IdP relationship (:warning: Not
    yet implemented :warning:) (POST /:idp_id/config and POST /:idp_id/:sp_id/config respectively)

See the API docs for more information about the different endpoints.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.