SharePoint Server의 앱 인증 계획
적용 대상:2013 2016 2019 Subscription Edition SharePoint in Microsoft 365
앱 인증은 외부 SharePoint용 앱이 보안 SharePoint 리소스에 대한 액세스를 요청할 때 해당 앱의 ID 유효성과 앱 및 연결된 사용자의 권한 부여를 검사하는 작업입니다. SharePoint 스토어 앱 또는 앱 카탈로그 앱의 외부 구성 요소(예: 인트라넷이나 인터넷에 있는 웹 서버)가 보안 SharePoint 리소스 액세스를 시도하면 앱 인증이 수행됩니다. 예를 들어 Microsoft Azure에서 실행되는 구성 요소를 포함하는 SharePoint용 앱은 외부 앱입니다. 앱 인증을 사용하면 앱이 처리하여 사용자에게 표시하는 결과에 SharePoint 리소스의 데이터를 포함하도록 허용함으로써 새로운 일련의 기능을 제공하고 시나리오를 수행할 수 있습니다.
SharePoint용 앱에서 요청된 리소스를 제공하려면 SharePoint Server를 실행하는 서버는 다음을 수행해야 합니다.
요청을 하는 앱을 신뢰할 수 있는지 확인
요청을 하는 앱을 인증하려면 SharePoint Server를 실행하는 서버가 요청을 보내는 앱을 신뢰하도록 구성해야 합니다. 이를 단방향 트러스트 관계라고 합니다.
앱이 요청하는 액세스 유형에 대한 권한이 부여되었는지 확인
SharePoint Server는 앱 사용 권한 집합(설치 시 앱 매니페스트 파일에서 지정됨)과 앱이 대신 작업을 수행하는 사용자와 연결된 사용 권한을 사용하여 액세스 권한을 부여합니다. 또한 SharePoint Server는 Set-SPAppPrincipalPermission PowerShell cmdlet을 사용하여 트러스트를 설정할 때 SPAppPrincipal에 부여된 사용 권한을 사용합니다.
SharePoint Server의 앱 인증은 사용자 인증과는 별개이며 SharePoint 사용자의 로그인 인증 프로토콜로 사용되지 않습니다. 앱 인증은 OAuth(Open Authorization) 2.0 프로토콜을 사용하며 WS-Federation과 같은 사용자 인증 또는 로그온 프로토콜 집합에 추가되지 않습니다. SharePoint Server에는 새로운 사용자 인증 프로토콜이 없습니다. 앱 인증 및 OAuth는 ID 공급자 목록에 표시되지 않습니다.
소개
앱 인증을 계획할 때는 다음 작업을 수행합니다.
SharePoint 리소스에 대한 요청을 수행할 외부 앱에 해당하는 트러스트 관계 집합(SharePoint Server를 실행하는 팜에서 구성해야 함)을 파악합니다.
인터넷에서 호스팅되는 외부 응용 프로그램으로부터의 들어오는 액세스를 제공합니다.
중요
SharePoint용 앱에서 수행하는 들어오는 요청용 앱 인증 끝점을 포함하는 웹 응용 프로그램은 SSL(Secure Sockets Layer)을 사용하도록 구성해야 합니다. SharePoint Server에서는 SSL이 필요하지 않도록 OAuth를 구성할 수 있습니다. 그러나 이 방식은 구성을 쉽게 수행하거나 앱 개발 환경을 만들려는 경우 평가용으로만 사용하는 것이 좋습니다.
참고
SharePoint 팜의 리소스를 요청하는 하나 이상의 외부 SharePoint용 앱을 사용하는 경우에만 SharePoint 팜에 대해 앱 인증을 계획하면 됩니다.
트러스트 관계 집합 파악
다음과 같은 유형의 외부 앱에서 보내는 리소스 요청에 해당하는 액세스 토큰을 신뢰하도록 SharePoint 팜을 구성해야 합니다.
인터넷이나 인트라넷의 자체 서버에서 실행되고 Microsoft Azure에 등록되며 ACS를 사용하여 액세스 토큰을 얻는 공급자 호스팅 앱
공급자 호스팅 앱의 경우에도 해당 앱의 ACS 인스턴스를 신뢰하도록 SharePoint 팜을 구성해야 합니다.
인트라넷의 독립 실행형 서버에서 실행되며 서명 인증서를 사용하여 앱이 생성하는 액세스 토큰에 디지털 서명을 하는 신뢰도가 높은 앱
신뢰도가 높은 앱은 사용자를 대신해서 서버 간 프로토콜을 사용하여 리소스를 요청합니다. 신뢰도가 높은 앱의 경우 앱을 호스팅하는 서버의 JSON(JavaScript Object Notation) 메타데이터 끝점을 사용해서 SharePoint 팜을 구성합니다. 또는 트러스트를 수동으로 구성할 수 있습니다. 자세한 내용은 SharePoint Server에서 앱 인증 구성을 참조하세요.
신뢰도가 높은 앱에 대한 자세한 내용은 방법: 서버 간 프로토콜을 사용하여 SharePoint 2013에 대한 신뢰도가 높은 앱 만들기를 참조하세요.
온-프레미스 앱에 대한 사용자 인증 방법 선택
온-프레미스 앱은 온-프레미스 서버 또는 SharePoint 호스팅 앱에서 호스트되는 공급자 호스팅 앱입니다. 표 1에는 SharePoint Server의 다양한 인증 사용자 방법과 해당 메서드를 SharePoint Server 온-프레미스 앱에 사용할 수 있는지 여부가 나와 있습니다.
표 1. 온-프레미스 앱의 사용자 인증 방법 및 지원
인증 방법 | SharePoint 호스팅 앱의 지원 | 공급자 호스팅 앱의 지원 |
---|---|---|
NTLM |
예 |
예 |
Kerberos |
예,하지만 대체 인증 방법으로 NTLM을 사용하도록 구성된 경우에만. Kerberos 전용은 지원되지 않습니다. |
예 |
기본 |
예 |
예 |
익명 |
예 |
예 |
기본 ASP.NET 공급자를 사용하는 폼 기반 인증 |
예 |
예 |
LDAP(Lightweight Directory Access Protocol)를 사용하는 폼 기반 인증 |
예 |
예 |
SAML(Security Assertion Markup Language) 인증 |
예. . wreply 매개 변수를 사용하도록 SharePoint Server를 구성하려면 Microsoft PowerShell 명령 프롬프트에서 다음 명령을 사용합니다. $p = Get-SPTrustedIdentityTokenIssuer$p.UseWReplyParameter = $true$p.Update()
> [! 참고]> AD FS(Active Directory Federation Services) 2.0 버전은 반환 URL 등록을 위한 와일드카드를 지원하지 않습니다. |
예 |
SharePoint Server의 사용자 인증 방법에 대한 자세한 내용은 SharePoint Server에서 사용자 인증 방법 계획을 참조하세요.
인터넷에서 호스트되는 외부 응용 프로그램에서 들어오는 액세스 제공
외부 공급자 호스팅 앱이 인터넷에 있는 경우에는 인트라넷 SharePoint 팜에서 리소스를 요청하고 앱 인증을 수행하도록 역방향 웹 프록시를 구성해야 합니다. 네트워크 에지에서 구성된 역방향 웹 프록시는 앱에서 SharePoint 팜으로 들어오는 HTTPS(HTTP over SSL) 연결을 허용해야 합니다. 일반적으로는 외부 앱이 액세스하는 HTTPS 기반 URL을 식별한 다음 해당 URL을 게시하고 적절한 보안을 제공하도록 역방향 프록시를 구성합니다.
사용자 프로필 응용 프로그램 서비스 관련 사항 고려
신뢰도가 높은 앱은 자체 액세스 토큰을 생성하며, 이 토큰에는 앱이 대신 작업을 수행하는 사용자 ID의 어설션이 포함됩니다. SharePoint Server를 실행하며 들어오는 리소스 요청을 처리하는 서버는 특정 SharePoint 사용자에 대한 요청을 확인할 수 있어야 하는데, 이 프로세스를 사용자 ID 리하이드레이션(rehydrate)이라고 합니다. 이 프로세스는 사용자를 식별하되 어설션하지는 않는 공급자 호스팅 앱에 대한 앱 인증과는 다릅니다.
SharePoint Server를 실행하는 서버는 사용자 ID를 리하이드레이션하기 위해 들어오는 액세스 토큰의 클레임을 가져와 특정 SharePoint 사용자로 확인합니다. 기본적으로 SharePoint Server에서는 기본 제공 User Profile Service 응용 프로그램을 ID 확인자로 사용합니다.
사용자 ID 리하이드레이션을 위한 주요 사용자 특성은 다음과 같습니다.
Windows SID(보안 식별자)
AD DS(Active Directory 도메인 서비스) UPN(사용자 계정 이름)
SMTP(Simple Mail Transfer Protocol) 주소
SIP(Session Initiation Protocol) 주소
따라서 앱은 이러한 사용자 특성 중 하나 이상을 포함해야 하며, 해당 특성은 사용자 프로필에서 최신 상태여야 합니다. ID 저장소를 User Profile Service 응용 프로그램에 주기적으로 동기화하는 것이 좋습니다.
또한 SharePoint Server에서는 이 4개 특성 중 하나 이상을 기준으로 하는 지정된 조회 쿼리에 대해 User Profile Service 응용 프로그램에 항목이 하나만 있어야 합니다. 그렇지 않으면 여러 사용자 프로필이 발견되었다는 오류 조건이 반환됩니다. 그러므로 여러 사용자 프로필이 남아 있지 않도록 User Profile Service 응용 프로그램에서 오래된 사용자 프로필을 주기적으로 삭제해야 합니다.
사용자에 대한 사용자 프로필이 있는데 관련 그룹 멤버 자격을 동기화하지 않으면 정상적으로는 해당 사용자에게 지정된 리소스 액세스 권한이 부여되는 상황에서 액세스가 거부될 수 있습니다. 따라서 그룹 멤버 자격을 User Profile Service 응용 프로그램과 동기화해야 합니다.