devise_scim 0.1.14 → 0.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/AGENTS.md +4 -1
- data/CHANGELOG.md +9 -0
- data/README.md +1 -1
- data/SECURITY.md +64 -0
- data/lib/devise_scim/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f70cc2263ef16f703d8098d51c6e19011ea0819825e15a5ab603db3ce1f7aaf4
|
|
4
|
+
data.tar.gz: 166c7f9af35d0e65ca4c68683076f396e2168daaa9d3dd30373cb780c2ba1a15
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b7d028e40b43a183c758b5e106ed45473f146315cc644a957c81139007fc802d0131f2174d3b2b2e5d4bdb1342910f5dc10d4e71e096647364a74841995f75a6
|
|
7
|
+
data.tar.gz: 8f014c03287d33ef0d691bd3142f8a099edc189e63b799258b4e126dd9f29ff7490d3eecfb003403d0da3a11211d514057df43a8b29353ce1b1c121b629f118c
|
data/AGENTS.md
CHANGED
|
@@ -12,6 +12,7 @@ This is `devise_scim` — a SCIM 2.0 server engine for Rails + Devise applicatio
|
|
|
12
12
|
| `spec/` | RSpec suite — unit specs for every subsystem, request specs for all endpoints |
|
|
13
13
|
| `spec/internal/` | Combustion test app: `db/schema.rb`, `config/routes.rb`, minimal models, warden initializer |
|
|
14
14
|
| `lib/devise_scim/rspec/` | Host-app test harness: shared examples for Users/Groups/discovery endpoints, `ScimHelpers`, FactoryBot factories |
|
|
15
|
+
| `lib/devise_scim/minitest.rb` | Host-app Minitest assertions (`assert_scim_status`, `assert_scim_error`, payload/header helpers) |
|
|
15
16
|
|
|
16
17
|
## Required checks before any commit
|
|
17
18
|
|
|
@@ -68,13 +69,15 @@ The multi-tenant templates reference the `tenant_fk_column` helper method define
|
|
|
68
69
|
```
|
|
69
70
|
lib/devise_scim/auth/
|
|
70
71
|
base_strategy.rb # extracts Bearer token from Authorization header
|
|
71
|
-
token_strategy.rb # compares against config.token (single) or
|
|
72
|
+
token_strategy.rb # compares against config.token (single) or tenant_model.authenticate_token (multi)
|
|
72
73
|
oauth_strategy.rb # validates Doorkeeper access tokens
|
|
73
74
|
lib/devise_scim/middleware/authenticator.rb
|
|
74
75
|
```
|
|
75
76
|
|
|
76
77
|
`Authenticator` is a Rack middleware inserted early in the stack. It intercepts every request whose path starts with `route_prefix`, delegates to the appropriate strategy, and either sets `env["devise_scim.tenant"]` (multi-tenant) or returns a 401 SCIM error response. It also calls `warden.custom_failure!` so Warden does not swallow the 401.
|
|
77
78
|
|
|
79
|
+
In multi-tenant mode with a custom `tenant_model`, auth strategies call class methods/columns on that model (`authenticate_token`, `doorkeeper_application_id`, `active`). Include `DeviseScim::Concerns::ScimTenant` on custom tenant models to satisfy that contract.
|
|
80
|
+
|
|
78
81
|
Do not move auth logic into controllers — the middleware layer is the single authentication boundary.
|
|
79
82
|
|
|
80
83
|
## Filter system
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
2
|
|
|
3
|
+
## [0.1.15] - 2026-05-02
|
|
4
|
+
|
|
5
|
+
- docs: update AGENTS.md with Minitest assertions and clarify auth strategies
|
|
6
|
+
- chore: create SECURITY.md for security policy and guidelines
|
|
7
|
+
- Update issue templates
|
|
8
|
+
- fix: correct link to contributing guidelines in README
|
|
9
|
+
- fix: correct link to contributing guidelines in README
|
|
10
|
+
- Remove test log and ignoring it
|
|
11
|
+
|
|
3
12
|
## [0.1.14] - 2026-04-28
|
|
4
13
|
|
|
5
14
|
- ci: populate CHANGELOG with commits on release
|
data/README.md
CHANGED
|
@@ -344,5 +344,5 @@ MIT. Used at your own risk. No liability is held by the author.
|
|
|
344
344
|
|
|
345
345
|
This gem was developed with significant assistance from Claude (Anthropic). Contributions and audits welcome, AI or otherwise.
|
|
346
346
|
|
|
347
|
-
1. Please follow the [contributing guidelines](
|
|
347
|
+
1. Please follow the [contributing guidelines](docs/contributing.md) for submitting pull requests and reporting issues.
|
|
348
348
|
2. Ensure your code adheres to the [code of conduct](CODE_OF_CONDUCT.md) and is tested with the provided test harness.
|
data/SECURITY.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
`devise_scim` handles authentication and authorization for SCIM 2.0 endpoints — bearer token validation, OAuth 2.0 client-credentials flows, and tenant isolation. Security issues in this library can directly affect identity provisioning pipelines, so responsible disclosure is taken seriously.
|
|
4
|
+
|
|
5
|
+
## Supported Versions
|
|
6
|
+
|
|
7
|
+
This project is pre-1.0. Only the **latest released version** receives security fixes. There are no backport commitments to older patch or minor versions.
|
|
8
|
+
|
|
9
|
+
| Version | Supported |
|
|
10
|
+
| ------- | --------- |
|
|
11
|
+
| Latest `0.1.x` | ✅ |
|
|
12
|
+
| Older `0.1.x` | ❌ |
|
|
13
|
+
|
|
14
|
+
Once the gem reaches 1.0, the policy will be updated to cover the latest minor series.
|
|
15
|
+
|
|
16
|
+
## Scope
|
|
17
|
+
|
|
18
|
+
**In scope** — vulnerabilities in this gem's code:
|
|
19
|
+
|
|
20
|
+
- Bearer token validation bypass or timing attacks
|
|
21
|
+
- OAuth 2.0 client-credentials flow weaknesses
|
|
22
|
+
- Tenant isolation failures (cross-tenant data leakage in multi-tenant mode)
|
|
23
|
+
- SCIM filter injection or attribute exposure beyond configured mappings
|
|
24
|
+
- Authentication bypasses in `ScimAdapter` hooks
|
|
25
|
+
- Input validation gaps that allow privilege escalation via provisioned attributes
|
|
26
|
+
- RFC 7643 / RFC 7644 non-conformance that creates a security boundary violation
|
|
27
|
+
|
|
28
|
+
**Out of scope:**
|
|
29
|
+
|
|
30
|
+
- Vulnerabilities in your own application's Devise configuration
|
|
31
|
+
- Weaknesses in the identity provider (Okta, Azure AD, OneLogin, etc.)
|
|
32
|
+
- Issues requiring a misconfigured `devise_scim` initializer to reproduce (e.g., storing tokens in source control)
|
|
33
|
+
- General Rails or Devise security issues unrelated to SCIM handling
|
|
34
|
+
|
|
35
|
+
If you are unsure whether an issue is in scope, report it anyway — it will be evaluated.
|
|
36
|
+
|
|
37
|
+
## Reporting a Vulnerability
|
|
38
|
+
|
|
39
|
+
**Use GitHub's private vulnerability reporting.** Do not open a public issue.
|
|
40
|
+
|
|
41
|
+
1. Go to the [Security tab](https://github.com/vertigo-prime/devise_scim/security) of this repository.
|
|
42
|
+
2. Click **"Report a vulnerability"**.
|
|
43
|
+
3. Fill in: affected version(s), steps to reproduce, potential impact, and any suggested fix.
|
|
44
|
+
|
|
45
|
+
This opens a private channel visible only to the maintainer.
|
|
46
|
+
|
|
47
|
+
## Response Timeline
|
|
48
|
+
|
|
49
|
+
This is a solo-maintained project. Responses are best-effort, not guaranteed within a business SLA.
|
|
50
|
+
|
|
51
|
+
| Event | Target |
|
|
52
|
+
| ----- | ------ |
|
|
53
|
+
| Acknowledgement | Within 7 days |
|
|
54
|
+
| Severity assessment | Within 14 days |
|
|
55
|
+
| Patch for critical issues | Within 30 days |
|
|
56
|
+
| Patch for moderate issues | Within 60 days |
|
|
57
|
+
|
|
58
|
+
If a critical vulnerability has not received acknowledgement within 7 days, a follow-up in the private thread is welcome.
|
|
59
|
+
|
|
60
|
+
## Coordinated Disclosure
|
|
61
|
+
|
|
62
|
+
Please allow time to patch before any public disclosure. A 90-day window from initial report is the standard expectation. For critical issues with active exploitation, a shorter timeline can be negotiated — mention it in the report.
|
|
63
|
+
|
|
64
|
+
Once a fix is released, credit will be given in the CHANGELOG and release notes unless anonymity is requested.
|
data/lib/devise_scim/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: devise_scim
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.15
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Vertigo-Prime
|
|
@@ -84,6 +84,7 @@ files:
|
|
|
84
84
|
- LICENSE.txt
|
|
85
85
|
- README.md
|
|
86
86
|
- Rakefile
|
|
87
|
+
- SECURITY.md
|
|
87
88
|
- app/controllers/devise_scim/application_controller.rb
|
|
88
89
|
- app/controllers/devise_scim/groups_controller.rb
|
|
89
90
|
- app/controllers/devise_scim/resource_types_controller.rb
|