자격증명 덮어쓰기
n8n v2.25자격증명 덮어쓰기를 통해 자격증명 데이터를 전역적으로 설정할 수 있습니다. 에디터 UI에서 n8n은 기본적으로 덮어쓴 모든 필드를 숨기므로 사용자는 자격증명의 "연결" 버튼을 사용하여 OAuth로 인증할 수 있습니다.
자격증명 덮어쓰기를 통해 자격증명 데이터를 전역적으로 설정할 수 있습니다. 이 데이터는 사용자에게 표시되지 않지만 n8n이 백그라운드에서 자동으로 사용합니다. 예를 들어 클라이언트 시크릿을 노출하지 않고 "연결" 버튼을 사용하여 OAuth 로그인을 활성화할 수 있습니다.
에디터 UI에서 n8n은 기본적으로 덮어쓴 모든 필드를 숨기므로 사용자는 자격증명의 "연결" 버튼을 사용하여 OAuth로 인증할 수 있습니다.
자격증명 덮어쓰기 구성에 사용되는 환경 변수에 대해서는 자격증명 환경 변수를 참조하세요.
환경 변수 사용#
CREDENTIALS_OVERWRITE_DATA를 { CREDENTIAL_NAME: { PARAMETER: VALUE }}로 설정합니다.
이 방법은 권장하지 않습니다. 환경 변수는 n8n에서 보호되지 않으므로 데이터가 사용자에게 유출될 수 있습니다.
REST API 사용#
권장하는 방법은 커스텀 REST 엔드포인트를 사용하여 데이터를 로드하는 것입니다.
-
CREDENTIALS_OVERWRITE_ENDPOINT를 엔드포인트가 사용 가능해야 할 경로로 설정합니다:export CREDENTIALS_OVERWRITE_ENDPOINT=send-credentials선택적으로
CREDENTIALS_OVERWRITE_ENDPOINT_AUTH_TOKEN을 설정하여 엔드포인트 접근에 bearer 토큰을 요구할 수 있습니다.
인증 토큰 없이는 보안상의 이유로 엔드포인트를 한 번만 호출할 수 있습니다.
-
덮어쓸 자격증명이 포함된 JSON 파일을 준비합니다. 예를 들어 Asana 및 GitHub용
oauth-credentials.json:{ "asanaOAuth2Api": { "clientId": "<id>", "clientSecret": "<secret>" }, "githubOAuth2Api": { "clientId": "<id>", "clientSecret": "<secret>" } } -
n8n 인스턴스에 파일을 전송합니다:
curl -H "Content-Type: application/json" --data @oauth-credentials.json http://localhost:5678/send-credentialsCREDENTIALS_OVERWRITE_ENDPOINT_AUTH_TOKEN이secure-token으로 설정된 경우:curl -H "Content-Type: application/json" -H "Authorization: Bearer secure-token" --data @oauth-credentials.json http://localhost:5678/send-credentials
자격증명은 다른 자격증명을 상속할 수 있습니다. 예를 들어 googleSheetsOAuth2Api는 googleOAuth2Api를 상속합니다. 부모(googleOAuth2Api)에 파라미터를 설정하면 모든 하위 자격증명이 이를 사용합니다.
영속성#
데이터베이스에 자격증명 덮어쓰기를 저장하고 멀티 인스턴스 또는 큐 모드에서 모든 워커에 전파하려면 다음을 활성화합니다:
export CREDENTIALS_OVERWRITE_PERSISTENCE=true
활성화하면 n8n은 암호화된 덮어쓰기를 settings 테이블에 저장하고 워커가 최신 값을 다시 로드할 수 있도록 reload-overwrite-credentials 이벤트를 브로드캐스트합니다. 비활성화된 경우 덮어쓰기는 로드한 프로세스의 메모리에 남아 있으며 n8n은 이를 워커에 전파하거나 재시작 후에도 유지하지 않습니다.