# IAM2 API

**IAM2 API**&#x20;

IAM2 API enables you to securely manage your resources, including identities and object permissions. It enables compliant Apps to integrate with ONEWEB IAM2 as an Identity Provider. The OAuth2 service provides API for authorization that supports multiple token grant types to enable you to securely connect clients to services.&#x20;

**API OAuth**&#x20;

<table data-header-hidden><thead><tr><th width="257"></th><th width="364.3333333333333"></th><th></th></tr></thead><tbody><tr><td>URL </td><td>Description </td><td><p>HTTP Method </p><p> </p></td></tr><tr><td>/oauth/authorize </td><td>Process request access token </td><td>GET, POST </td></tr><tr><td>/oauth/token </td><td>Process request access token </td><td>GET, POST </td></tr><tr><td>/oauth/check_token </td><td>Check access token expire </td><td>GET </td></tr><tr><td>/oauth/confirm_access </td><td>Confirm call api authentication code </td><td>GET </td></tr><tr><td>/oauth/token_key] </td><td>Get api public key server </td><td>GET </td></tr><tr><td>/oauth/logout </td><td>Logout from IAM2 </td><td>POST </td></tr><tr><td>/oauth/logout/idp </td><td>Logout from google, facebook </td><td>POST </td></tr></tbody></table>

**IAM API version 1**&#x20;

In version 1 we authentication by use IAMtoken for get access token&#x20;

