{ "realm": "word-versioning", "enabled": true, "sslRequired": "none", "registrationAllowed": false, "loginWithEmailAllowed": true, "resetPasswordAllowed": false, "bruteForceProtected": false, "clients": [ { "clientId": "word-addin-officejs", "name": "Word Versioning Add-in (Office.js task pane)", "description": "Public client สำหรับ task pane — OIDC Authorization Code + PKCE S256 ผ่าน Office Dialog API (redirect กลับ auth-callback.html)", "enabled": true, "protocol": "openid-connect", "publicClient": true, "bearerOnly": false, "standardFlowEnabled": true, "implicitFlowEnabled": false, "directAccessGrantsEnabled": false, "serviceAccountsEnabled": false, "fullScopeAllowed": true, "surrogateAuthRequired": false, "redirectUris": [ "https://localhost:3000/auth-callback.html" ], "webOrigins": [ "https://localhost:3000" ], "attributes": { "pkce.code.challenge.method": "S256" }, "protocolMappers": [ { "name": "audience-self", "protocol": "openid-connect", "protocolMapper": "oidc-audience-mapper", "consentRequired": false, "config": { "included.client.audience": "word-addin-officejs", "id.token.claim": "false", "access.token.claim": "true", "userinfo.token.claim": "false" } } ], "defaultClientScopes": [ "web-origins", "acr", "profile", "roles", "basic", "email" ], "optionalClientScopes": [ "address", "phone", "offline_access", "microprofile-jwt" ] }, { "clientId": "word-versioning-web", "name": "Word Versioning Web Portal (Nuxt)", "description": "Public client สำหรับเว็บ portal — OIDC browser redirect ปกติ (top-level page) + PKCE S256", "enabled": true, "protocol": "openid-connect", "publicClient": true, "bearerOnly": false, "standardFlowEnabled": true, "implicitFlowEnabled": false, "directAccessGrantsEnabled": false, "serviceAccountsEnabled": false, "fullScopeAllowed": true, "surrogateAuthRequired": false, "redirectUris": [ "http://localhost:5173/*" ], "webOrigins": [ "http://localhost:5173" ], "attributes": { "pkce.code.challenge.method": "S256" }, "protocolMappers": [ { "name": "audience-self", "protocol": "openid-connect", "protocolMapper": "oidc-audience-mapper", "consentRequired": false, "config": { "included.client.audience": "word-versioning-web", "id.token.claim": "false", "access.token.claim": "true", "userinfo.token.claim": "false" } } ], "defaultClientScopes": [ "web-origins", "acr", "profile", "roles", "basic", "email" ], "optionalClientScopes": [ "address", "phone", "offline_access", "microprofile-jwt" ] }, { "clientId": "word-addin-vsto", "name": "Word Versioning Add-in (VSTO desktop)", "description": "Pre-register ไว้ตาม spec (spec-vsto.md ยังไม่มีงาน implement) — public + PKCE, redirect เป็น loopback ตาม RFC 8252", "enabled": true, "protocol": "openid-connect", "publicClient": true, "bearerOnly": false, "standardFlowEnabled": true, "implicitFlowEnabled": false, "directAccessGrantsEnabled": false, "serviceAccountsEnabled": false, "fullScopeAllowed": true, "surrogateAuthRequired": false, "redirectUris": [ "http://localhost/*", "http://127.0.0.1/*" ], "webOrigins": [], "attributes": { "pkce.code.challenge.method": "S256" }, "protocolMappers": [ { "name": "audience-self", "protocol": "openid-connect", "protocolMapper": "oidc-audience-mapper", "consentRequired": false, "config": { "included.client.audience": "word-addin-vsto", "id.token.claim": "false", "access.token.claim": "true", "userinfo.token.claim": "false" } } ], "defaultClientScopes": [ "web-origins", "acr", "profile", "roles", "basic", "email" ], "optionalClientScopes": [ "address", "phone", "offline_access", "microprofile-jwt" ] } ], "users": [ { "username": "testuser", "enabled": true, "email": "testuser@word-versioning.local", "emailVerified": true, "firstName": "Test", "lastName": "User", "credentials": [ { "type": "password", "value": "Test1234!", "temporary": false } ] } ] }