User Roles and Security
Overview
- What you’ll learn: How to configure role-based access control (RBAC) in iDempiere, including window, process, form, and data-level permissions, to secure your system with the principle of least privilege.
- Prerequisites: Lesson 1 (Introduction to iDempiere), Lesson 3 (Navigating the Interface), Lesson 5 (Organization Structure)
- Estimated reading time: 22 minutes
Introduction
Security is not an afterthought in ERP systems — it is a foundational requirement. An iDempiere installation typically serves users across multiple departments, each with different responsibilities and different needs for data access. A warehouse clerk should not be modifying the chart of accounts. An accounts payable specialist should not be approving their own purchase orders. A regional manager should see data only for their region, not for the entire company.
iDempiere implements security through a comprehensive role-based access control (RBAC) system. Roles are the central mechanism: every permission — what windows a user can open, what processes they can run, what data they can see, and even whether they can read or write — is controlled through role configuration. This lesson covers the entire security model, from the AD_Role table to record-level access rules, and provides best practices for designing a secure, maintainable role structure.
The Role Concept (AD_Role)
What Is a Role?
A role in iDempiere is a named collection of permissions stored in the AD_Role table. It defines what a user can and cannot do within the system. Roles are not users — they are permission templates that are assigned to users. A single user can be assigned multiple roles and selects which role to use at login time. This means the same person can log in as “Sales Manager” to process orders during the day and switch to “Report Viewer” when they only need read-only access to reports.
Key fields on the AD_Role record include:
- Name: The descriptive name of the role (e.g., “Accounts Payable Clerk,” “Sales Manager,” “System Administrator”).
- User Level: Defines the data scope the role operates at. Options include:
- System: Access to system-level data and configuration (Application Dictionary, system clients).
- Client: Access to data at the client (company/tenant) level.
- Organization: Access restricted to specific organization(s).
- Client+Organization: Access to both client-wide and organization-specific data. This is the most common setting for regular business users.
- Is Manual: When checked, the role uses explicit permission grants (whitelist approach — only specifically granted windows/processes are accessible). When unchecked, the role starts with access to everything and uses exclusion rules (blacklist approach). The Manual/whitelist approach is more secure and recommended for production environments.
- Max Query Records: Limits the number of records returned in queries to prevent performance issues from unrestricted searches.
- Overwrite Price Limit: Whether users in this role can override the limit (floor) price on sales orders.
- Is Can Approve Own Doc: Whether users can approve documents they themselves created (disabling this enforces segregation of duties).
- Approval Amount: The maximum monetary value a user in this role can approve without escalation.
- Confirm Query Records: A threshold that triggers a confirmation dialog when a query returns more than this many records.
System Administrator vs. Regular Roles
iDempiere ships with a pre-configured System Administrator role that has unrestricted access to everything — all windows, all processes, all data, across all clients and organizations. This role is used for initial setup, system configuration, and Application Dictionary modifications.
The System Administrator role should be assigned to a very limited number of users (ideally one or two) and should never be used for day-to-day business operations. Here is why:
- It bypasses all security restrictions, making accidental data modifications catastrophically easy.
- It provides access to the Application Dictionary, where changes can break the system.
- It operates across all clients in a multi-tenant environment.
- Audit trails lose meaning when changes are made by an omnipotent account.
For regular business operations, create purpose-specific roles with only the permissions each job function requires.
Access Control Configuration
Window Access (AD_Window_Access)
The AD_Window_Access table controls which windows (screens) are visible to a role. For each window, you specify:
- Window: The specific window being granted (e.g., Sales Order, Business Partner, Product).
- Is Read Write: When checked, the user can view and modify records in this window. When unchecked, the user has read-only access — they can see the data but cannot create, update, or delete records. Read-only access is valuable for transparency without risk — allowing a sales manager to view inventory levels without the ability to adjust them.
If a role does not have an entry in AD_Window_Access for a particular window, that window is completely invisible to the role — it will not appear in the menu, and directly navigating to it will be blocked. This is the default behavior for “manual” roles and is the essence of the whitelist approach.
Process Access (AD_Process_Access)
Processes in iDempiere are executable actions — reports, data imports, batch operations, and document processing routines. The AD_Process_Access table grants or restricts access to these processes per role.
- Process: The specific process being granted (e.g., “Generate Invoices,” “Import Bank Statement,” “Aging Report”).
- Is Read Write: For processes, Read Write means the user can execute the process. Read Only is less commonly used but can restrict the user to viewing the process definition without executing it.
Process access is particularly important for controlling who can run powerful batch operations like “Generate Invoices from Shipments” or “Reset Accounting” — operations that affect many records at once and should be restricted to authorized personnel.
Form Access (AD_Form_Access)
Forms are special interactive screens that go beyond standard window-based data entry. Examples include the Payment Allocation form, the Bank Statement Match form, and the Material Receipt form. The AD_Form_Access table works identically to window access:
- Form: The specific form being granted.
- Is Read Write: Whether the user can interact with the form fully (read-write) or view only (read-only).
Task Access
Tasks represent operating system-level operations that can be triggered from within iDempiere (though these are rarely used in modern deployments). Task access controls which roles can execute these external tasks.
Workflow Access
Controls which approval and process workflows a role can participate in or manage. This is relevant when you have document approval workflows configured — only roles with appropriate workflow access can act as approvers.
Data Access Levels
Understanding Access Levels
Every table in iDempiere has a defined Access Level that determines which roles can access its data. This is a fundamental security layer that operates beneath window and process access. The access levels are:
- System Only (Level 4): Only the System Administrator role can access this data. These are Application Dictionary tables and system configuration tables. Regular business roles cannot see this data regardless of their window access settings.
- System+Client (Level 6): Accessible by the System Administrator and by Client-level administrator roles. Used for tables that have both system-level defaults and client-specific overrides.
- Client Only (Level 2): Accessible by roles with Client or Client+Organization user level. Used for client-wide configuration data like price lists and payment terms.
- Client+Organization (Level 3): The most common level for transactional data. Accessible by roles with Client+Organization user level, which is the standard setting for business users. Orders, invoices, payments, and shipments all use this access level.
- Organization Only (Level 1): Accessible only within the specific organization context. Each record belongs to one organization, and users can only see records from organizations they have access to.
- All (Level 7): Accessible by all roles regardless of level. Used for universal reference data like countries, currencies, and units of measure.
Access levels act as a safety net. Even if you accidentally grant a regular business role access to a system table’s window, the access level prevents them from seeing the data. This defense-in-depth approach is a hallmark of iDempiere’s security architecture.
Organization Access (AD_Role_OrgAccess)
In a multi-organization setup, you need to control which organizations each role can access. The AD_Role_OrgAccess table defines this mapping:
- Role: The role being configured.
- Organization: The organization being granted. You can grant access to specific organizations (e.g., “US East Division”) or to the special organization “*” (asterisk), which represents all organizations.
- Is Read Only: Whether access to this organization’s data is read-only.
This is a powerful feature for multi-branch, multi-division, or multi-country deployments. A regional sales manager might have read-write access to their region’s organization and read-only access to the parent company’s organization (to see consolidated data). A corporate controller might have read-only access to all organizations for reporting purposes.
Organization access works as a filter on virtually all queries in the system. When a user with access only to “US East” opens the Sales Order window, they see only sales orders belonging to the “US East” organization — orders from other regions are completely invisible.
Record-Level Security (AD_Record_Access)
For scenarios where window-level and organization-level security are not granular enough, iDempiere provides record-level security through the AD_Record_Access table. This allows you to grant or deny access to specific individual records within a table.
Record access entries specify:
- Role: The role this rule applies to.
- Table: The table containing the record.
- Record ID: The specific record to control.
- Is Exclude: When checked, this is a deny rule (the role cannot access this record). When unchecked, it is a grant rule (the role can access this record).
- Is Read Only: Whether access is limited to read-only.
- Is Dependent Entities: A critical flag — when checked, the restriction cascades to all records in other tables that reference this record. For example, denying access to Business Partner ID 1000001 with dependent entities enabled would also hide all orders, invoices, and payments for that business partner. This cascading behavior is extremely powerful but must be used carefully to avoid unintended data hiding.
Record-level security is commonly used for:
- Restricting access to specific bank accounts (only the treasury team can see the main operating account).
- Hiding sensitive business partner records from certain roles.
- Controlling visibility of specific document types.
User-Role Assignment (AD_User_Roles)
The connection between users and roles is stored in the AD_User_Roles table. This is a many-to-many relationship — a user can have multiple roles, and a role can be assigned to multiple users.
To assign a role to a user:
- Navigate to the User window (or the Role window — both provide access to the assignment).
- In the User Roles tab, add a new record selecting the desired role.
- Save the record.
When a user logs in, they are presented with a list of their assigned roles and must select one. The selected role determines their entire permission set for that session. Users can switch roles without logging out by using the role selector in the toolbar, but switching roles refreshes the session and resets the navigation context.
It is a best practice to assign users the minimum number of roles they need. While having multiple roles provides flexibility, it also increases the risk of a user inadvertently operating under an overly permissive role.
The Role Window: A Walkthrough
The Role window is the central location for configuring all security settings for a role. Navigate to System Admin → General Rules → Security → Role. The window contains the following tabs:
- Role (Header): Configure the role’s basic settings — name, user level, manual flag, approval amount, price limit override, and other role-wide settings described earlier.
- Organization Access: Define which organizations this role can access. Add one entry per permitted organization.
- Window Access: Grant access to specific windows. For manual roles, only windows listed here will be visible. For each window, set the read/write flag.
- Process Access: Grant access to specific processes and reports.
- Form Access: Grant access to specific forms.
- Task Access: Grant access to specific OS tasks.
- Workflow Access: Grant access to specific workflows.
- Record Access: Define record-level security rules.
- User Assignment: View and manage which users are assigned to this role.
When creating a new role, a practical approach is:
- Create the header record with the role name and set Is Manual to Yes (whitelist approach).
- Set the User Level to Client+Organization for standard business roles.
- Add organization access entries for the relevant organizations.
- Add window access entries for every window the role needs, setting read/write appropriately.
- Add process access entries for every report and process the role needs.
- Add form access entries as needed.
- Configure record-level security if required.
- Assign users to the role.
- Test by logging in as an assigned user and verifying that the correct windows, data, and actions are available.
Login Restrictions
Beyond role-based permissions, iDempiere supports additional login restrictions that add layers of security:
- IP Address Restrictions: Limit login to specific IP addresses or ranges. This is useful for restricting administrative access to the corporate network only.
- Time Restrictions: Define the hours during which a role can be used. For example, you might restrict the “Payment Processing” role to business hours only (8 AM to 6 PM).
- Password Policies: Configure password complexity requirements, expiration periods, and lockout policies after failed login attempts.
- Two-Factor Authentication: Available through plugins, adding an extra layer of security beyond username and password.
Best Practices for Role Design
Designing an effective role structure requires balancing security with usability. Here are proven best practices:
1. Follow the Principle of Least Privilege
Every role should grant only the minimum permissions required for its intended job function. Start with no access (manual/whitelist approach) and add only what is needed, rather than starting with full access and trying to remove what is not needed. The whitelist approach is inherently more secure because new windows and processes added to the system are automatically excluded until explicitly granted.
2. Design Roles Around Job Functions, Not Individuals
Create roles like “Accounts Payable Clerk,” “Sales Representative,” “Warehouse Manager,” and “Financial Controller” rather than “John’s Role” or “Mary’s Role.” Function-based roles are reusable, maintainable, and align with organizational structure. When John transfers from AP to AR, you simply change his role assignment rather than reconfiguring a personal role.
3. Enforce Segregation of Duties
Critical business processes should require multiple people across different roles. Common separations include:
- The person who creates a purchase order should not be the person who approves it.
- The person who receives goods should not be the person who processes the vendor invoice.
- The person who processes payments should not be the person who reconciles bank statements.
Use the “Is Can Approve Own Doc” flag and approval workflows to enforce these separations systematically.
4. Use Read-Only Access Liberally
When in doubt, grant read-only access. Visibility promotes transparency and informed decision-making. A sales manager who can see inventory levels (read-only) makes better promises to customers. Only grant read-write access when the role genuinely needs to create or modify records in that window.
5. Leverage Organization Access for Data Isolation
In multi-branch or multi-division deployments, organization access is your primary tool for data isolation. Grant users access only to the organizations relevant to their work. This not only improves security but also simplifies the user experience — users see less clutter and find relevant data faster.
6. Document Your Role Definitions
Maintain documentation that maps each role to its intended job function, the permissions it grants, and the rationale for those permissions. When audit time comes — and it will — this documentation is invaluable. It also helps when onboarding new administrators who need to understand the security model.
7. Regularly Audit Role Assignments
Periodically review who has which roles. People change positions, leave the organization, or accumulate roles over time. A quarterly review of user-role assignments helps identify orphaned access (former employees who still have active accounts) and role creep (users who have accumulated more permissions than their current job requires).
8. Test Roles Thoroughly
After creating or modifying a role, log in as a user with that role and verify the experience. Confirm that required windows are visible, necessary processes are accessible, data from the correct organizations appears, and restricted functions are genuinely blocked. Testing from the user’s perspective catches configuration gaps that are invisible from the administrator’s view.
Key Takeaways
- Roles (AD_Role) are the cornerstone of iDempiere security — every permission is controlled through role configuration.
- Use the manual (whitelist) approach for roles: grant only what is needed rather than revoking what is not.
- Window Access, Process Access, and Form Access control what users can see and do. The Is Read Write flag provides granular read-only vs. full access control.
- Data Access Levels provide a safety net, ensuring that system-level tables are never accessible to regular business roles.
- Organization Access restricts data visibility to specific organizations — essential for multi-branch deployments.
- Record-Level Security (AD_Record_Access) enables fine-grained control over individual records, with optional cascading to dependent entities.
- The System Administrator role should be reserved for system configuration only — never for daily business operations.
- Design roles around job functions, enforce segregation of duties, follow the principle of least privilege, and audit assignments regularly.
- Users can have multiple roles and select one at login, allowing flexible access patterns without compromising the security model.
What’s Next
Congratulations! You have completed the General Foundation module of the Beginner learning path. You now have a solid understanding of iDempiere’s core concepts — from the application dictionary and navigation to business partners, products, documents, reports, and security. With this foundation, you are prepared to move on to intermediate topics that cover the full procure-to-pay and order-to-cash business processes, advanced reporting, and system customization.
繁體中文
概述
- 您將學到:如何在 iDempiere 中設定基於角色的存取控制(RBAC),包括視窗、流程、表單和資料層級的權限,以最小權限原則保護您的系統。
- 先修課程:第 1 課(iDempiere 簡介)、第 3 課(介面導覽)、第 5 課(組織結構)
- 預估閱讀時間:22 分鐘
簡介
在 ERP 系統中,安全性不是事後才考慮的——它是一項基礎需求。iDempiere 的安裝通常為多個部門的使用者提供服務,每個部門有不同的職責和不同的資料存取需求。倉庫管理員不應修改會計科目表。應付帳款專員不應核准自己的採購訂單。區域經理應該只看到自己區域的資料,而非整個公司的資料。
iDempiere 透過全面的基於角色的存取控制(RBAC)系統來實現安全性。角色是核心機制:每一項權限——使用者可以開啟哪些視窗、可以執行哪些流程、可以看到哪些資料,甚至是唯讀還是可讀寫——都透過角色設定來控制。本課程涵蓋從 AD_Role 資料表到記錄層級存取規則的完整安全模型,並提供設計安全且可維護的角色結構的最佳實務。
角色概念(AD_Role)
什麼是角色?
iDempiere 中的角色是儲存在 AD_Role 資料表中的命名權限集合。它定義了使用者在系統中可以做什麼和不能做什麼。角色不是使用者——它們是指派給使用者的權限範本。單一使用者可以被指派多個角色,並在登入時選擇使用哪個角色。這意味著同一個人可以在白天以「銷售經理」身份登入處理訂單,需要唯讀存取報表時切換為「報表檢視者」。
AD_Role 記錄上的關鍵欄位包括:
- 名稱:角色的描述性名稱(例如「應付帳款人員」、「銷售經理」、「系統管理員」)。
- 使用者層級:定義角色操作的資料範圍。選項包括:
- 系統:存取系統層級的資料和設定(Application Dictionary、系統用戶端)。
- 用戶端:存取用戶端(公司/租戶)層級的資料。
- 組織:存取限定於特定組織。
- 用戶端+組織:可存取用戶端範圍和組織特定的資料。這是一般業務使用者最常見的設定。
- 是否手動:勾選時,角色使用明確的權限授予(白名單方式——只有明確授予的視窗/流程可以存取)。未勾選時,角色預設可以存取所有內容,並使用排除規則(黑名單方式)。手動/白名單方式更為安全,建議用於生產環境。
- 最大查詢記錄數:限制查詢回傳的記錄數量,以防止不受限搜尋導致的效能問題。
- 覆寫價格下限:此角色的使用者是否可以覆寫銷售訂單上的最低(底價)價格。
- 可否核准自己的文件:使用者是否可以核准自己建立的文件(停用此功能可強制職責分離)。
- 核准金額:此角色的使用者無需升級即可核准的最大金額。
- 確認查詢記錄數:當查詢回傳超過此數量的記錄時,觸發確認對話方塊的閾值。
系統管理員 vs. 一般角色
iDempiere 附帶一個預先設定的系統管理員角色,對所有內容擁有不受限制的存取權限——所有視窗、所有流程、所有資料,跨越所有用戶端和組織。此角色用於初始設定、系統設定和 Application Dictionary 修改。
系統管理員角色應僅指派給極少數使用者(理想情況下一到兩個),且絕不應用於日常業務操作。原因如下:
- 它繞過所有安全限制,使意外的資料修改變得極其容易造成災難性後果。
- 它提供對 Application Dictionary 的存取,在那裡的變更可能會破壞系統。
- 它在多租戶環境中跨所有用戶端運作。
- 當變更由全能帳戶進行時,稽核軌跡失去意義。
對於日常業務操作,請建立僅包含各工作職能所需權限的專用角色。
存取控制設定
視窗存取(AD_Window_Access)
AD_Window_Access 資料表控制哪些視窗(畫面)對角色可見。對於每個視窗,您可以指定:
- 視窗:被授予的特定視窗(例如銷售訂單、業務夥伴、產品)。
- 是否讀寫:勾選時,使用者可以在此視窗中檢視和修改記錄。未勾選時,使用者擁有唯讀存取——他們可以看到資料但無法建立、更新或刪除記錄。唯讀存取對於無風險的透明度很有價值——允許銷售經理檢視庫存水準而無法調整。
如果角色在 AD_Window_Access 中沒有特定視窗的項目,該視窗對該角色完全不可見——它不會出現在選單中,直接導覽到它也會被阻擋。這是「手動」角色的預設行為,也是白名單方式的核心。
流程存取(AD_Process_Access)
iDempiere 中的流程是可執行的操作——報表、資料匯入、批次操作和文件處理程序。AD_Process_Access 資料表按角色授予或限制對這些流程的存取。
- 流程:被授予的特定流程(例如「生成發票」、「匯入銀行對帳單」、「帳齡報表」)。
- 是否讀寫:對於流程,讀寫表示使用者可以執行該流程。唯讀較少使用,但可以限制使用者僅檢視流程定義而不執行。
流程存取對於控制誰可以執行強大的批次操作特別重要,例如「從出貨生成發票」或「重置會計」——這些操作一次影響許多記錄,應限制為授權人員。
表單存取(AD_Form_Access)
表單是超越標準視窗資料輸入的特殊互動畫面。範例包括付款分配表單、銀行對帳單比對表單和收料表單。AD_Form_Access 資料表的運作方式與視窗存取完全相同:
- 表單:被授予的特定表單。
- 是否讀寫:使用者是否可以完全與表單互動(讀寫)或僅能檢視(唯讀)。
工作存取
工作代表可以從 iDempiere 內觸發的作業系統層級操作(雖然在現代部署中很少使用)。工作存取控制哪些角色可以執行這些外部工作。
工作流程存取
控制角色可以參與或管理哪些核准和流程工作流程。當您設定了文件核准工作流程時,這是相關的——只有擁有適當工作流程存取權限的角色才能擔任核准者。
資料存取層級
了解存取層級
iDempiere 中的每個資料表都有定義的存取層級,決定哪些角色可以存取其資料。這是一個在視窗和流程存取之下運作的基本安全層。存取層級包括:
- 僅系統(層級 4):只有系統管理員角色可以存取此資料。這些是 Application Dictionary 資料表和系統設定資料表。無論視窗存取設定如何,一般業務角色都無法看到這些資料。
- 系統+用戶端(層級 6):系統管理員和用戶端層級管理員角色可以存取。用於同時具有系統層級預設值和用戶端特定覆寫的資料表。
- 僅用戶端(層級 2):具有用戶端或用戶端+組織使用者層級的角色可以存取。用於用戶端範圍的設定資料,如價格表和付款條件。
- 用戶端+組織(層級 3):交易資料最常見的層級。具有用戶端+組織使用者層級的角色可以存取,這是業務使用者的標準設定。訂單、發票、付款和出貨都使用此存取層級。
- 僅組織(層級 1):僅在特定組織上下文中可存取。每筆記錄屬於一個組織,使用者只能看到他們有存取權限的組織的記錄。
- 全部(層級 7):所有角色均可存取,不受層級限制。用於通用參考資料,如國家、貨幣和計量單位。
存取層級作為安全網。即使您意外地授予一般業務角色存取系統資料表視窗的權限,存取層級也會阻止他們看到資料。這種縱深防禦方法是 iDempiere 安全架構的標誌性特點。
組織存取(AD_Role_OrgAccess)
在多組織設定中,您需要控制每個角色可以存取哪些組織。AD_Role_OrgAccess 資料表定義了此對應關係:
- 角色:正在設定的角色。
- 組織:被授予的組織。您可以授予對特定組織的存取(例如「美東事業部」),或授予對特殊組織「*」(星號)的存取,代表所有組織。
- 是否唯讀:對此組織資料的存取是否為唯讀。
這是多分支、多事業部或多國部署的強大功能。區域銷售經理可能對其區域的組織擁有讀寫存取權限,而對母公司的組織擁有唯讀存取權限(以查看合併資料)。集團財務長可能對所有組織擁有唯讀存取權限以用於報表目的。
組織存取實質上作為系統中所有查詢的過濾器。當僅有「美東」存取權限的使用者開啟銷售訂單視窗時,他們只能看到屬於「美東」組織的銷售訂單——其他區域的訂單完全不可見。
記錄層級安全性(AD_Record_Access)
對於視窗層級和組織層級安全性不夠精細的情境,iDempiere 透過 AD_Record_Access 資料表提供記錄層級安全性。這允許您授予或拒絕對資料表中特定個別記錄的存取。
記錄存取項目指定:
- 角色:此規則適用的角色。
- 資料表:包含該記錄的資料表。
- 記錄 ID:要控制的特定記錄。
- 是否排除:勾選時,這是一條拒絕規則(該角色無法存取此記錄)。未勾選時,是一條授予規則(該角色可以存取此記錄)。
- 是否唯讀:存取是否限於唯讀。
- 是否相依實體:一個關鍵標記——勾選時,限制會級聯到其他資料表中引用此記錄的所有記錄。例如,拒絕對業務夥伴 ID 1000001 的存取並啟用相依實體,也會隱藏該業務夥伴的所有訂單、發票和付款。這種級聯行為非常強大,但必須謹慎使用以避免意外的資料隱藏。
記錄層級安全性常用於:
- 限制對特定銀行帳戶的存取(只有財務團隊可以看到主要營運帳戶)。
- 對某些角色隱藏敏感的業務夥伴記錄。
- 控制特定文件類型的可見性。
使用者-角色指派(AD_User_Roles)
使用者和角色之間的連結儲存在 AD_User_Roles 資料表中。這是一個多對多關係——一個使用者可以擁有多個角色,一個角色可以指派給多個使用者。
將角色指派給使用者:
- 導覽至使用者視窗(或角色視窗——兩者都可以進行指派操作)。
- 在使用者角色頁籤中,新增一筆記錄並選擇所需的角色。
- 儲存記錄。
使用者登入時,會看到已指派角色的列表並必須選擇一個。所選角色決定了該工作階段的整套權限。使用者可以透過工具列中的角色選擇器在不登出的情況下切換角色,但切換角色會刷新工作階段並重置導覽上下文。
最佳實務是指派使用者所需的最少數量的角色。雖然擁有多個角色提供了靈活性,但也增加了使用者不經意地在過於寬鬆的角色下操作的風險。
角色視窗:逐步導覽
角色視窗是設定角色所有安全性設定的中心位置。導覽至系統管理 → 一般規則 → 安全性 → 角色。視窗包含以下頁籤:
- 角色(表頭):設定角色的基本設定——名稱、使用者層級、手動標記、核准金額、價格下限覆寫,以及前面描述的其他角色範圍的設定。
- 組織存取:定義此角色可以存取哪些組織。每個允許的組織新增一筆項目。
- 視窗存取:授予對特定視窗的存取。對於手動角色,只有列在此處的視窗才會可見。對於每個視窗,設定讀寫標記。
- 流程存取:授予對特定流程和報表的存取。
- 表單存取:授予對特定表單的存取。
- 工作存取:授予對特定作業系統工作的存取。
- 工作流程存取:授予對特定工作流程的存取。
- 記錄存取:定義記錄層級的安全規則。
- 使用者指派:檢視和管理哪些使用者被指派到此角色。
建立新角色時,實務方法是:
- 建立帶有角色名稱的表頭記錄,並將是否手動設為是(白名單方式)。
- 將使用者層級設為用戶端+組織(標準業務角色)。
- 為相關組織新增組織存取項目。
- 為角色需要的每個視窗新增視窗存取項目,適當設定讀寫權限。
- 為角色需要的每個報表和流程新增流程存取項目。
- 根據需要新增表單存取項目。
- 如有需要,設定記錄層級安全性。
- 將使用者指派到角色。
- 以被指派的使用者身份登入進行測試,驗證正確的視窗、資料和操作是否可用。
登入限制
除了基於角色的權限外,iDempiere 還支援額外的登入限制,增加多層安全保護:
- IP 位址限制:將登入限制為特定的 IP 位址或範圍。這對於將管理員存取限制在公司網路內很有用。
- 時間限制:定義角色可以使用的時段。例如,您可以將「付款處理」角色限制為僅在上班時間(上午 8 點到下午 6 點)使用。
- 密碼策略:設定密碼複雜度要求、過期期限以及登入失敗後的鎖定策略。
- 雙因素驗證:透過 Plugin 提供,在使用者名稱和密碼之外增加一層額外的安全保護。
角色設計最佳實務
設計有效的角色結構需要在安全性和可用性之間取得平衡。以下是經過驗證的最佳實務:
1. 遵循最小權限原則
每個角色應僅授予其預定工作職能所需的最低權限。從無存取權限開始(手動/白名單方式),只添加需要的內容,而非從完整存取開始嘗試移除不需要的內容。白名單方式本質上更安全,因為新增到系統的視窗和流程會自動被排除,直到明確授予。
2. 圍繞工作職能設計角色,而非針對個人
建立如「應付帳款人員」、「銷售代表」、「倉庫經理」和「財務長」等角色,而非「張三的角色」或「李四的角色」。基於職能的角色可重複使用、易於維護,且與組織結構一致。當張三從應付帳款轉調到應收帳款時,您只需更改其角色指派,而非重新設定個人角色。
3. 強制職責分離
關鍵業務流程應要求不同角色的多人參與。常見的分離包括:
- 建立採購訂單的人不應該是核准它的人。
- 收貨的人不應該是處理供應商發票的人。
- 處理付款的人不應該是對帳銀行對帳單的人。
使用「可否核准自己的文件」標記和核准工作流程來系統性地強制這些分離。
4. 慷慨使用唯讀存取
如有疑問,授予唯讀存取。可見性促進透明度和知情決策。一位能夠看到庫存水準(唯讀)的銷售經理能對客戶做出更好的承諾。只有當角色確實需要在該視窗中建立或修改記錄時,才授予讀寫存取。
5. 利用組織存取進行資料隔離
在多分支或多事業部部署中,組織存取是您進行資料隔離的主要工具。僅授予使用者與其工作相關的組織存取權限。這不僅提高了安全性,還簡化了使用者體驗——使用者看到更少的雜訊,更快找到相關資料。
6. 記錄您的角色定義
維護文件,將每個角色對應到其預定的工作職能、授予的權限以及這些權限的理由。當稽核時刻來臨——而它一定會來——這份文件是無價的。它在引導新管理員理解安全模型時也很有幫助。
7. 定期稽核角色指派
定期檢視誰擁有哪些角色。人員會換職位、離開組織,或隨著時間累積角色。每季度檢視使用者-角色指派有助於識別孤立的存取權限(仍有活躍帳戶的前員工)和角色蔓延(累積了超過當前工作所需權限的使用者)。
8. 徹底測試角色
建立或修改角色後,以擁有該角色的使用者身份登入並驗證體驗。確認所需的視窗可見、必要的流程可存取、來自正確組織的資料出現,以及受限功能確實被阻擋。從使用者的角度進行測試可以發現從管理員視角看不到的設定缺漏。
重點摘要
- 角色(AD_Role)是 iDempiere 安全性的基石——每一項權限都透過角色設定來控制。
- 使用手動(白名單)方式設定角色:只授予需要的,而非撤銷不需要的。
- 視窗存取、流程存取和表單存取控制使用者可以看到和做什麼。「是否讀寫」標記提供精細的唯讀與完整存取控制。
- 資料存取層級提供安全網,確保系統層級資料表永遠不會被一般業務角色存取。
- 組織存取將資料可見性限制在特定組織——對多分支部署至關重要。
- 記錄層級安全性(AD_Record_Access)支援對個別記錄的精細控制,可選擇性地級聯到相依實體。
- 系統管理員角色應僅保留用於系統設定——絕不用於日常業務操作。
- 圍繞工作職能設計角色,強制職責分離,遵循最小權限原則,並定期稽核指派。
- 使用者可以擁有多個角色並在登入時選擇一個,允許靈活的存取模式而不損害安全模型。
下一步
恭喜!您已完成初學者學習路徑的一般基礎模組。您現在對 iDempiere 的核心概念有了紮實的理解——從 Application Dictionary 和導覽到業務夥伴、產品、文件、報表和安全性。有了這個基礎,您已準備好進入涵蓋完整的採購到付款和訂單到收款業務流程、進階報表和系統自訂的中級主題。
日本語
概要
- 学習内容:iDempiere でロールベースアクセス制御(RBAC)を設定する方法。ウィンドウ、プロセス、フォーム、データレベルの権限を含め、最小権限の原則でシステムを保護します。
- 前提条件:レッスン 1(iDempiere 入門)、レッスン 3(インターフェースのナビゲーション)、レッスン 5(組織構造)
- 推定読了時間:22 分
はじめに
ERP システムにおいて、セキュリティは後付けではなく、基盤的な要件です。iDempiere のインストールは通常、複数の部門にまたがるユーザーにサービスを提供し、各部門はそれぞれ異なる責任とデータアクセスのニーズを持っています。倉庫担当者は勘定科目表を変更すべきではありません。買掛金担当者は自分自身の発注を承認すべきではありません。地域マネージャーは自分の地域のデータのみを見るべきであり、会社全体のデータを見るべきではありません。
iDempiere は包括的なロールベースアクセス制御(RBAC)システムを通じてセキュリティを実装しています。ロールが中心的なメカニズムです。すべての権限——ユーザーがどのウィンドウを開けるか、どのプロセスを実行できるか、どのデータを見られるか、さらには読み取り専用か読み書きか——はロール設定を通じて制御されます。このレッスンでは、AD_Role テーブルからレコードレベルのアクセスルールまで、セキュリティモデル全体をカバーし、安全で保守しやすいロール構造を設計するためのベストプラクティスを提供します。
ロールの概念(AD_Role)
ロールとは?
iDempiere におけるロールは、AD_Role テーブルに格納された名前付きの権限コレクションです。ユーザーがシステム内で何ができ、何ができないかを定義します。ロールはユーザーではありません。ロールはユーザーに割り当てられる権限テンプレートです。単一のユーザーに複数のロールを割り当てることができ、ログイン時にどのロールを使用するか選択します。つまり、同じ人が日中は「営業マネージャー」としてログインして注文を処理し、レポートへの読み取り専用アクセスだけが必要な場合は「レポートビューア」に切り替えることができます。
AD_Role レコードの主要フィールドは以下の通りです:
- 名前:ロールの説明的な名前(例:「買掛金担当」「営業マネージャー」「システム管理者」)。
- ユーザーレベル:ロールが操作するデータスコープを定義します。オプションには以下が含まれます:
- システム:システムレベルのデータと設定(Application Dictionary、システムクライアント)へのアクセス。
- クライアント:クライアント(会社/テナント)レベルのデータへのアクセス。
- 組織:特定の組織に制限されたアクセス。
- クライアント+組織:クライアント全体と組織固有の両方のデータへのアクセス。通常のビジネスユーザーに最も一般的な設定です。
- 手動:チェックすると、ロールは明示的な権限付与を使用します(ホワイトリストアプローチ——明示的に付与されたウィンドウ/プロセスのみアクセス可能)。チェックしないと、ロールはすべてへのアクセスから開始し、除外ルールを使用します(ブラックリストアプローチ)。手動/ホワイトリストアプローチはより安全であり、本番環境に推奨されます。
- 最大クエリレコード数:クエリで返されるレコード数を制限し、無制限の検索によるパフォーマンス問題を防止します。
- 価格下限のオーバーライド:このロールのユーザーが受注の下限(フロア)価格をオーバーライドできるかどうか。
- 自身のドキュメントを承認可能:ユーザーが自分で作成したドキュメントを承認できるかどうか(無効にすると職務分離を強制します)。
- 承認金額:このロールのユーザーがエスカレーションなしで承認できる最大金額。
- 確認クエリレコード数:クエリがこの数を超えるレコードを返した場合に確認ダイアログをトリガーする閾値。
システム管理者 vs. 通常のロール
iDempiere には、すべてに無制限のアクセス権を持つ事前設定済みのシステム管理者ロールが付属しています。すべてのウィンドウ、すべてのプロセス、すべてのデータに、すべてのクライアントと組織にまたがってアクセスできます。このロールは初期セットアップ、システム設定、Application Dictionary の変更に使用されます。
システム管理者ロールはごく少数のユーザー(理想的には 1 人か 2 人)にのみ割り当てるべきであり、日常のビジネスオペレーションには決して使用すべきではありません。その理由は以下の通りです:
- すべてのセキュリティ制限をバイパスするため、誤ったデータ変更が壊滅的に容易になります。
- Application Dictionary へのアクセスを提供し、そこでの変更はシステムを壊す可能性があります。
- マルチテナント環境ですべてのクライアントにまたがって動作します。
- 全能のアカウントで変更が行われると、監査証跡が意味を失います。
通常のビジネスオペレーションには、各職務機能が必要とする権限のみを持つ目的別のロールを作成してください。
アクセス制御の設定
ウィンドウアクセス(AD_Window_Access)
AD_Window_Access テーブルは、どのウィンドウ(画面)がロールに表示されるかを制御します。各ウィンドウについて以下を指定します:
- ウィンドウ:付与される特定のウィンドウ(例:受注、取引先、製品)。
- 読み書き:チェックすると、ユーザーはこのウィンドウでレコードを表示および変更できます。チェックしないと、ユーザーは読み取り専用アクセスを持ちます——データを見ることはできますが、レコードの作成、更新、削除はできません。読み取り専用アクセスは、リスクなしの透明性に有用です——営業マネージャーが在庫レベルを調整する能力なしに表示できるようにします。
ロールが特定のウィンドウに対して AD_Window_Access にエントリを持たない場合、そのウィンドウはロールに対して完全に見えません——メニューに表示されず、直接ナビゲートしてもブロックされます。これは「手動」ロールのデフォルトの動作であり、ホワイトリストアプローチの本質です。
プロセスアクセス(AD_Process_Access)
iDempiere のプロセスは実行可能なアクションです——レポート、データインポート、バッチ操作、ドキュメント処理ルーチンなどです。AD_Process_Access テーブルは、ロールごとにこれらのプロセスへのアクセスを付与または制限します。
- プロセス:付与される特定のプロセス(例:「請求書生成」「銀行明細インポート」「滞留レポート」)。
- 読み書き:プロセスの場合、読み書きはユーザーがプロセスを実行できることを意味します。読み取り専用はあまり一般的ではありませんが、ユーザーを実行せずにプロセス定義の表示に制限できます。
プロセスアクセスは、「出荷から請求書を生成」や「会計リセット」のような強力なバッチ操作を誰が実行できるかを制御するために特に重要です。これらは一度に多くのレコードに影響する操作であり、権限のある担当者に制限すべきです。
フォームアクセス(AD_Form_Access)
フォームは標準的なウィンドウベースのデータ入力を超える特別なインタラクティブ画面です。例として、入金消込フォーム、銀行明細マッチングフォーム、入庫フォームなどがあります。AD_Form_Access テーブルはウィンドウアクセスと同じように機能します:
- フォーム:付与される特定のフォーム。
- 読み書き:ユーザーがフォームと完全にやり取りできるか(読み書き)、表示のみか(読み取り専用)。
タスクアクセス
タスクは iDempiere 内からトリガーできる OS レベルの操作を表します(ただし、現代のデプロイメントではほとんど使用されません)。タスクアクセスは、どのロールがこれらの外部タスクを実行できるかを制御します。
ワークフローアクセス
ロールがどの承認およびプロセスワークフローに参加または管理できるかを制御します。ドキュメント承認ワークフローが設定されている場合に関連します——適切なワークフローアクセスを持つロールのみが承認者として行動できます。
データアクセスレベル
アクセスレベルの理解
iDempiere のすべてのテーブルには、どのロールがそのデータにアクセスできるかを決定するアクセスレベルが定義されています。これはウィンドウアクセスとプロセスアクセスの下で動作する基本的なセキュリティレイヤーです。アクセスレベルは以下の通りです:
- システムのみ(レベル 4):システム管理者ロールのみがこのデータにアクセスできます。Application Dictionary テーブルとシステム設定テーブルです。通常のビジネスロールは、ウィンドウアクセス設定に関係なく、このデータを見ることができません。
- システム+クライアント(レベル 6):システム管理者とクライアントレベルの管理者ロールがアクセスできます。システムレベルのデフォルトとクライアント固有のオーバーライドの両方を持つテーブルに使用されます。
- クライアントのみ(レベル 2):クライアントまたはクライアント+組織のユーザーレベルを持つロールがアクセスできます。価格リストや支払条件などのクライアント全体の設定データに使用されます。
- クライアント+組織(レベル 3):トランザクションデータの最も一般的なレベルです。クライアント+組織のユーザーレベルを持つロールがアクセスでき、これはビジネスユーザーの標準設定です。注文、請求書、入金、出荷はすべてこのアクセスレベルを使用します。
- 組織のみ(レベル 1):特定の組織コンテキスト内でのみアクセス可能です。各レコードは 1 つの組織に属し、ユーザーはアクセス権を持つ組織のレコードのみを見ることができます。
- すべて(レベル 7):レベルに関係なくすべてのロールがアクセスできます。国、通貨、単位などの普遍的な参照データに使用されます。
アクセスレベルはセーフティネットとして機能します。誤って通常のビジネスロールにシステムテーブルのウィンドウアクセスを付与しても、アクセスレベルがデータの閲覧を防止します。この多層防御アプローチは iDempiere のセキュリティアーキテクチャの特徴です。
組織アクセス(AD_Role_OrgAccess)
マルチ組織のセットアップでは、各ロールがどの組織にアクセスできるかを制御する必要があります。AD_Role_OrgAccess テーブルがこのマッピングを定義します:
- ロール:設定対象のロール。
- 組織:付与される組織。特定の組織(例:「東日本事業部」)へのアクセスを付与するか、すべての組織を表す特殊な組織「*」(アスタリスク)へのアクセスを付与できます。
- 読み取り専用:この組織のデータへのアクセスが読み取り専用かどうか。
これはマルチ拠点、マルチ部門、または多国籍のデプロイメントにとって強力な機能です。地域営業マネージャーは自分の地域の組織に読み書きアクセスを持ち、親会社の組織には読み取り専用アクセスを持つかもしれません(連結データを見るため)。本社の経理部長はレポート目的ですべての組織に読み取り専用アクセスを持つかもしれません。
組織アクセスはシステム内の事実上すべてのクエリのフィルタとして機能します。「東日本」へのアクセスのみを持つユーザーが受注ウィンドウを開くと、「東日本」組織に属する受注のみが表示されます。他の地域の注文は完全に見えません。
レコードレベルセキュリティ(AD_Record_Access)
ウィンドウレベルと組織レベルのセキュリティでは十分に細かくないシナリオのために、iDempiere は AD_Record_Access テーブルを通じてレコードレベルセキュリティを提供します。テーブル内の特定の個別レコードへのアクセスを付与または拒否できます。
レコードアクセスのエントリは以下を指定します:
- ロール:このルールが適用されるロール。
- テーブル:レコードを含むテーブル。
- レコード ID:制御する特定のレコード。
- 除外:チェックすると、これは拒否ルールです(ロールはこのレコードにアクセスできません)。チェックしないと、付与ルールです(ロールはこのレコードにアクセスできます)。
- 読み取り専用:アクセスが読み取り専用に制限されるかどうか。
- 依存エンティティ:重要なフラグです。チェックすると、制限はこのレコードを参照する他のテーブルのすべてのレコードに連鎖します。例えば、取引先 ID 1000001 へのアクセスを拒否し、依存エンティティを有効にすると、その取引先のすべての注文、請求書、入金も非表示になります。この連鎖動作は非常に強力ですが、意図しないデータ隠蔽を避けるために慎重に使用する必要があります。
レコードレベルセキュリティは一般的に以下に使用されます:
- 特定の銀行口座へのアクセス制限(財務チームのみがメインの運用口座を見られるようにする)。
- 特定のロールからの機密取引先レコードの非表示。
- 特定のドキュメントタイプの可視性制御。
ユーザー-ロール割り当て(AD_User_Roles)
ユーザーとロールの接続は AD_User_Roles テーブルに格納されます。これは多対多のリレーションシップです——ユーザーは複数のロールを持つことができ、ロールは複数のユーザーに割り当てることができます。
ロールをユーザーに割り当てるには:
- ユーザーウィンドウ(またはロールウィンドウ——どちらも割り当てにアクセスできます)に移動します。
- ユーザーロールタブで、目的のロールを選択して新しいレコードを追加します。
- レコードを保存します。
ユーザーがログインすると、割り当てられたロールのリストが表示され、1 つを選択する必要があります。選択したロールがそのセッション全体の権限セットを決定します。ユーザーはツールバーのロールセレクタを使用してログアウトせずにロールを切り替えることができますが、ロールの切り替えはセッションをリフレッシュし、ナビゲーションコンテキストをリセットします。
ベストプラクティスは、ユーザーに必要最小限のロール数を割り当てることです。複数のロールを持つことは柔軟性を提供しますが、ユーザーが不注意で過度に寛容なロールで操作するリスクも増加させます。
ロールウィンドウ:ウォークスルー
ロールウィンドウは、ロールのすべてのセキュリティ設定を構成する中央の場所です。システム管理 → 一般ルール → セキュリティ → ロールに移動します。ウィンドウには以下のタブが含まれます:
- ロール(ヘッダー):ロールの基本設定を構成します——名前、ユーザーレベル、手動フラグ、承認金額、価格下限オーバーライド、および前述のその他のロール全体の設定。
- 組織アクセス:このロールがアクセスできる組織を定義します。許可される組織ごとに 1 つのエントリを追加します。
- ウィンドウアクセス:特定のウィンドウへのアクセスを付与します。手動ロールの場合、ここにリストされたウィンドウのみが表示されます。各ウィンドウについて読み書きフラグを設定します。
- プロセスアクセス:特定のプロセスとレポートへのアクセスを付与します。
- フォームアクセス:特定のフォームへのアクセスを付与します。
- タスクアクセス:特定の OS タスクへのアクセスを付与します。
- ワークフローアクセス:特定のワークフローへのアクセスを付与します。
- レコードアクセス:レコードレベルのセキュリティルールを定義します。
- ユーザー割り当て:どのユーザーがこのロールに割り当てられているかを表示および管理します。
新しいロールを作成する際の実践的なアプローチは以下の通りです:
- ロール名でヘッダーレコードを作成し、手動を「はい」に設定します(ホワイトリストアプローチ)。
- 標準的なビジネスロールの場合、ユーザーレベルをクライアント+組織に設定します。
- 関連する組織の組織アクセスエントリを追加します。
- ロールが必要とするすべてのウィンドウのウィンドウアクセスエントリを追加し、読み書きを適切に設定します。
- ロールが必要とするすべてのレポートとプロセスのプロセスアクセスエントリを追加します。
- 必要に応じてフォームアクセスエントリを追加します。
- 必要に応じてレコードレベルセキュリティを設定します。
- ユーザーをロールに割り当てます。
- 割り当てられたユーザーとしてログインしてテストし、正しいウィンドウ、データ、アクションが利用可能であることを確認します。
ログイン制限
ロールベースの権限に加えて、iDempiere はセキュリティのレイヤーを追加する追加のログイン制限をサポートしています:
- IP アドレス制限:特定の IP アドレスまたは範囲にログインを制限します。管理者アクセスを社内ネットワークのみに制限するのに有用です。
- 時間制限:ロールを使用できる時間帯を定義します。例えば、「入金処理」ロールを営業時間のみ(午前 8 時から午後 6 時)に制限できます。
- パスワードポリシー:パスワードの複雑さの要件、有効期限、ログイン失敗後のロックアウトポリシーを設定します。
- 二要素認証:プラグインを通じて利用可能であり、ユーザー名とパスワードを超えた追加のセキュリティレイヤーを提供します。
ロール設計のベストプラクティス
効果的なロール構造の設計には、セキュリティとユーザビリティのバランスが必要です。以下は実績のあるベストプラクティスです:
1. 最小権限の原則に従う
すべてのロールは、意図された職務機能に必要な最小限の権限のみを付与すべきです。アクセスなしから開始し(手動/ホワイトリストアプローチ)、必要なもののみを追加します。フルアクセスから開始して不要なものを削除しようとするのではありません。ホワイトリストアプローチは本質的により安全です。システムに追加された新しいウィンドウやプロセスは、明示的に付与されるまで自動的に除外されるためです。
2. 個人ではなく職務機能に基づいてロールを設計する
「買掛金担当」「営業担当」「倉庫マネージャー」「経理部長」のようなロールを作成し、「田中さんのロール」や「鈴木さんのロール」は作成しないでください。機能ベースのロールは再利用可能で保守しやすく、組織構造と整合します。田中さんが買掛金から売掛金に異動した場合、個人ロールを再設定するのではなく、ロール割り当てを変更するだけです。
3. 職務分離を強制する
重要なビジネスプロセスは、異なるロールの複数の人員を必要とすべきです。一般的な分離には以下が含まれます:
- 発注を作成する人は、それを承認する人であるべきではありません。
- 商品を受領する人は、仕入先請求書を処理する人であるべきではありません。
- 支払いを処理する人は、銀行明細を照合する人であるべきではありません。
「自身のドキュメントを承認可能」フラグと承認ワークフローを使用して、これらの分離を体系的に強制します。
4. 読み取り専用アクセスを積極的に活用する
迷った場合は、読み取り専用アクセスを付与します。可視性は透明性と情報に基づく意思決定を促進します。在庫レベルを見ることができる(読み取り専用)営業マネージャーは、顧客により良い約束ができます。ロールがそのウィンドウでレコードを作成または変更する本当の必要性がある場合にのみ、読み書きアクセスを付与します。
5. 組織アクセスをデータ分離に活用する
マルチ拠点またはマルチ部門のデプロイメントでは、組織アクセスがデータ分離の主要ツールです。ユーザーには業務に関連する組織へのアクセスのみを付与します。これはセキュリティを向上させるだけでなく、ユーザーエクスペリエンスも簡素化します——ユーザーが見るものが少なくなり、関連データをより早く見つけられます。
6. ロール定義を文書化する
各ロールを意図された職務機能、付与する権限、およびそれらの権限の根拠にマッピングするドキュメントを維持します。監査の時が来たとき——そしてそれは必ず来ます——このドキュメントは非常に有用です。セキュリティモデルを理解する必要がある新しい管理者のオンボーディングにも役立ちます。
7. ロール割り当てを定期的に監査する
誰がどのロールを持っているかを定期的にレビューします。人は異動し、組織を離れ、時間とともにロールが蓄積されます。四半期ごとのユーザー-ロール割り当てのレビューにより、孤立したアクセス(まだアクティブなアカウントを持つ元従業員)やロールクリープ(現在の業務に必要以上の権限を蓄積したユーザー)を特定できます。
8. ロールを徹底的にテストする
ロールを作成または変更した後、そのロールを持つユーザーとしてログインし、体験を確認します。必要なウィンドウが表示され、必要なプロセスがアクセス可能で、正しい組織のデータが表示され、制限された機能が実際にブロックされていることを確認します。ユーザーの視点からのテストにより、管理者の視点からは見えない設定のギャップを発見できます。
重要ポイント
- ロール(AD_Role)は iDempiere セキュリティの基盤です。すべての権限はロール設定を通じて制御されます。
- ロールには手動(ホワイトリスト)アプローチを使用します:不要なものを取り消すのではなく、必要なもののみを付与します。
- ウィンドウアクセス、プロセスアクセス、フォームアクセスが、ユーザーが見られるものとできることを制御します。読み書きフラグにより、きめ細かな読み取り専用とフルアクセスの制御が可能です。
- データアクセスレベルはセーフティネットを提供し、システムレベルのテーブルが通常のビジネスロールにアクセスされないことを保証します。
- 組織アクセスはデータの可視性を特定の組織に制限します。マルチ拠点のデプロイメントに不可欠です。
- レコードレベルセキュリティ(AD_Record_Access)は個別レコードのきめ細かな制御を可能にし、オプションで依存エンティティへの連鎖も可能です。
- システム管理者ロールはシステム設定専用に予約すべきです。日常のビジネスオペレーションには決して使用しないでください。
- 職務機能に基づいてロールを設計し、職務分離を強制し、最小権限の原則に従い、定期的に割り当てを監査してください。
- ユーザーは複数のロールを持ち、ログイン時に 1 つを選択でき、セキュリティモデルを損なうことなく柔軟なアクセスパターンを実現します。
次のステップ
おめでとうございます!初心者学習パスの一般基礎モジュールを修了しました。iDempiere のコアコンセプトについて確固たる理解を得ました——Application Dictionary とナビゲーションから、取引先、製品、ドキュメント、レポート、セキュリティまで。この基盤を持って、完全な仕入から支払まで(Procure-to-Pay)と受注から入金まで(Order-to-Cash)のビジネスプロセス、高度なレポート、システムカスタマイズを扱う中級トピックに進む準備ができました。