# useriam_auth_executor_mgr **Repository Path**: openharmony/useriam_auth_executor_mgr ## Basic Information - **Project Name**: useriam_auth_executor_mgr - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 29 - **Created**: 2021-12-31 - **Last Updated**: 2024-11-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Authentication Executor Management (auth_executor_mgr) ## Introduction As a basic component of the User Identity & Access Management (IAM) subsystem, Authentication Executor Management (auth_executor_mgr) manages and schedules authentication resources in the system. Currently, password authentication and facial authentication are supported. The user authentication unit on the device is called authentication executor. The auth_executor_mgr module provides a set of resource management APIs. After implementing these APIs, the authentication executor can connect to auth_executor_mgr to provide authentication capabilities for the system. **Figure 1** auth_executor_mgr architecture auth_executor_mgr_architecture.png The OpenHarmony framework implements the auth_executor_mgr service and has encapsulated the collaborative scheduling and resource management APIs. Device vendors need to adapt some functions of the auth_executor_mgr component to meet higher security requirements. The APIs that need to be adapted by device vendors are defined in the IAM common HDI. ## Directory Structure ```undefined //base/user_iam/auth_executor_mgr ├── common # Directory for storing the IAM common HDI ├── frameworks # Framework code ├── interfaces # Directory for storing external interfaces │ └── innerkits # Header files exposed to the internal subsystem ├── sa_profile # Profile of the Service ability ├── services # Implementation of the Service ability ├── test # Directory for storing test code ├── utils # Directory for storing utility code ├── auth_executor_mgr.gni # Build configuration └── bundle.json # Component description file ``` ## Usage ### Available APIs **Table 1** APIs for managing authentication resources | API | Description | | ------ | -------------------------------- | | uint64_t Register(std::shared_ptr executorInfo, std::shared_ptr callback); | Registers an authentication executor to transfer basic authentication information.| | void QueryStatus(AuthExecutor &executorInfo, std::shared_ptr callback); | Obtains the authentication executor status (whether the authentication executor has been registered).| **Table 2** APIs for executing authentication | API| Description | | ------ | -------------------------------- | | virtual void OnMessengerReady(const sptr<IExecutorMessenger> &messenger); | Notifies the authentication executor that the messenger is available and transfers the messenger for subsequent communication with the executor.| | virtual int32_t OnBeginExecute(uint64_t scheduleId, std::vector &publicKey, std::shared_ptr commandAttrs); | Instructs the authentication executor to perform authentication-related operations. The operation attributes are passed in by **commandAttrs**.| | virtual int32_t OnEndExecute(uint64_t scheduleId, std::shared_ptr consumerAttr); | Instructs the authentication executor to complete this operation.| | virtual int32_t OnSetProperty(std::shared_ptr properties); | Sets property information.| | virtual int32_t OnGetProperty(std::shared_ptr conditions, std::shared_ptr values); | Obtains property information.| **Table 3** APIs for managing the messenger | API | Description | | ------------------------------------------------------------ | ------------------------------------------------------------ | | virtual int32_t SendData(uint64_t scheduleId, uint64_t transNum, int32_t srcType, int32_t dstType, std::shared_ptr<AuthMessage> msg) override; | Sends a message from the authentication executor to the auth_executor_mgr. The message content is specified by the authentication executor, for example, a message indicating dark light during facial authentication.| | virtual int32_t Finish(uint64_t scheduleId, int32_t srcType, int32_t resultCode, std::shared_ptr finalResult) override; | Sends a message from the authentication executor to the auth_executor_mgr to complete this operation. The message contains the result of the operation.| ### Usage Guidelines - The auth_executor_mgr Service ability provides interconnection APIs for the authentication executors. The authentication executors call the related API to register with the auth_executor_mgr. - The APIs defined in the ```common\interface\coauth_interface.h``` header file must be implemented in a TEE. The authentication executor information cannot be tampered with, and the result returned by the authentication executor must be verified in the TEE. ## Repositories Involved **[useriam_auth_executor_mgr](https://gitee.com/openharmony-sig/useriam_coauth)** [useriam_user_idm](https://gitee.com/openharmony-sig/useriam_useridm) [useriam_user_auth](https://gitee.com/openharmony-sig/useriam_userauth) [useriam_pin_auth](https://gitee.com/openharmony-sig/useriam_pinauth) [useriam_faceauth](https://gitee.com/openharmony/useriam_faceauth)