Define and test access control policies, roles, and permissions in standard JSON format.
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