<table data-header-hidden><thead><tr><th width="269"></th><th width="373.3333333333333"></th><th></th></tr></thead><tbody><tr><td>URL </td><td>Description </td><td><p>HTTP Method </p><p> </p></td></tr><tr><td>/v1/login </td><td>Login IAM2 System </td><td>POST </td></tr><tr><td>/v1/perms/{accesstoken} </td><td>Get permission user by token </td><td>GET </td></tr><tr><td>/v1/getSystemProperty/{contextPath}] </td><td>Get detail system </td><td>GET </td></tr><tr><td>/v1/logout/{accesstoken} </td><td>Logout IAM2 </td><td>GET </td></tr><tr><td>/v1/removesession/{session_id} </td><td>Remove session and invole acess token </td><td>GET </td></tr><tr><td>/v1/userinfo/{accesstoken} </td><td>Get users by token </td><td>GET </td></tr><tr><td>/v1/userinfo/{accesstoken}/{username} </td><td>Get specific user by token </td><td>GET </td></tr><tr><td>/v1/storesession/{session_id} </td><td>Get acess token by sesssion id </td><td>GET </td></tr><tr><td>/v1/logoutSSO/{username}/{sessionId} </td><td>Logout api version1 </td><td>GET </td></tr><tr><td>/v1/perms/{accesstoken}/{objectpath} </td><td>Get specific permission </td><td>GET </td></tr><tr><td>/v1/checksession/{auth_session_id} </td><td>Check session </td><td>GET </td></tr><tr><td>/v1/checksessionByAccessToken/{accessToken} </td><td>Check session by access token </td><td>GET </td></tr><tr><td>/v1/objects </td><td>Create objects, Get objects by login access </td><td>POST, GET </td></tr><tr><td>/v1/objects/{object_id} </td><td>Update objects, Delete objects  </td><td>PUT, DELETE </td></tr><tr><td>/v1/objects/{object_id}/access </td><td>Get access in object by object id, Add access to object </td><td>GET, PUT  </td></tr><tr><td>/v1/objects/{object_id}/access/{access_id} </td><td>Delete access in object  </td><td>DELETE </td></tr><tr><td>/v1/objectTypes </td><td>Get object type, Create object type </td><td>GET, POST </td></tr><tr><td>/v1/objectTypes/{object_type_id} </td><td><p>Get specific object type, Update object type </p><p> </p></td><td>GET, PATCH, PUT </td></tr><tr><td>/v1/objectTypes/{object_type_ids} </td><td>Delete object type </td><td>DELETE </td></tr><tr><td>v1/orgs </td><td>Create organization, Get organizations </td><td>POST, GET </td></tr><tr><td>/v1/orgs/{org_id} </td><td>Update organization </td><td>PATCH, PUT </td></tr><tr><td>/v1/orgs/{org_ids} </td><td>Delete organizations </td><td>DELETE </td></tr><tr><td>/v1/orgs/{org_id}/users </td><td>Get users in organization, Add users to organization  </td><td>GET, PUT </td></tr><tr><td>/v1/orgs/{org_id}/users/{user_ids} </td><td>Remove users in organization </td><td>DELETE </td></tr><tr><td>/v1/users/validationEmail </td><td>Send validation email </td><td>POST </td></tr><tr><td>/v1/users/validationPassword </td><td>Send validation password </td><td>POST </td></tr><tr><td>/v1/users/forgotEmail </td><td>Send message forgot email </td><td>POST </td></tr><tr><td>/v1/users/updatePasswordUser </td><td>Send update password </td><td>POST </td></tr><tr><td>/v1/users/resetPasswordByAdmin </td><td>Send reset password by admin </td><td>POST </td></tr><tr><td>/v1/users/updatePasswordAdmin </td><td>Send update password admin </td><td>POST </td></tr><tr><td>/v1/permissions </td><td>Get permissions, Create permission, Update permissions </td><td>GET, POST, PUT </td></tr><tr><td>/v1/permissions/{permission_id} </td><td>Get specific permission, Delete permission </td><td>GET, DELETE </td></tr><tr><td>/v1/permissions/{permission_id}/objects </td><td><p>Get objects in permissions,  </p><p>Add objects to permission </p></td><td>GET, PUT </td></tr><tr><td>/v1/permissions/{permission_id}/objects/{object_ids} </td><td>Delete objects in permission </td><td>DELETE </td></tr><tr><td>/v1/permissions/{permission_id}/users </td><td>Get users in specific permission </td><td>GET </td></tr><tr><td>/v1/permissions/{permission_id}/objects/{object_id}/access </td><td>Get access object in permission, Create access object in permission </td><td>POST, GET </td></tr><tr><td>/v1/permissions/{permission_id}/objects/{object_id}/access/{access_type_ids} </td><td>Delete access object in permission </td><td>DELETE </td></tr><tr><td>/v1/roles </td><td>Get roles, Create role </td><td>GET, POST </td></tr><tr><td>/v1/roles/{role_id} </td><td>Update role, Delete roles </td><td>PATCH, PUT, DELETE </td></tr><tr><td>/v1/roles/{role_id}/users </td><td>Add user to role, Get users in role </td><td>PUT, GET </td></tr><tr><td>/v1/roles/{role_id}/users/{userIds} </td><td>Remove user in role </td><td>DELETE </td></tr><tr><td>/v1/roles/{role_id}/objects </td><td>Get objects in role, Add object to role </td><td>GET, PUT </td></tr><tr><td>/v1/roles/{role_id}/objects/{object_ids} </td><td>Delete objects in role </td><td>DELETE </td></tr><tr><td>/v1/roles/{role_id}/permissions </td><td>Get permissions in role, Add permission to role  </td><td>GET, PUT </td></tr><tr><td>/v1/roles/{role_id}/permissions/{permission_ids} </td><td>Delete permissions in role </td><td>DELETE </td></tr><tr><td>/v1/systems </td><td>Get systems, Create system </td><td>GET, POST </td></tr><tr><td>/v1/systems/{system_id} </td><td>Get specific system, Update system </td><td>GET, PATCH, PUT </td></tr><tr><td>/v1/systems/{system_ids} </td><td>Delete systems </td><td>DELETE </td></tr><tr><td>/v1/systems/{system_id}/admins </td><td>Add admin to system, Get admin in system </td><td>PUT, GET </td></tr><tr><td>/v1/systems/{system_id}/admins/{user_ids} </td><td>Remove admin in system </td><td>DELETE </td></tr><tr><td>/v1/systems/{system_id}/properties </td><td>Get properties in system, Add properties to system </td><td>GET, PUT </td></tr><tr><td>/v1/systems/{system_id}/properties/{system_property_id} </td><td>Get specific propertie in system, Update propertie in system </td><td>GET, PATCH </td></tr><tr><td>/v1/users </td><td>Get users, Create user </td><td>GET, POST </td></tr><tr><td>/v1/users/email </td><td>Get user by email </td><td>POST </td></tr><tr><td>/v1/users/{user_id} </td><td>Get specific user, Update user </td><td>GET, PUT, PATCH </td></tr><tr><td>/v1/user/{user_id}/objects </td><td>Get objects in user </td><td>GET </td></tr><tr><td>/v1/users/{user_id}/objects </td><td>Add object to user </td><td>PUT </td></tr><tr><td>/v1/users/{user_id}/objects/{object_ids} </td><td>Remove objects in user </td><td>DELETE </td></tr><tr><td>/v1/users/{user_id}/roles </td><td>Add roles to user </td><td>PUT </td></tr><tr><td>/v1/users/{user_id}/roles/{role_ids} </td><td><p>Remove roles in user </p><p> </p></td><td>DELETE </td></tr><tr><td>/v1/user/{user_id}/systems </td><td>Get systems in user </td><td>GET </td></tr><tr><td>/v1/sendResetPasswordEmail </td><td>Send email reset password </td><td>POST </td></tr><tr><td>/v1/users/firstlogin/{user_id} </td><td>Force user change password </td><td>PUT </td></tr><tr><td>/v1/users/delete/{user_id} </td><td>Delete user </td><td>DELETE </td></tr><tr><td>/v1/users/webhook </td><td>Call back api remove account from facebook </td><td>POST </td></tr><tr><td>/v1/users/{user_id}/permissions </td><td>Add permissions to user </td><td>PUT </td></tr><tr><td>/v1/users/{user_id}/permissions/{permission_Ids} </td><td>Remove permission in user </td><td>DELETE </td></tr><tr><td>/v1/getUserPermission/{system_id} </td><td>Get user permission in system </td><td>GET </td></tr><tr><td>/v1/getUserPermission/{system_id}/{user_id} </td><td>Get specific user permission in sytem </td><td><p>GET </p><p> </p></td></tr><tr><td>/v1/policy </td><td>Get policy </td><td>GET </td></tr></tbody></table>

