๐Ÿšช

Access Control Simulator

WIA-SEC-010 Interactive Testing Environment

Access Control Data Formats

Define and test access control policies, roles, and permissions in standard JSON format.

Policy Definition

Role Definition

Simple Role

{ "roleId": "viewer", "permissions": ["read"] }

Hierarchical Role

{ "roleId": "manager", "inherits": ["viewer", "editor"], "permissions": ["approve", "assign"] }

Authorization Algorithms

Test different access control algorithms including RBAC, ABAC, and hybrid models.

RBAC (Role-Based Access Control)

ABAC (Attribute-Based Access Control)

Access Control Protocol

Simulate access control request/response flows and policy evaluation protocols.

Authorization Request

Protocol Flow

Client                    PEP                    PDP                    PIP
  |                        |                      |                      |
  |----(1) Access Req----->|                      |                      |
  |                        |---(2) Auth Req------>|                      |
  |                        |                      |---(3) Get Attrs----->|
  |                        |                      |<---(4) Attrs---------|
  |                        |                      |                      |
  |                        |                      |- Evaluate Policy     |
  |                        |                      |                      |
  |                        |<---(5) Decision------|                      |
  |<---(6) Allow/Deny------|                      |                      |

PEP: Policy Enforcement Point
PDP: Policy Decision Point
PIP: Policy Information Point

System Integration

Examples and tools for integrating WIA-SEC-010 with various systems and platforms.

REST API Integration

POST /api/v1/access/authorize Authorization: Bearer <token> Content-Type: application/json { "subject": "user@example.com", "resource": "/documents/sensitive.pdf", "action": "read" } Response: { "decision": "PERMIT", "obligations": ["log_access", "notify_owner"], "validUntil": "2025-12-25T18:00:00Z" }

SDK Integration Examples

TypeScript/JavaScript

import { AccessControl } from '@wia/access-control'; const ac = new AccessControl({ policyStore: './policies' }); const allowed = await ac.authorize({ user: 'alice', resource: '/api/data', action: 'read' });

Python

from wia_access_control import AccessControl ac = AccessControl( policy_store='./policies' ) allowed = ac.authorize( user='alice', resource='/api/data', action='read' )

Middleware Integration

// Express.js middleware const accessControl = require('@wia/access-control-middleware'); app.use(accessControl({ policyPath: './policies.json', onDeny: (req, res) => { res.status(403).json({ error: 'Access Denied' }); } })); app.get('/sensitive', (req, res) => { // Only accessible if authorized res.json({ data: 'sensitive information' }); });

QR Codes & Verifiable Credentials

Generate and verify access credentials using QR codes and verifiable credentials.

Generate Access QR Code

Verifiable Credential Format

{ "@context": [ "https://www.w3.org/2018/credentials/v1", "https://wia.org/credentials/access/v1" ], "type": ["VerifiableCredential", "AccessCredential"], "issuer": "did:wia:organization:12345", "issuanceDate": "2025-12-25T00:00:00Z", "expirationDate": "2026-12-25T00:00:00Z", "credentialSubject": { "id": "did:wia:user:alice", "roles": ["admin", "developer"], "permissions": { "resources": ["/api/*", "/admin/*"], "actions": ["read", "write", "delete"] } }, "proof": { "type": "Ed25519Signature2020", "created": "2025-12-25T00:00:00Z", "verificationMethod": "did:wia:org:12345#key-1", "proofPurpose": "assertionMethod", "proofValue": "z58DAdF..." } }

Verify Credential