遵循以下最佳实践的项目将能够自愿的自我认证,并显示他们已经实现了核心基础设施计划(OpenSSF)徽章。 显示详细资料
[](https://www.bestpractices.dev/projects/7128)
<a href="https://www.bestpractices.dev/projects/7128"><img src="https://www.bestpractices.dev/projects/7128/badge"></a>
The Single Sign-On Multi-Factor portal for web apps
A link in the above CONTRIBUTING.md points to https://www.authelia.com/contributing/development/introduction/ and https://www.authelia.com/contributing/guidelines/introduction/
As part of the Terms of Service on GitHub https://docs.github.com/en/site-policy/github-terms/github-terms-of-service#6-contributions-under-repository-license users have explicitly agreed that all contributions are made under the license agreement accompanying the repository. This is also a generally accepted practice in Open Source. In addition to this we also explicitly document this in this certification program and on the main Authelia website https://www.authelia.com/contributing/development/introduction/#licensing so that contributors are hopefully well informed of this information.
Our governance model is covered in the about page: https://www.authelia.com/information/about/
https://www.authelia.com/information/code-of-conduct/ and https://github.com/authelia/authelia/blob/master/CODE_OF_CONDUCT.md
All delegated roles are covered in the project about page: https://www.authelia.com/information/about/
The about page https://www.authelia.com/information/about/ covers several matters regarding the ability for the project to continue on the passing of any single individual.
The about page has a dedicated bus factor section https://www.authelia.com/information/about/#bus-factor
We have a dedicated roadmap which covers all of our priority items https://www.authelia.com/roadmap/prologue/introduction/
The overview section of our documentation has a high level overview of our architecture https://www.authelia.com/overview/prologue/architecture/
Our threat model documentation covers the important elements of this https://www.authelia.com/overview/security/threat-model/
The get started guide and the docker compose examples assist with users in a quick start style guide https://www.authelia.com/integration/prologue/get-started/
We require all contributors to include documentation with the introduction of major features or changes to features
The OpenSSF best practices badge has been added to the README.md https://github.com/authelia/authelia
We believe this is met generally however are uncomfortable claiming as such until we've done a more thorough investigation into the specific requirements and made a checklist public.
We use Crowdin Enterprise at https://translate.authelia.com
We do not have any user accounts for the website.
We maintain the latest minor version with patches, and provide security workarounds and patches upon request to older versions as per our versioning policy https://www.authelia.com/policies/versioning
The GitHub Issues system provides this functionality: https://github.com/authelia/authelia/issues
This is and has been part of our security policy for a long time and we have always kept true to the policy here https://www.authelia.com/policies/security/ and https://github.com/authelia/authelia/security/policy
See the policy here https://www.authelia.com/policies/security/ and https://github.com/authelia/authelia/security/policy
This is documented here https://www.authelia.com/contributing/guidelines/style/and enforced generally by linters both during the commit hook and in the Pull Request
All of our linters are configured by default to attempt to automatically reformat or warn on style issues
The build instructions include several of these examples and go build passes these values if provided.
We build our release binaries without debugging information by default, however instructions include a way to include it and it honors it when built that way, and in addition the dev workflow includes this by default as well as delve. https://www.authelia.com/contributing/development/build-and-test/
This is the default with go, it only builds the main package and follows the import paths
The manual instructions will produce the same bit for bit build on the same go OS and go ARCH, provided no
Our recommended installation methods are via docker, pkg, or deb's all of which abide by their uninstall methods.
Our packaging tools
We are looking at implementing this.
The go and pnpm/vite build systems enforce this https://github.com/authelia/authelia/blob/master/go.mod https://github.com/authelia/authelia/blob/master/go.sum https://github.com/authelia/authelia/blob/master/web/package.json https://github.com/authelia/authelia/blob/master/web/pnpm-lock.yaml
We use DependaBot to enforce this via GitHub
Both the go.mod and package.json files allow easy identification and update of external libs.
We actively remove deprecated functionalities and have no known deprecated functions at the moment. Our linting system quickly identifies these.
This is triggered by GitHub and performed on Buildkite. Every commit to master or PR is forced to be tested when the change is not purely documentation that is not code related.
Part of our testing guidelines require bugs to be tested with a test that should fail before that bug is fixed, and that exact test should pass after the fix. These tests remain present in the code in most cases for the life of the affected code.
We are looking at meeting this, we are currently under 80%.
Our policy for tests is documented at https://www.authelia.com/contributing/guidelines/introduction/#general-guidelines and enforces this specifically
Our policy for tests is documented at https://www.authelia.com/contributing/guidelines/introduction/#general-guidelines
We by default have warnings as a failure condition, and adjust the impractical ones
It is standard practice for us to implement secure defaults and intentionally gate insecure ones behind very clearly documented warnings, or even explicit flags in some occasions.
No security mechanisms rely on these algorithms.
We allow multiple hashing algorithms for passwords which allows users to switch easily.
We allow users to store these files (secrets) and environment variables, separate to the YAML config https://www.authelia.com/configuration/methods/introduction/
By default all connections require TLS1.2 or greater.
We support validation of all TLS connections including specifically trusting Enterprise PKI.
We require TLS (either at the port or at the proxy) and we do not allow cookies to be set on HTTP connections.
We plan on looking at meeting this in the near future.
All releases are signed.
All users are untrusted by default and the administrator configures the access list.
We enforce PIE and full relocation read-only. https://www.authelia.com/overview/security/measures/#protections-against-return-oriented-programming-attacks-and-general-hardening
See the following URL's which describe this https://www.authelia.com/overview/security/measures/ https://www.authelia.com/overview/security/threat-model/
We use CodeQL.
The project is written in Go which is considered memory safe.
后退