Skip to content

Add Identity and Access Management dimension - #82

Open
jdsmithit wants to merge 4 commits into
devsecopsmaturitymodel:mainfrom
jdsmithit:feat/IdentityAndAccessManagement
Open

Add Identity and Access Management dimension#82
jdsmithit wants to merge 4 commits into
devsecopsmaturitymodel:mainfrom
jdsmithit:feat/IdentityAndAccessManagement

Conversation

@jdsmithit

Copy link
Copy Markdown

Adds a new "Identity and Access Management" dimension to the Implementation stage, covering both governance controls (central SSO/IdP for human access, account inventory, segregation of duties, automated joiner-mover-leaver provisioning, periodic access recertification, just-in-time privileged access) and controls owned directly by developers (server-side authorization enforcement, automated authorization test coverage, correct OAuth2/OIDC flows, least-privilege scoping for service accounts and CI permissions).

Non-human identities (service accounts, workload identities, CI/CD pipelines) are called out explicitly since they're an increasingly common source of access-related incidents.

@jdsmithit

jdsmithit commented Jul 31, 2026

Copy link
Copy Markdown
Author

This one's been a bit of a tough one, since you have to frame the dev team's responsibilities from an IT ops standpoint. Feedback would be appreciated. I could see this growing bigger in the future, but I think it's a good starting point, given broken access control is still #1 in the OWASP Top 10.

@wurstbrot

Copy link
Copy Markdown
Contributor

@jdsmithit

Copy link
Copy Markdown
Author

i would move RBAC and MFA https://dsomm.owasp.org/#598e9f13-1ac8-4a01-b85e-8fab93ee81de, but leave MFA for admins where it is thoughts?

@wurstbrot

Copy link
Copy Markdown
Contributor

Why would that not be in the new dimension? They are both very much connected

I will one day change RBAC to Attribute Based Access Control.

@jdsmithit

Copy link
Copy Markdown
Author

Yes, you're absolutely correct. I got confused, as I was thinking it was specifically related to infrastructure. There is also a simple access controls category for systems: https://dsomm.owasp.org/#82e499d1-f463-4a4b-be90-68812a874af6. I'll move that as well.

I think RBAC might be better positioned as "Fine-Grained Access Controls", encompassing approaches such as ABAC, RBAC, and PBAC. That would align better with the Simple Access Controls category as well.

@jdsmithit

Copy link
Copy Markdown
Author

Drafted the change for RBAC

@wurstbrot
wurstbrot requested a review from vbakke August 1, 2026 06:22
@wurstbrot

Copy link
Copy Markdown
Contributor

It feels to me that there are too many activities at level 2

Simple access control for systems — all internal systems use basic authentication; a documented baseline gate
MFA for admins — two+ factor authentication on all privileged accounts
Account inventory — a current, owned list of every account, human and non-human
Enforce server-side authorization on every request — deny-by-default authz checked on the server, stopping IDOR / broken access control

Level 2 — consolidate and structure

Central identity provider for human access — all human access federated through one IdP/SSO instead of per-system logins
MFA — extend two+ factor to all accounts on important systems
Use correct OAuth2/OIDC authorization flows — Auth Code + PKCE for apps, Client Credentials for services; no Implicit/ROPC
Least-privilege access baseline — default-deny roles, no shared accounts, capped admins, scoped service accounts
Role-based access control (RBAC) baseline — access driven by defined, documented roles rather than per-user grants

Level 3 — automate and assure

Segregation of duties for critical actions — conflicting duties (author vs approver, deploy vs approve) split and technically enforced
Automated authorization test coverage — CI tests asserting each role/permission boundary, including negative "should be denied" cases
Automated joiner-mover-leaver provisioning — access granted/changed/revoked automatically from an authoritative source, with a leaver SLA
Workload and machine identity — short-lived, verifiable identities (OIDC federation/SPIFFE) for non-human access, retiring static keys

Level 4 — eliminate standing privilege / policy-driven access

Just-in-time privileged access — time-boxed, approved, auto-revoked elevation; zero standing admin
Attribute/policy-based access control (ABAC/PBAC) — attributes or centrally evaluated policies (e.g. OPA) where roles are too coarse
Periodic access recertification — scheduled re-attestation of access with enforced revocation, covering service accounts too

Level 5 — continuous verification

Continuous and risk-adaptive access — decisions re-evaluated on device/context/risk, with automatic segregation-of-duties conflict detection
@jdsmithit

Copy link
Copy Markdown
Author

Level 1 — foundations

Simple access control for systems — all internal systems use basic authentication; a documented baseline gate
MFA for admins — two+ factor authentication on all privileged accounts
Account inventory — a current, owned list of every account, human and non-human
Enforce server-side authorization on every request — deny-by-default authz checked on the server, stopping IDOR / broken access control

Level 2 — consolidate and structure

Central identity provider for human access — all human access federated through one IdP/SSO instead of per-system logins
MFA — extend two+ factor to all accounts on important systems
Use correct OAuth2/OIDC authorization flows — Auth Code + PKCE for apps, Client Credentials for services; no Implicit/ROPC
Least-privilege access baseline — default-deny roles, no shared accounts, capped admins, scoped service accounts
Role-based access control (RBAC) baseline — access driven by defined, documented roles rather than per-user grants

Level 3 — automate and assure

Segregation of duties for critical actions — conflicting duties (author vs approver, deploy vs approve) split and technically enforced
Automated authorization test coverage — CI tests asserting each role/permission boundary, including negative "should be denied" cases
Automated joiner-mover-leaver provisioning — access granted/changed/revoked automatically from an authoritative source, with a leaver SLA
Workload and machine identity — short-lived, verifiable identities (OIDC federation/SPIFFE) for non-human access, retiring static keys

Level 4 — eliminate standing privilege / policy-driven access

Just-in-time privileged access — time-boxed, approved, auto-revoked elevation; zero standing admin
Attribute/policy-based access control (ABAC/PBAC) — attributes or centrally evaluated policies (e.g. OPA) where roles are too coarse
Periodic access recertification — scheduled re-attestation of access with enforced revocation, covering service accounts too

Level 5 — continuous verification

Continuous and risk-adaptive access — decisions re-evaluated on device/context/risk, with automatic segregation-of-duties conflict detection

@wurstbrot

wurstbrot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Hi, Level 1 should be a no brainer, so at least "Account inventory — a current, owned list of every account, human and non-human" needs to move to 2.
Level 2 also has to many activities, half needs to move to 3. RBAC is 4 already and needs to stay I think or go level 3.
"Use correct OAuth2/OIDC authorization flows" feels like level 3 because it is not easy to implement.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants