SAML 기반 Single Sign-On: 구성 및 제한 사항
이 문서에서는 Microsoft Entra ID를 사용하여 SAML 기반 SSO(Single Sign-On)에 대한 애플리케이션을 구성하는 방법에 대해 알아봅니다. ADFS(Active Directory Federation Services)에서 Microsoft Entra ID로 마이그레이션되는 앱에 대해 SAML SSO를 구성하는 데 중점을 둔 경우
다루는 개념에는 규칙을 기반으로 특정 애플리케이션 역할에 사용자를 매핑하고 특성을 매핑할 때 유의해야 할 제한 사항이 포함됩니다. 또한 SAML 서명 인증서, SAML 토큰 암호화, SAML 요청 서명 확인 및 사용자 지정 클레임 공급자에 대해서도 다룹니다.
인증에 SAML 2.0을 사용하는 앱은 SAML 기반 SSO(Single Sign-On)를 사용하도록 구성할 수 있습니다. SAML 기반 SSO를 사용하면 SAML 클레임에서 정의하는 규칙에 따라 사용자를 특정 애플리케이션 역할에 매핑할 수 있습니다.
SAML 기반 SSO에 맞게 SaaS 애플리케이션을 구성하려면 빠른 시작: SAML 기반 Single Sign-On 설정을 참조하세요.
많은 SaaS 애플리케이션에는 SAML 기반 SSO 구성을 단계별로 안내하는 애플리케이션별 자습서가 있습니다.
일부 앱은 쉽게 마이그레이션할 수 있습니다. 사용자 지정 클레임과 같이 더 복잡한 요구 사항이 있는 앱은 Microsoft Entra ID 및/또는 Microsoft Entra Connect Health에서 추가 구성이 필요할 수 있습니다. 지원되는 클레임 매핑에 대한 자세한 내용은 방법: 테넌트의 특정 앱용 토큰에서 내보낸 클레임 사용자 지정(미리 보기)을 참조하세요.
특성을 매핑할 때 다음 제한 사항에 유의하세요.
- AD FS에서 발급할 수 있는 모든 특성이 동기화되는 경우에도 Microsoft Entra ID에 SAML 토큰으로 내보낼 특성으로 표시되지는 않습니다. 특성을 편집하는 경우 값 드롭다운 목록에 Microsoft Entra ID에서 사용할 수 있는 다양한 특성이 표시됩니다. Microsoft Entra Connect 동기화 문서 구성을 확인하여 필요한 특성(예: samAccountName)이 Microsoft Entra ID와 동기화되었는지 확인합니다. 확장 특성을 사용하여 Microsoft Entra ID의 표준 사용자 스키마에 속하지 않는 모든 클레임을 내보낼 수 있습니다.
- 가장 일반적인 시나리오에서는 NameID 클레임 및 다른 일반 사용자 식별자 클레임만 앱에 필요합니다. 추가 클레임이 필요한지 확인하려면 AD FS에서 발급한 클레임을 검토합니다.
- 일부 클레임은 Microsoft Entra ID에서 보호되므로 모든 클레임을 발급할 수 있는 것은 아닙니다.
- 암호화된 SAML 토큰을 사용하는 기능은 현재 미리 보기로 제공됩니다. 방법: 엔터프라이즈 애플리케이션에 대한 SAML 토큰에 발급된 클레임 사용자 지정을 참조하세요.
SaaS(Software as a service) 앱
사용자가 SaaS 앱(예: Salesforce, ServiceNow 또는 Workday)에 로그인하고 AD FS와 통합된 경우 SaaS 앱에 대해 페더레이션 로그온을 사용하게 됩니다.
Microsoft Entra ID에서 대부분의 SaaS 애플리케이션을 구성할 수 있습니다. Microsoft에는 Microsoft Entra 앱 갤러리에 SaaS 앱에 대해 미리 구성된 연결이 많기 때문에 더 쉽게 전환할 수 있습니다. SAML 2.0 애플리케이션은 Microsoft Entra 앱 갤러리를 통하거나 비갤러리 애플리케이션으로 Microsoft Entra ID와 통합할 수 있습니다.
OAuth 2.0 또는 OpenID Connect를 사용하는 앱은 앱 등록으로 Microsoft Entra ID와 유사하게 통합할 수 있습니다. 레거시 프로토콜을 사용하는 앱은 Microsoft Entra 애플리케이션 프록시를 사용하여 Microsoft Entra ID로 인증할 수 있습니다.
SSO용 SAML 서명 인증서
서명 인증서는 모든 SSO 배포의 중요한 부분입니다. Microsoft Entra ID는 서명 인증서를 만들어 SaaS 애플리케이션에 대한 SAML 기반 페더레이션된 SSO를 설정합니다. 갤러리 또는 비갤러리 애플리케이션을 추가한 후에는 페더레이션된 SSO 옵션을 사용하여 추가된 애플리케이션을 구성합니다. Microsoft Entra ID에서 페더레이션된 Single Sign-On용 인증서 관리를 참조하세요.
SAML 토큰 암호화
AD FS와 Microsoft Entra ID는 애플리케이션으로 이동하는 SAML 보안 어설션을 암호화하는 기능인 토큰 암호화를 제공합니다. 어설션은 공개 키를 사용하여 암호화되고, 일치하는 프라이빗 키를 사용하여 수신 애플리케이션에서 암호가 해독됩니다. 토큰 암호화를 구성하는 경우 X.509 인증서 파일을 업로드하여 공개 키를 제공합니다.
Microsoft Entra SAML 토큰 암호화 및 구성 방법에 대한 자세한 내용은 방법: Microsoft Entra SAML 토큰 암호화 구성을 참조하세요.
참고 항목
토큰 암호화는 Microsoft Entra ID P1 또는 P2 기능입니다. Microsoft Entra 버전, 기능, 가격 책정에 대한 자세한 내용은 Microsoft Entra 가격 책정을 참조하세요.
SAML 요청 서명 확인
서명된 인증 요청의 서명에 대한 유효성을 검사하는 기능입니다. 앱 관리자는 서명된 요청의 적용 사용 및 사용 안 함을 설정하고 유효성 검사를 수행하는 데 사용해야 하는 공개 키를 업로드합니다. 자세한 내용은 서명된 SAML 인증 요청을 확인하는 방법을 참조하세요.
사용자 지정 클레임 공급자(미리 보기)
ADFS와 같은 레거시 시스템 또는 LDAP와 같은 데이터 저장소에서 데이터를 마이그레이션하려면 앱이 토큰의 특정 데이터에 종속됩니다. 사용자 지정 클레임 공급자를 사용하여 토큰에 클레임을 추가할 수 있습니다. 자세한 내용은 사용자 지정 클레임 공급자 개요를 참조하세요.
바로 이동할 수 있는 앱 및 구성
현재 쉽게 이동할 수 있는 앱에는 표준 구성 요소 및 클레임 집합을 사용하는 SAML 2.0 앱이 포함됩니다. 표준 항목은 다음과 같습니다.
- 사용자 계정 이름
- 메일 주소
- 이름
- Surname
- Microsoft Entra ID 메일 특성, 메일 접두사, 직원 ID, 확장 특성(1-15) 또는 온-프레미스 SamAccountName 특성을 포함한 SAML NameID로 대체되는 특성입니다. 자세한 내용은 NameIdentifier 클레임 편집을 참조하세요.
- 사용자 지정 클레임.
다음과 같은 경우에는 Microsoft Entra ID로 마이그레이션하기 위한 구성 단계가 더 필요합니다.
- AD FS의 사용자 지정 권한 부여 또는 MFA(다단계 인증) 규칙 Microsoft Entra 조건부 액세스 기능을 사용하여 구성합니다.
- 여러 개의 회신 URL 엔드포인트가 있는 앱. PowerShell 또는 Microsoft Entra 관리자 센터 인터페이스를 사용하여 Microsoft Entra ID에서 구성합니다.
- SAML 버전 1.1 토큰이 필요한 WS-Federation 앱(예: SharePoint 앱). PowerShell을 사용하여 수동으로 구성할 수 있습니다. 갤러리에서 SharePoint 및 SAML 1.1 애플리케이션용으로 사전 통합된 일반 템플릿을 추가할 수도 있습니다. SAML 2.0 프로토콜을 지원합니다.
- 복잡한 클레임 발급 변환 규칙. 지원되는 클레임 매핑에 대한 자세한 내용은 다음을 참조하세요.
현재 Microsoft Entra에서 지원되지 않는 앱 및 구성
특정 기능이 필요한 앱은 현재 마이그레이션할 수 없습니다.
프로토콜 기능
다음 프로토콜 기능이 필요한 앱은 현재 마이그레이션할 수 없습니다.
- WS-Trust ActAs 패턴 지원
- SAML 아티팩트 확인
AD FS에서 Microsoft Entra ID로 앱 설정 매핑
마이그레이션을 위해서는 온-프레미스에서 애플리케이션을 구성하는 방법을 평가하고 해당 구성을 Microsoft Entra ID에 매핑해야 합니다. AD FS와 Microsoft Entra ID는 비슷하게 작동하므로 신뢰, 로그온 및 로그아웃 URL, 식별자를 구성하는 개념이 두 경우 모두에 적용됩니다. Microsoft Entra ID에서 쉽게 구성할 수 있도록 애플리케이션의 AD FS 구성 설정을 문서화합니다.
애플리케이션 구성 설정 매핑
다음 표에서는 Microsoft Entra 엔터프라이즈 애플리케이션과 AD FS 신뢰 당사자 트러스트 간의 가장 일반적인 몇 가지 설정 매핑을 설명합니다.
- AD FS - 앱에 대한 AD FS 신뢰 당사자 트러스트에서 설정을 찾습니다. 신뢰 당사자를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
- Microsoft Entra ID - 설정은 Microsoft Entra 관리 센터 내에서 각 애플리케이션의 SSO 속성에 대해 구성됩니다.
구성 설정 | AD FS | Microsoft Entra ID에서 구성하는 방법 | SAML 토큰 |
---|---|---|---|
앱 로그온 URL SP(서비스 공급자)가 시작한 SAML 흐름에서 앱에 로그인하는 사용자의 URL입니다. |
해당 없음 | SAML 기반 로그온에서 기본 SAML 구성 열기 | 해당 없음 |
앱 회신 URL IdP(ID 공급자)의 관점에서 본 앱의 URL입니다. IdP는 사용자가 IdP에 로그인한 후 여기에 사용자 및 토큰을 보냅니다. SAML 어설션 소비자 엔드포인트라고 도 합니다. |
엔드포인트 탭 선택 | SAML 기반 로그온에서 기본 SAML 구성 열기 | SAML 토큰의 대상 요소. 예제 값: https://contoso.my.salesforce.com |
앱 로그아웃 URL 사용자가 앱에서 로그아웃할 때 로그아웃 정리 요청이 전송되는 URL입니다. IdP는 다른 모든 앱에서도 사용자를 로그아웃하도록 요청을 보냅니다. |
엔드포인트 탭 선택 | SAML 기반 로그온에서 기본 SAML 구성 열기 | 해당 없음 |
앱 식별자 IdP의 관점에서 앱 식별자입니다. 로그온 URL 값은 종종 식별자에 사용되지만 항상 그렇지는 않습니다. 경우에 따라 앱은 이를 엔터티 ID라고 합니다. |
식별자 탭 선택 | SAML 기반 로그온에서 기본 SAML 구성 열기 | SAML 토큰의 Audience 요소에 매핑됩니다. |
앱 페더레이션 메타데이터 앱의 페더레이션 메타데이터 위치입니다. IdP에서 엔드포인트 또는 암호화 인증서와 같은 특정 구성 설정을 자동으로 업데이트하는 데 사용합니다. |
모니터링 탭 선택 | 해당 없음. Microsoft Entra ID는 애플리케이션 페더레이션 메타데이터를 직접 사용하도록 지원하지 않습니다. 페더레이션 메타데이터를 수동으로 가져올 수 있습니다. | 해당 없음 |
사용자 ID/이름 ID Microsoft Entra ID 또는 AD FS의 사용자 ID를 앱에 고유하게 표시하는 데 사용되는 특성입니다. 이 특성은 일반적으로 사용자의 UPN 또는 이메일 주소입니다. |
클레임 규칙. 대부분의 경우 클레임 규칙은 NameIdentifier로 끝나는 형식의 클레임을 발급합니다. | 사용자 특성 및 클레임 헤더에서 식별자를 찾을 수 있습니다. 기본적으로 UPN이 적용됩니다. | SAML 토큰의 NameID 요소에 매핑됩니다. |
기타 클레임 일반적으로 IdP에서 앱으로 전송되는 기타 클레임 정보의 예로는 이름, 성, 메일 주소, 그룹 멤버 자격이 있습니다. |
AD FS에서는 신뢰 당사자에 대한 다른 클레임 규칙으로 찾을 수 있습니다. | 사용자 특성 및 클레임 헤더에서 식별자를 찾을 수 있습니다. 보기를 선택하고 다른 모든 사용자 특성을 편집합니다. | 해당 없음 |
IdP(ID 공급자) 설정 매핑
SSO용 AD FS에 대한 Microsoft Entra ID에 연결되도록 애플리케이션을 구성합니다. 여기서는 SAML 프로토콜을 사용하는 SaaS 앱을 중점적으로 다룹니다. 그러나 해당 개념은 사용자 지정 기간 업무 앱에도 적용됩니다.
참고 항목
Microsoft Entra ID의 구성 값은 Azure 테넌트 ID가 {tenant-id}
를 바꾸고 애플리케이션 ID가 {application-id}를 바꾸는 패턴을 따릅니다. 이 정보는 Microsoft Entra ID > 속성 아래의 Microsoft Entra 관리자 센터에서 확인할 수 있습니다.
- 디렉터리 ID를 선택하여 테넌트 ID를 확인합니다.
- 애플리케이션 ID를 선택하여 애플리케이션 ID를 확인합니다.
개략적으로 다음 주요 SaaS 앱 구성 요소를 Microsoft Entra ID에 매핑합니다.
요소 | 구성 값 |
---|---|
ID 공급자 발급자 | https://sts.windows.net/{tenant-id}/ |
ID 공급자 로그인 URL | https://login.microsoftonline.com/{tenant-id}/saml2 |
ID 공급자 로그아웃 URL | https://login.microsoftonline.com/{tenant-id}/saml2 |
페더레이션 메타데이터 위치 | https://login.windows.net/{tenant-id}/federationmetadata/2007-06/federationmetadata.xml?appid={application-id} |
SaaS 앱에 대한 SSO 설정 매핑
SaaS 앱은 인증 요청을 보내는 위치와 받은 토큰의 유효성을 검사하는 방법을 알아야 합니다. 다음 표에서는 앱의 SSO 설정을 구성하는 요소와 AD FS 및 Microsoft Entra ID 내의 해당 값 또는 위치를 설명합니다.
구성 설정 | AD FS | Microsoft Entra ID에서 구성하는 방법 |
---|---|---|
IdP 로그온 URL 앱의 관점에서 본 IdP의 로그온 URL(사용자가 로그인을 위해 리디렉션되는 위치)입니다. |
AD FS 로그온 URL은 AD FS 페더레이션 서비스 이름 뒤에 /adfs/ls/ 가 오는 형식입니다. 예: |
{tenant-id} 를 테넌트 ID로 바꿉니다. SAML-P 프로토콜을 사용하는 앱의 경우: WS-Federation 프로토콜을 사용하는 앱의 경우: |
IdP 로그아웃 URL 앱의 관점에서 본 IdP의 로그아웃 URL(사용자가 앱에서 로그아웃할 때 리디렉션되는 위치)입니다. |
로그아웃 URL은 로그온 URL과 동일하거나 wa=wsignout1.0 이 추가된 동일한 URL입니다. 예: https://fs.contoso.com/adfs/ls/?wa=wsignout1.0 |
{tenant-id} 를 테넌트 ID로 바꿉니다. SAML-P 프로토콜을 사용하는 앱의 경우: WS-Federation 프로토콜을 사용하는 앱의 경우: |
토큰 서명 인증서 IdP는 인증서의 프라이빗 키를 사용하여 발급된 토큰에 서명합니다. 앱이 신뢰하도록 구성된 것과 동일한 IdP에서 토큰이 제공되었는지 확인합니다. |
AD FS 토큰 서명 인증서는 AD FS 관리의 인증서 아래에 있습니다. | Microsoft Entra 관리 센터에서 SAML 서명 인증서 헤더에 있는 애플리케이션 Single Sign-on 속성에 있습니다. 여기서는 앱에 업로드할 인증서를 다운로드할 수 있습니다. 애플리케이션에 둘 이상의 인증서가 있는 경우 모든 인증서는 페더레이션 메타데이터 XML 파일에 있습니다. |
식별자/“발급자” 앱의 관점에서 본 IdP의 식별자(때로는 “발급자 ID”라고 함)입니다. SAML 토큰에서 값은 Issuer 요소로 표시됩니다. |
AD FS에 대한 식별자는 일반적으로 AD FS 관리의 서비스 > 페더레이션 서비스 속성 편집 아래에 있는 페더레이션 서비스 식별자입니다. 예: http://fs.contoso.com/adfs/services/trust |
{tenant-id} 를 테넌트 ID로 바꿉니다. |
IdP 페더레이션 메타데이터 공개적으로 사용할 수 있는 IdP의 페더레이션 메타데이터에 대한 위치입니다. (일부 앱은 URL, 식별자 및 토큰 서명 인증서를 개별적으로 구성하는 관리자 대신 연합 메타데이터를 사용합니다.) |
AD FS 페더레이션 메타데이터 URL은 AD FS 관리의 서비스 > 엔드포인트 > 메타데이터 > 형식: 페더레이션 메타데이터 아래에 있습니다. 예: https://fs.contoso.com/FederationMetadata/2007-06/FederationMetadata.xml |
Microsoft Entra ID의 해당 값은 https://login.microsoftonline.com/{TenantDomainName}/FederationMetadata/2007-06/FederationMetadata.xml 과 같은 패턴을 따릅니다. {TenantDomainName}을 contoso.onmicrosoft.com 형식의 테넌트 이름으로 바꿉니다. 자세한 내용은 페더레이션 메타데이터를 참조하세요. |