1. An image forming apparatus, comprising: a storage unit configured to store account data that includes one or more restricted function IDs associated with a user ID and an application ID of a restricted function in which execution is inhibited on a user basis; a controller unit configured to control an operation of, and/or input or output of data with, at least a printer unit and a scanner unit responsive to instructions from an application for which license information is input; a controller application programming interface (API) configured to cause the controller unit to operate according to the instructions from the application for which the license information is input; an application management unit configured to install the application for which the license information is input, start the application responsive to detecting a start request, and detect the restricted function ID of the restricted function from a plurality of functions within the application, of which use by a logged-in user having a logged-in user ID is inhibited based on the account data; and a function monitoring unit configured to register the restricted function ID of the restricted function in a monitor object table associated with the logged-in user ID and application ID based on the account data stored in the storage unit detected by the application management unit, register in the monitor object table a listener ID which corresponds to a listener that is called when a restricted function ID associated with the logged-in user ID and application ID is detected in an instruction, intercept the instructions sent from the application to the controller unit, determine whether the intercepted instruction requests the restricted function, responsive to determining that the intercepted instruction does request the restricted function having the restricted function ID and the application ID based on the monitor object table, inhibit the logged-in user from executing the restricted function having the restricted function ID and the application ID by calling the listener corresponding to the listener ID instead of the controller API, and clear registration of the restricted function ID and the application ID from the monitor object table at the end of the application execution; wherein the function monitoring unit is connected to the controller API and to the controller unit, wherein the controller API causes the controller unit to operate by transmitting the instructions through the function monitoring unit, and wherein the application is configured to issue the instructions to the controller API without consideration as to which of the functions may be restricted for the logged-in user.