--- title: "はじめに" url: https://docs.catalyst.zoho.com/ja/cloud-scale/help/authentication/whitelisting/custom-user-validation/introduction/ description: "Custom User Validationでは、カスタムロジックを使用してユーザーのサインアップを検証できます。" last_updated: 2026-03-30T08:10:30Z service: Cloud Scale type: general --- # Custom User Validation Catalystは、カスタムファンクションを使用してアプリケーションのエンドユーザーを検証および認可するオプションを提供します。このオプションにより、ユーザーを認可する方法のロジックを含む[Catalyst Basic I/Oファンクション](https://docs.catalyst.zoho.com/ja/serverless/help/functions/basic-io)を設定できます。ユーザーのサインアップ時に、ユーザーの資格情報がこのBasic I/Oファンクションを通じて検証されます。 > **注意:** **Custom User Validation**を有効にするには、まず[Public Signup](https://docs.catalyst.zoho.com/ja/cloud-scale/help/authentication/public-signup/)が有効になっていることを確認する必要があります。 Java、Node.js、PythonでのCustom User Validationファンクションのサンプルコードスニペットを以下に示します: **Java** **Custom User Validation - Java** ```java public class MainClass implements ZCFunction { private static final Logger LOGGER = Logger.getLogger(MainClass.class.getName()); @Override public void runner(Context context, BasicIO basicIO) throws Exception { try { ZCProject.initProject(); ZCSignupUserValidationRequest requestDetails = ZCSignupUserService.getSignupValidationRequest(basicIO); if (requestDetails != null) { /*Validation logic starts */ LOGGER.info("Inside null check"); ZCSignupUserValidationResponse validationResponse = ZCSignupUserValidationResponse.getInstance(); if (requestDetails.getUserDetails().getEmailId().contains("@notallowedmail")) { validationResponse.setStatus(ZCSignupValidationStatus.FAILURE); // ユーザーの認証が失敗した } else { validationResponse.setStatus(ZCSignupValidationStatus.SUCCESS); // 認証成功時に発生するアクションはカスタマイズ可能 ZCSignupResponseUserDetails respUserDetails = ZCSignupResponseUserDetails.getInstance(); respUserDetails.setFirstName("{customFirstName}"); respUserDetails.setLastName("{customLastname}"); respUserDetails.setRoleIdentifier("{customRoleName}"); respUserDetails.setOrgId("{customOrgId}"); validationResponse.setUserDetails(respUserDetails); } basicIO.write(validationResponse); /* Validation logic ends*/ } } catch (Exception e) { basicIO.write(e); LOGGER.log(Level.SEVERE, "Exception in MainClass", e); basicIO.setStatus(500); } } } ``` **Node.js** **Custom User Validation - Node.js** ```javascript const catalyst = require("zcatalyst-sdk-node"); module.exports = (context, basicIO) => { const catalystApp = catalyst.initialize(context); const userManagement = catalystApp.userManagement(); const requestDetails = userManagement.getSignupValidationRequest(basicIO); if (requestDetails !== undefined) { if (requestDetails.user_details.email_id.includes("node")) { basicIO.write( JSON.stringify({ status: "failure", }) ); } else { basicIO.write( JSON.stringify({ status: "success", user_details: { first_name: "CustomFirstName", last_name: "CustomLastName", role_identifier: "CustomRole", org_id: "CustomOrgID", //組織IDを指定する場合は、コンソールから正確にコピーしてください。 }, }) ); } } context.close(); }; ``` **Python** **Custom User Validation - Python** ```python import json import zcatalyst_sdk def handler(context, basicio): app = zcatalyst_sdk.initialize() auth_service = app.authentication() request_details = auth_service.get_signup_validation_request(basicio) if request_details: if "spam.com" in request_details["user_details"]["email_id"]: basicio.write(json.dumps({"status": "failure"})) else: basicio.write( json.dumps( { "status": "success", "user_details": { "first_name": "Amelia", "last_name": "Jack", "role_identifier": "cx_role", "org_id": orgId, # Org IDを指定する場合は、コンソールから正確にコピーされていることを確認してください。 }, } ) ) context.close() ``` > **注意:** これらのスニペットは、Catalystの[Java SDK](https://docs.catalyst.zoho.com/ja/sdk/java/v1/cloud-scale/authentication/custom-user-validation/)、[Node.js SDK](https://docs.catalyst.zoho.com/ja/sdk/nodejs/v2/cloud-scale/authentication/custom-user-validation/)、[Python SDK](https://docs.catalyst.zoho.com/ja/sdk/python/v1/cloud-scale/authentication/custom-user-validation/)リポジトリでも利用可能です。