Microsoft 자격 증명
n8n v2.29이 자격 증명을 사용하여 다음 노드를 인증할 수 있습니다: 일부 노드(예: Microsoft Excel, Microsoft OneDrive)에서는 노드별 자격 증명(예: Microsoft Excel OAuth2 API)과 이 범용 Microsoft OAuth2 API 자격 증명 중에서 선택할 수 있습니다.
이 자격 증명을 사용하여 다음 노드를 인증할 수 있습니다:
- Microsoft Dynamics CRM
- Microsoft Excel
- Microsoft Graph Security
- Microsoft OneDrive
- Microsoft Outlook
- Microsoft Outlook Trigger
- Microsoft SharePoint
- Microsoft Teams
- Microsoft Teams Trigger
- Microsoft To Do
자격 증명 유형 선택하기
일부 노드(예: Microsoft Excel, Microsoft OneDrive)에서는 노드별 자격 증명(예: Microsoft Excel OAuth2 API)과 이 범용 Microsoft OAuth2 API 자격 증명 중에서 선택할 수 있습니다. 범용 자격 증명은 여러 Microsoft 노드에서 재사용할 수 있으며, 사용할 때는 각 노드에 필요한 범위(scope)가 부여되어 있는지 확인하세요. 이 드롭다운이 표시되지 않는 노드는 노드별 자격 증명을 사용합니다.
사전 요구사항#
- Microsoft Azure 계정을 생성하세요.
- 해당 서비스에 접근 권한이 있는 사용자 계정을 하나 이상 생성하세요.
- 회사의 Microsoft Entra 계정이 사용자 계정을 관리하는 경우, 관리자 계정에서 이 사용자에 대해 "사용자가 회사 데이터에 접근하는 앱에 대해 대신 동의할 수 있음" 옵션이 활성화되어 있어야 합니다(자세한 내용은 Microsoft Entra 문서 참고).
지원되는 인증 방법#
- OAuth2
관련 자료#
각 서비스의 API에 대한 자세한 내용은 아래에 연결된 Microsoft API 문서를 참고하세요:
- Dynamics CRM: Web API
- Excel: Graph API
- Graph Security: Graph API
- OneDrive: Graph API
- Outlook: Graph API 및 Outlook API
- Teams: Graph API
- To Do: Graph API
OAuth2 사용#
이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.
일부 Microsoft 서비스는 OAuth2에 추가 정보가 필요합니다. 해당 서비스에 대한 자세한 안내는 서비스별 설정을 참고하세요.
셀프 호스팅 사용자의 경우, OAuth2를 처음부터 구성하는 데 다음 두 가지 주요 단계가 필요합니다:
- Microsoft Identity Platform에서 애플리케이션을 등록합니다.
- 클라이언트 시크릿을 생성하거나 인증서를 등록하여 해당 애플리케이션에 자격 증명을 추가합니다.
아래에서 각 단계에 대한 자세한 지침을 따르세요. Microsoft OAuth2 웹 플로에 대한 자세한 내용은 Microsoft 인증 및 인가 기본 사항을 참고하세요.
애플리케이션 등록#
Microsoft Identity Platform에서 애플리케이션을 등록합니다:
- Microsoft Application Registration Portal을 엽니다.
- Register an application을 선택합니다.
- 앱의 Name을 입력합니다.
- Supported account types에서 **Accounts in any organizational directory (Any Azure AD directory - Multi-tenant) and personal Microsoft accounts (for example, Skype, Xbox)**를 선택합니다.
- Register an application에서:
- n8n 자격 증명에서 OAuth Callback URL을 복사합니다.
- Redirect URI (optional) 필드에 붙여넣습니다.
- Select a platform > Web을 선택합니다.
- Register를 선택하여 애플리케이션 생성을 완료합니다.
- Application (client) ID를 복사하여 n8n의 Client ID로 붙여넣습니다.
자세한 내용은 Register an application with the Microsoft Identity Platform을 참고하세요.
클라이언트 시크릿 생성#
애플리케이션을 생성했으면, 이에 대한 클라이언트 시크릿을 생성합니다:
- Microsoft 애플리케이션 페이지에서 왼쪽 내비게이션의 Certificates & secrets를 선택합니다.
- Client secrets에서 + New client secret을 선택합니다.
- 클라이언트 시크릿에 대한 Description을 입력합니다(예:
n8n credential). - Add를 선택합니다.
- Value 열에 있는 Secret을 복사합니다.
- n8n의 Client Secret으로 붙여넣습니다.
- n8n 자격 증명에 다른 필드가 표시되면, 아래 서비스별 설정을 참고하여 해당 필드를 완성하는 방법을 확인하세요.
- n8n에서 Connect my account를 선택하여 연결 설정을 완료합니다.
- Microsoft 계정에 로그인하고 앱이 사용자 정보에 접근하도록 허용합니다.
클라이언트 시크릿 추가에 대한 자세한 내용은 Microsoft의 Add credentials를 참고하세요.
인증서로 인증#
클라이언트 시크릿 대신, 애플리케이션을 인증서(서명된 클라이언트 어설션, private_key_jwt라고도 함)로 인증할 수도 있습니다. 이는 조직의 보안 정책상 텍스트 형태의 클라이언트 시크릿을 허용하지 않는 경우에 유용합니다. OAuth2 플로 자체는 그대로 유지됩니다. 동일한 로그인, 동의 화면, 권한이 그대로 적용됩니다. 토큰 교환 및 갱신 시 애플리케이션의 신원 증명 방식만 시크릿에서 서명된 어설션으로 바뀝니다.
기본 인증 방법은 Client Secret이므로 기존 자격 증명은 계속 정상 작동합니다. 인증서를 사용하려는 경우에만 자격 증명을 Certificate로 전환하세요.
인증서 생성#
아직 없다면, OpenSSL로 자체 서명 인증서와 개인 키를 생성합니다:
openssl req -x509 -newkey rsa:2048 -nodes \
-keyout private-key.pem \
-out certificate.pem \
-days 365 \
-subj "/CN=n8n-microsoft-cert"
이렇게 하면 두 개의 파일이 생성됩니다:
private-key.pem: RSA 개인 키입니다. 비공개로 유지하세요. n8n에 붙여넣으면 되고, n8n은 이를 Microsoft로 전송하지 않습니다.certificate.pem: 공개 인증서입니다. 이를 Entra 앱 등록에 업로드합니다.
개인 키는 반드시 RSA 키여야 합니다. n8n은 RS256으로 클라이언트 어설션에 서명하므로, EC 및 Ed25519 키는 작동하지 않습니다.
앱에 인증서 등록#
- Microsoft 애플리케이션 페이지에서 왼쪽 내비게이션의 Certificates & secrets를 선택합니다.
- Certificates 탭을 선택한 다음 Upload certificate를 선택합니다.
certificate.pem파일(개인 키가 아닌 공개 인증서)을 선택합니다.- 선택 사항인 Description을 입력하고(예:
n8n credential), Add를 선택합니다.
인증서 추가에 대한 자세한 내용은 Microsoft의 Add credentials를 참고하세요.
n8n에서 자격 증명 완료#
- Authentication을 Certificate로 설정합니다.
private-key.pem의 내용을 Private Key 필드에 붙여넣습니다.certificate.pem의 내용을 Certificate 필드에 붙여넣습니다.- n8n 자격 증명에 다른 필드가 표시되면, 아래 서비스별 설정을 참고하여 해당 필드를 완성하는 방법을 확인하세요.
- n8n에서 Connect my account를 선택하여 연결 설정을 완료합니다.
- Microsoft 계정에 로그인하고 앱이 사용자 정보에 접근하도록 허용합니다.
토큰 갱신에도 인증서가 사용되므로, n8n은 클라이언트 시크릿을 전송하지 않습니다.
Microsoft Graph API 기본 URL#
Microsoft OAuth2 자격 증명은 다양한 Microsoft 클라우드 환경을 지원합니다. 테넌트의 클라우드 환경에 맞는 엔드포인트를 선택하세요:
- Global: 표준 Microsoft 365 테넌트에 사용(기본값)
- US Government: Azure US Government(GCC) 테넌트에 사용
- US Government DOD: Azure US Government Department of Defense 테넌트에 사용
- China: 21Vianet이 운영하는 중국의 Microsoft 365에 사용
이 설정은 Microsoft 자격 증명을 사용하는 모든 Microsoft Graph API 노드에 적용되며, 여기에는 다음이 포함됩니다:
- Microsoft Teams
- Microsoft Outlook
- Microsoft Excel
- Microsoft OneDrive
- Microsoft Graph Security
- Microsoft To Do
Government Cloud 인가 URL
government cloud 테넌트를 사용 중이라면, 자격 증명의 Authorization URL 및 Access Token URL 필드도 government cloud 엔드포인트를 사용하도록 업데이트해야 할 수 있습니다. 예:
- US Government:
https://login.microsoftonline.us/{tenant}/oauth2/v2.0/authorize및https://login.microsoftonline.us/{tenant}/oauth2/v2.0/token을 사용 {tenant}를 테넌트 ID로 바꾸거나, 멀티 테넌트 앱의 경우common을 사용
사용자 지정 스코프#
다음 Microsoft 서비스와 상호작용하기 위한 세분화된 권한을 정의합니다:
- Microsoft Teams
- Microsoft Excel
서비스별 설정#
다음 서비스는 OAuth2에 추가 정보가 필요합니다:
Dynamics#
Dynamics OAuth2에는 Dynamics 도메인 및 지역에 대한 정보가 필요합니다. 자격 증명을 완성하려면 다음 추가 단계를 따르세요:
- Dynamics Domain을 입력합니다.
- 사용 중인 Dynamics 데이터 센터의 Region을 선택합니다.
지역 옵션 및 해당 URL에 대한 자세한 내용은 Microsoft Datacenter regions 문서를 참고하세요.
Microsoft (일반)#
범용 Microsoft OAuth2는 이 자격 증명에 대해 공백으로 구분된 Scope 목록을 제공해야 합니다.
가능한 범위(scope) 목록은 Microsoft identity platform의 범위 및 권한을 참고하세요.
Outlook#
Outlook OAuth2는 이 자격 증명이 사용자의 기본 이메일 편지함 또는 공유 편지함에 접근하는 것을 지원합니다. 기본적으로 이 자격 증명은 사용자의 기본 이메일 편지함에 접근합니다. 이 동작을 변경하려면:
- Use Shared Inbox를 켭니다.
- 대상 사용자의 UPN 또는 ID를 User Principal Name으로 입력합니다.
SharePoint#
SharePoint OAuth2에는 SharePoint Subdomain에 대한 정보가 필요합니다.
자격 증명을 완성하려면 SharePoint URL의 Subdomain 부분을 입력하세요. 예를 들어, SharePoint URL이 https://tenant123.sharepoint.com이라면 서브도메인은 tenant123입니다.
SharePoint에는 다음 권한이 필요합니다:
Application 권한:
Sites.Read.AllSites.ReadWrite.All
Delegated 권한:
SearchConfiguration.Read.AllSearchConfiguration.ReadWrite.All
자주 발생하는 문제#
Microsoft OAuth2 자격 증명에서 알려진 일반적인 오류 및 문제는 다음과 같습니다.
이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.