Skip to content

shield-auth/shield

Repository files navigation

Shield: An Advanced IAM and CIAM Solution

Not ready for production use yet. Please use with caution.

Shield Hero

Rust-based Open Source Identity and Access Management

Website Language Documentation Crate Docs Crates.io Discord Twitter Follow

Branch Status Coverage
trunk CircleCI Codecov
develop CircleCI Codecov

About Shield 🔮

Shield is a robust, multi-tenant authentication and authorization solution developed by Mukesh Singh for modern age applications. It provides a comprehensive set of features to secure your applications and manage user access effectively.

Key Features 🔑

  • Multi-tenant Support: Manage multiple organizations or projects within a single instance.

  • User Management: Efficiently handle user accounts and permissions.

  • Role-based Access Control (RBAC): Define and manage user roles and permissions.

  • Session Management: Secure handling of user sessions.

  • API Key Support: Generate and manage API keys for secure programmatic access.

    • API Key Rotation
    • Rate Limiting
    • Expiration
    • Blacklisting and Whitelisting
    • Revocation

Coming Soon...

  • Two-factor Authentication (2FA)
  • OAuth2 Support
  • OpenID Connect Support
  • SAML Support

Documentation 📑

For detailed documentation, visit docs.shield.rs.

Development 🛠️

1. Clone the repository

git clone https://github.com/shield-auth/shield.git
cd shield

2. Set Up Environment Variables

cp .env.example .env

3. Start the applications

cargo run

👉 Note: You can get the default credentials in terminal or on later stage you can find it in ./logs/default_cred.json

Sea-ORM Entity Generation Command

To generate Sea-ORM entities, use the following command:

sea-orm-cli generate entity -o entity/src/models --with-serde both --enum-extra-attributes 'serde(rename_all = "snake_case")'

Contributing 🤝

[Add information about how to contribute to the project]

License 📜

This project is dual-licensed under the following terms (see the LICENSE file for details):

Users are free to choose the license that best suits their needs.

Contact 📞


An open source initiative with ❤️ by Mukesh Singh