Azure AD SAML 설정
n8n v2.29이 문서는 SAML 속성을 통해 Azure AD가 역할 정보를 n8n으로 전송하도록 구성하는 방법을 설명합니다. Enterprise Applications에 접근할 수 있는 Azure AD 계정과 n8n의 SAML 설정에서 얻은 리디렉션 URL 및 엔터티 ID가 필요합니다.
이 문서는 SAML 속성을 통해 Azure AD가 역할 정보를 n8n으로 전송하도록 구성하는 방법을 설명합니다. 이를 통해 Azure AD 그룹 멤버십을 기반으로 자동 역할 할당이 가능합니다.
사전 요구 사항#
Enterprise Applications에 접근할 수 있는 Azure AD 계정과 n8n의 SAML 설정에서 얻은 리디렉션 URL 및 엔터티 ID가 필요합니다.
먼저 SAML 설정 가이드를 읽어보세요.
n8n에 필요한 사항#
n8n은 SAML assertion에 사용자 지정 SAML 속성이 포함되기를 기대합니다.
| 속성 이름(Attribute Name) | 데이터 유형(Data Type) | 목적(Purpose) |
|---|---|---|
| n8n_instance_role | String | n8n에서 사용자의 전역 역할을 제어합니다 |
n8n_instance_role의 유효한 값:
| 값(Value) | 설명(Description) |
|---|---|
global:owner |
전체 인스턴스 소유자 접근 권한 |
global:admin |
관리자 접근 권한 |
global:member |
일반 멤버 접근 권한(지정하지 않은 경우 기본값) |
global:chatUser |
Chat Hub 인터페이스를 통해 AI 에이전트와 안전하게 상호작용하도록 설계된, n8n의 제한적이고 비기술적인 역할 |
설정#
1단계: 표준 SAML 속성 구성
-
Azure AD 포털에서 n8n Enterprise Application으로 이동합니다.
-
Single sign-on > Attributes & Claims로 이동합니다.
-
다음 표준 속성이 구성되어 있는지 확인합니다.
클레임 이름(Claim Name) 원본 속성(Source Attribute) http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddressuser.mail http://schemas.xmlsoap.org/ws/2005/05/identity/claims/firstnameuser.givenname http://schemas.xmlsoap.org/ws/2005/05/identity/claims/lastnameuser.surname http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upnuser.userprincipalname
2단계: n8n_instance_role 클레임 추가
이 클레임은 조건부 로직을 사용하여 Azure AD 그룹 멤버십에 따라 서로 다른 역할 값을 내보냅니다.
-
Attributes & Claims에서 Add new claim을 클릭합니다.
-
기본 설정을 구성합니다.
- Name:
n8n_instance_role - Namespace: 비워 둡니다
- Source:
Attribute
- Name:
-
Claim conditions를 펼치고 Add condition을 클릭합니다.
-
각 Azure AD 그룹에 대해 조건을 추가합니다(우선순위 순서로).
사용자 유형(User Type) 범위 지정 그룹(Scoped Groups) 원본(Source) 값(Value) Members n8n-chatusers Attribute global:chatUserMembers n8n-users Attribute global:memberMembers n8n-admins Attribute global:adminMembers n8n-owners Attribute global:owner
조건 순서
조건은 순서대로 평가됩니다. 가장 권한이 높은 그룹(owners)을 맨 마지막에 배치하세요.
- Save를 클릭합니다.
구성 테스트#
- n8n에서 Settings > SSO로 이동합니다.
- Role assignment를 Instance roles via SSO로 설정합니다.
- Role mapping method를 Map rules on your IdP로 설정합니다.
- Test settings를 클릭합니다.
- SAML 응답에 올바른
n8n_instance_role값이 표시되는지 확인합니다.
문제 해결#
SAML 응답에 클레임이 나타나지 않는 경우
- 사용자가 구성된 그룹 중 최소 하나에 속해 있는지 확인합니다.
- 그룹이 Enterprise Application에 할당되어 있는지 확인합니다.
- 조건이
Attribute를 원본으로 하여 구성되어 있는지 확인합니다. - 'SAML Chrome Panel'과 같은 브라우저 확장 플러그인을 사용하여 애플리케이션의 SAML 응답을 확인합니다.
사용자가 잘못된 역할을 받는 경우
- 조건 순서를 확인합니다(가장 권한이 높은 그룹이 마지막에 있어야 함).
그룹 기반 클레임 대신 앱 역할을 사용하여 여러 프로젝트 역할 할당하기#
사용자에게 여러 프로젝트 역할을 할당하기 위해 Azure AD 그룹 기반 클레임 조건을 사용하면, SAML assertion에서 첫 번째로 일치하는 그룹 클레임만 전송되는 경우가 많습니다. 즉, 사용자가 여러 그룹에 속해 있어도 하나의 프로젝트에만 접근할 수 있는 것으로 보일 수 있습니다.
여러 프로젝트에 각각의 역할을 안정적으로 할당하려면 그룹 기반 클레임 대신 App Registration에 정의된 App Roles를 사용하세요.
- n8n SAML 앱의 App Registration에서 각 프로젝트와 권한 조합을 나타내는 App Roles를 정의합니다(예:
<projectId>:<role>). - 업데이트된 App Manifest를 저장합니다.
- Enterprise Application에서 Users and groups 아래에 이러한 App Roles에 사용자 또는 그룹을 할당합니다.
- Single sign-on > Attributes & Claims에서
n8n_projectsSAML 클레임을user.assignedroles에서 가져오도록 업데이트합니다. 이렇게 하면 할당된 모든 역할이 배열 형태로 SAML 응답에 전송됩니다.
이 설정을 통해 n8n은 모든 프로젝트 할당 정보를 정확하게 수신하여 여러 프로젝트에 걸쳐 적절한 접근을 가능하게 합니다. App Roles를 정의하면 초기 관리 부담이 늘어나지만, 이후 사용자-역할 관리를 단순화하고 프로젝트 역할 동기화가 완전하게 이루어지도록 보장합니다.
그룹 기반 클레임에서 App Roles로 마이그레이션할 때는 프로젝트 접근이 불완전해지지 않도록 역할 정의와 클레임 매핑을 그에 맞게 조정하세요.