**IAM API version 2**&#x20;

In version 2 we authentication by use OAuth&#x20;

<table data-header-hidden><thead><tr><th width="354.3333333333333"></th><th width="362"></th><th></th></tr></thead><tbody><tr><td>URL </td><td>Description </td><td><p>HTTP Method </p><p> </p></td></tr><tr><td>/facebook_user_status </td><td>Confirm remove account facebook in IAM2 </td><td>GET </td></tr><tr><td>/v2/access </td><td>Get access, Create access </td><td>GET, POST </td></tr><tr><td>/v2/access/{access_id} </td><td>Get specific access, Update access  </td><td>GET, PUT, PATCH </td></tr><tr><td>/v2/access/{access_ids} </td><td>Delete access </td><td>DELETE </td></tr><tr><td>/v2/objects </td><td>Create object, Get objects </td><td>POST, GET </td></tr><tr><td>/v2/objects/{object_id} </td><td>Update object, Delete objects </td><td>PUT, DELETE </td></tr><tr><td>/v2/objects/{object_id}/access </td><td>Get access in object by object id, Add access to object </td><td>PUT, GET </td></tr><tr><td>/v2/objects/{objectId}/access/{accessId} </td><td>Delete access in object  </td><td>DELETE </td></tr><tr><td>/v2/objectsAndAccess </td><td>Create object acess </td><td>POST </td></tr><tr><td>/v2/objectTypes </td><td>Get object type, Create object type </td><td>GET, POST </td></tr><tr><td>/v2/objectTypes/{object_type_id} </td><td><p>Get specific object type, Update object type </p><p> </p></td><td>GET, PATCH, PUT </td></tr><tr><td>/v2/objectTypes/{object_type_ids} </td><td>Delete object type </td><td>DELETE </td></tr><tr><td>/v2/orgs </td><td>Create organization, Get organizations </td><td>POST, GET </td></tr><tr><td>/v2/orgs/{org_id} </td><td>Update organization </td><td>PATCH, PUT </td></tr><tr><td>/v2/orgs/{org_ids} </td><td>Delete organizations </td><td>DELETE </td></tr><tr><td>/v2/orgs/{org_id}/users </td><td>Get users in organization, Add users to organization  </td><td>GET, PUT </td></tr><tr><td>/v2/orgs/{org_id}/users/{user_ids} </td><td>Remove users in organization </td><td>DELETE </td></tr><tr><td>/v2/permissions </td><td>Get permissions, Create permission, Update permissions </td><td>GET, POST, PUT </td></tr><tr><td>/v2/permissions/{permission_id} </td><td>Get specific permission, Delete permission </td><td>GET, DELETE </td></tr><tr><td>/v2/permissions/{permission_id}/objects </td><td><p>Get objects in permissions,  </p><p>Add objects to permission </p></td><td>GET, PUT </td></tr><tr><td>/v2/permissions/{permission_id}/objects/{object_ids} </td><td>Delete objects in permission </td><td>DELETE </td></tr><tr><td>/v2/permissions/{permission_id}/users </td><td>Get users in specific permission </td><td>GET </td></tr><tr><td>/v2/permissions/{permission_id}/objects/{object_id}/access </td><td>Get access object in permission, Create access object in permission </td><td>POST, GET </td></tr><tr><td>/v2/permissions/{permission_id}/objects/{object_id}/access/{access_type_ids} </td><td>Delete access object in permission </td><td>DELETE </td></tr><tr><td>/v2/roles </td><td>Get roles, Create role </td><td>GET, POST </td></tr><tr><td>/v2/roles/{role_id} </td><td>Update role, Delete roles </td><td>PATCH, PUT, DELETE </td></tr><tr><td>/v2/roles/{role_id}/users </td><td>Add user to role, Get users in role </td><td>PUT, GET </td></tr><tr><td>/v2/roles/{role_id}/users/{userIds} </td><td>Remove user in role </td><td>DELETE </td></tr><tr><td>/v2/roles/{role_id}/objects </td><td>Get objects in role, Add object to role </td><td>GET, PUT </td></tr><tr><td>/v2/roles/{role_id}/objects/{object_ids} </td><td>Delete objects in role </td><td>DELETE </td></tr><tr><td>/v2/roles/{role_id}/permissions </td><td>Get permissions in role, Add permission to role  </td><td>GET, PUT </td></tr><tr><td>/v2/roles/{role_id}/permissions/{permission_ids} </td><td>Delete permissions in role </td><td>DELETE </td></tr><tr><td>/v2/aspsystems </td><td>API create applicaiton in app space  </td><td>POST </td></tr><tr><td>/v2/systems </td><td>Get systems, Create system </td><td>GET, POST </td></tr><tr><td>/v2/systems/{system_id} </td><td>Get specific system, Update system </td><td>GET, PATCH, PUT </td></tr><tr><td>/v2/systems/{system_ids} </td><td>Delete systems </td><td>DELETE </td></tr><tr><td>/v2/systems/{system_id}/admins </td><td>Add admin to system, Get admin in system </td><td>PUT, GET </td></tr><tr><td>/v2/systems/{system_id}/admins/{user_ids} </td><td>Remove admin in system </td><td>DELETE </td></tr><tr><td>/v2/systems/{system_id}/properties </td><td>Get properties in system, Add properties to system </td><td>GET, PUT </td></tr><tr><td>/v2/systems/{system_id}/properties/{system_property_id} </td><td>Get specific propertie in system, Update propertie in system </td><td>GET, PATCH </td></tr><tr><td>/v2/userinfo </td><td>Get user info </td><td>GET </td></tr><tr><td>/v2/userinfo/{user_id} </td><td>Get specific user info </td><td>GET </td></tr><tr><td>/v2/users </td><td>Get users, Create user </td><td>GET, POST </td></tr><tr><td>/v2/user/pic </td><td>Get picture user </td><td>GET </td></tr><tr><td>/v2/users/{user_id} </td><td><p>Get specific user, Update user </p><p> </p></td><td>GET, PATCH, PUT </td></tr><tr><td>/v2/users/email </td><td>Get user by email </td><td>POST </td></tr><tr><td>/v2/user/facebook </td><td>Get user by facebook </td><td>GET </td></tr><tr><td>/v2/user/{user_id}/objects </td><td>Get object in user </td><td>GET </td></tr><tr><td>/v2/user/{user_id}/systems </td><td>Get systems in user </td><td>GET </td></tr><tr><td>/v2/users/{user_id}/objects] </td><td>Add object to user </td><td>PUT </td></tr><tr><td>/v2/users/{user_id}/objects/{object_ids} </td><td>Remove objects in user </td><td>DELETE </td></tr><tr><td>/v2/users/{user_id}/roles </td><td>Add roles to user </td><td>PUT </td></tr><tr><td>/v2/users/{user_id}/roles/{role_ids} </td><td><p>Remove roles in user </p><p> </p></td><td>DELETE </td></tr><tr><td>/v2/users/firstlogin/{user_id} </td><td>Force user change password </td><td>PUT </td></tr><tr><td>/v2/users/validationEmail </td><td>Send validation email </td><td>POST </td></tr><tr><td>/v2/users/forgotEmail </td><td>Send message forgot email </td><td>POST </td></tr><tr><td>/v2/users/validationPassword </td><td>Send validation password  </td><td>POST </td></tr><tr><td>/v2/users/resetUpdatePassword </td><td>Send update password </td><td><p>POST </p><p> </p></td></tr><tr><td>/v2/users/changepassword </td><td>Change password </td><td>GET </td></tr><tr><td>/v2/users/fogotUpdatePassword </td><td>Send update password in case forgot password </td><td>POST </td></tr><tr><td>/v2/users/requestForgotPassword </td><td>Send request forgot password for recive token  </td><td>POST </td></tr><tr><td>/v2/users/resetUpdatePasswordWithToken </td><td>Send token for reset password </td><td>POST </td></tr><tr><td>/v2/users/delete/{user_id} </td><td>Delete user </td><td>DELETE </td></tr><tr><td>/v2/users/{user_id}/permissions </td><td>Add permissions to user </td><td>PUT </td></tr><tr><td>/v2/users/{user_id}/permissions/{permission_ids} </td><td>Remove permission in user </td><td>DELETE </td></tr><tr><td>/v2/getUserPermission/{system_id} </td><td>Get user permission in system </td><td>GET </td></tr><tr><td>/v2/getUserPermission/{system_id}/{user_id} </td><td><p>Get specific user permission in sytem </p><p> </p></td><td>GET </td></tr><tr><td>/v2/perms </td><td>Get permission </td><td>GET </td></tr><tr><td>/v2/perms/{objectpath} </td><td>Get permission by object </td><td>GET </td></tr><tr><td>/v2/permDetail/{system_id} </td><td>Get permission detail by system </td><td>GET </td></tr><tr><td>/v2/repository </td><td>Get repository </td><td>GET </td></tr><tr><td>/v2/cert </td><td>Get certificate </td><td>GET </td></tr><tr><td>/v2/clients </td><td>Get clients </td><td>GET </td></tr><tr><td>/v2/logout </td><td>Logout iam2 </td><td>GET </td></tr></tbody></table>
