다음을 통해 공유


Active Directory 및 클레임 기반 인증

 

게시 날짜: 2017년 1월

적용 대상: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

클레임 기반 인증은 호스트 컴퓨터에서 사용자를 인증하는 업계 표준 보안 프로토콜을 제공합니다. 클레임 기반 인증은 수동 모드(Microsoft Dynamics 365(온라인 및 온-프레미스)과 함께 WS-Federation 사용) 또는 활성 모드(WCF(Windows Communication Foundation)와 함께 WS-Trust 사용)에서 SAML(Security Assertion Markup Language) 토큰 사용을 설명하는 WS-* 표준 집합입니다. 이 인증은 보안 사용자 인증을 제공하는 WCF 및 Microsoft Dynamics 365 서버의 통신 채널을 제공합니다. 모든 Microsoft Dynamics 365 버전에서 클레임 기반 인증을 지원합니다.

클레임 기반 인증은 서버에서 실행되는 STS(보안 토큰 서비스)를 사용할 수 있어야 합니다. STS 서버는 Active Directory Federation Services(AD FS) V2 또는 공식 STS 프로토콜을 제공하는 플랫폼을 기반으로 할 수 있습니다. 자세한 내용은 Dynamics 365 배포 및 관리 설명서의 TechNet: Microsoft Dynamics CRM 2015에 대한 IFD 구성 항목을 참조하십시오.

이 항목의 내용

지원되는 인증 시나리오

지원되지 않는 인증 시나리오

인증 클래스

클라이언트 프록시 클래스를 사용하여 인증

채널 예외 및 오류 처리

보안 (SAML) 토큰에 대한 추가 정보

지원되는 인증 시나리오

Microsoft Dynamics 365에서는 각 배포 유형에 대해 다음 인증 시나리오를 지원합니다.

배포

인증 모델

Microsoft Dynamics 365(온라인)

클레임 기반 또는 Active Directory(페더레이션을 통해) 인증

Microsoft Dynamics 365 온-프레미스

클레임 기반 또는 Active Directory 인증

Microsoft Dynamics 365인터넷 연결 배포(IFD)

클레임 기반 또는 Active Directory 인증

클레임 기반 인증 작동 방식

사용자를 인증하는 요청은 Microsoft Dynamics 365이나 Microsoft Dynamics 365(온라인) 또는 STS 서버에 대한 사용자 지정 응용 프로그램에서 보냅니다. STS 서버는 사용자가 인증되는지 여부를 결정하고 인증될 경우 사용자 인증 정보가 포함된 서명 및 암호화된 SAML 토큰을 발급합니다. 토큰에는 한정된 수명이 있으므로 응용 프로그램에서 토큰을 사용하는 기간에 따라 주기적으로 새로 고쳐야 할 수 있습니다. 자세한 내용은 이 항목의 뒷부분에서 설명합니다.

Active Directory 인증 작동 방식

사용자를 인증하는 요청은 Microsoft Dynamics 365 또는 Active Directory에 대한 사용자 지정 응용 프로그램에서 보냅니다. WCF 스택은 응용 프로그램의 조직 서비스 호출에 대한 인증 프로세스를 관리하고 IIS(인터넷 정보 서비스)는 웹 응용 프로그램에 대한 인증을 관리합니다.

지원되지 않는 인증 시나리오

Microsoft Dynamics 365 SDK에서 클라이언트 인증서 사용은 지원되지 않습니다. IIS 클라이언트 인증서를 요구하도록 Microsoft Dynamics 365 웹 사이트를 구성하면 SDK를 사용하여 빌드된 모든 응용 프로그램에 대해 인증 오류가 표시됩니다.

지원되지 않는 추가 프로그래밍 메서드에 대한 자세한 내용은 지원되지 않는 사용자 지정 항목을 참조하십시오.

인증 클래스

다음 표에는 SDK에서 사용할 수 있는 기본 인증 클래스가 나와 있으며, 사용 시기를 설명하고 추가 관련 설명서에 대한 링크를 제공합니다.

클래스

사용법

관련 문서

IServiceConfiguration<TService>, IServiceManagement<TService>

모든 배포 유형:온-프레미스/IFD, 온라인(Microsoft 계정 및 Office 365/MOS*)

다중 스레드 응용 프로그램을 위한 최고의 선택

Microsoft Dynamics 365(온라인) 웹 서비스를 사용하여 Office 365 사용자 인증

샘플: Microsoft Dynamics 365 웹 서비스를 사용하여 사용자 인증

改善服務管道配置效能

DiscoveryServiceProxy, OrganizationServiceProxy

모든 배포 유형:온-프레미스/IFD, 온라인(Microsoft 계정 및 Office 365/MOS*)

클라이언트 프록시 클래스를 사용하여 인증

샘플: 검색 서비스 액세스

改善服務管道配置效能

CrmConnection 클래스

모든 배포 유형:온-프레미스/IFD, 온라인(Microsoft 계정 및 Office 365/MOS*)

Microsoft Dynamics CRM에 대한 간단한 연결

샘플: Microsoft Dynamics 365을 사용하여 간소화된 연결 빠른 시작

ServerConnection

모든 배포 유형:온-프레미스/IFD, 온라인(Microsoft 계정 및 Office 365/MOS*)

콘솔 테스트 응용 프로그램 및 샘플 코드에 사용합니다.

SDK 샘플 코드를 실행할 때 유용성을 개선하고 인증 클래스의 사용법을 보여 주기 위해 설계되었습니다. 콘솔 출력 코드가 들어 있습니다.

도우미 코드: ServerConnection 클래스

샘플: Microsoft Dynamics 365용 빠른 시작

*Microsoft Online Services 환경

클라이언트 프록시 클래스를 사용하여 인증

Microsoft Dynamics 365 웹 서비스로 인증하는 한 가지 방법은 작성하는 응용 프로그램에서 OrganizationServiceProxyDiscoveryServiceProxy 클래스를 사용하는 것입니다. 이러한 클래스의 네 가지 매개 변수 생성자가 Microsoft Dynamics 365(온라인 및 온-프레미스) 배포를 지원합니다. 이러한 프록시 클래스는 클레임 또는 Active Directory 인증을 자동으로 처리하고 WCF 채널 끝점의 리소스 제한도 관리합니다.

다음 코드에서는 조직 서비스 프록시를 인스턴스화하는 방법을 보여 줍니다.

using (OrganizationServiceProxy _serviceProxy =    new OrganizationServiceProxy(organizationUri, homeRealmUri, userCredentials, deviceCredentials))

다음 코드에서는 검색 서비스 프록시를 인스턴스화하는 방법을 보여 줍니다.

using (DiscoveryServiceProxy _discProxy =    new DiscoveryServiceProxy(organizationUri, homeRealmUri, userCredentials, deviceCredentials))

응용 프로그램을 종료하기 전에 응용 프로그램에서 서비스 프록시 인스턴스를 제대로 삭제하는 것이 중요합니다.using 문은 서비스 프록시가 범위를 벗어나면 서비스 프록시에서 Dispose를 호출하여 자동으로 제대로 삭제되도록 합니다. 하지만 응용 프로그램 성능 향상을 위해 삭제하고 다시 필요할 때 응용 프로그램 코드의 다른 곳에 할당하는 대신 전체 응용 프로그램 세션에 대해 응용 프로그램에서 사용할 수 있도록 서비스 프록시 인스턴스를 유지하는 것이 좋습니다. 서비스 채널을 만들고 인증하는 것은 시간이 많이 드는 작업이기 때문입니다. 이 경우 서비스 프록시 인스턴스를 완료하면 응용 프로그램을 종료하기 전에 프록시에서 삭제 메서드를 직접 호출해야 합니다.

등록된 컴퓨팅 장치의 장치 자격 증명은 Microsoft 계정 id 공급자를 통해 Microsoft Dynamics 365(온라인)으로 인증할 때만 사용됩니다. 프록시 생성자 매개 변수를 채우는 방법을 보여 주는 샘플 코드는 샘플: 검색 서비스 액세스를 참조하십시오.

중요

Microsoft Dynamics 365의 온-프레미스 또는 IFD(인터넷 연결 배포) 설치의 경우 STS 서버를 사용할 수 있으면 클라이언트 프록시 클래스는 클레임 기반 인증을 사용합니다. 그렇지 않으면 Active Directory 인증이 사용됩니다.

코드에서 Microsoft Dynamics 365 초기 바인딩 엔터티 유형을 사용하려는 경우 조직 서비스 프록시를 인스턴스화한 후, 웹 서비스 메서드를 호출하기 전에 다음 코드 줄을 추가해야 합니다.

_serviceProxy.EnableProxyTypes()
System_CAPS_security 보안 참고

WCF는 필요한 경우 사용자에게 로그온 자격 증명을 입력하라는 메시지를 대화형으로 표시할 수 있는 기능을 지원합니다. 이 기능은 ClientCredentials 클래스의 SupportInteractive 속성을 설정하여 활성화됩니다. 이러한 자격 증명은 앞의 코드 조각에 표시된 userCredentials 매개 변수에 사용됩니다.

SDK에서 Microsoft Dynamics 365 웹 서비스에 대해 호출할 때 DK 호출에 의해 수행되는 작업 소유권 형태 및 엔터티 데이터 변경 내용은 코드에 독립적인 이 WCF 기능으로 변경할 수 있습니다.

Microsoft Dynamics 365은 다음과 같이 웹 서비스 호출에 대해 제공된 자격 증명을 처리합니다.

  • 웹 서비스 호출에 자격 증명이 제공되지 않으면 WCF 스택은 사용할 자격 증명을 결정합니다. 이 경우 SupportInteractive 속성 값으로 자동으로 false로 설정됩니다.

  • 코드에 자격 증명이 명시적으로 제공되면 SupportInteractive 값이 WCF 채널 팩터리로 전달됩니다. 명시적으로 변경하지 않는 한 SupportInteractive는 기본적으로 true로 설정됩니다.

  • SupportInteractivetrue로 설정되고 제공된 자격 증명이 실패하면 WCF 대화 상자가 표시될 수 있습니다. 응용 프로그램에서 호출하는 웹 서비스 호출에 제공된 자격 증명 대신 사용자가 대화 상자에 입력한 자격 증명이 사용됩니다.

채널 예외 및 오류 처리

코드는 다음과 같은 예외와 오류를 찾아내야 합니다. 찾아낼 추가 예외 목록은 에서 Microsoft Dynamics 365 SDK의 C# 샘플을 참조하십시오.

자세한 내용은 WCF 오류 및 예외를 처리하는 방법에 대한 .NET FrameworkWCF 설명서를 참조하십시오. 추가 샘플 코드는 샘플 및 도우미 코드 사용을 참조하십시오.

보안 (SAML) 토큰에 대한 추가 정보

아래에서 사용자를 인증하는 동안 사용되는 SAML 토큰에 대해 설명합니다.

SAML 토큰 내용

XML 기반 SAML 2.0 토큰에는 사용자에 대한 하나 이상의 클레임을 정의하는 ID가 있습니다. 이 토큰은 클레임 기반 인증을 위해 ID 공급자(STS) 서버와 Microsoft Dynamics 365 간에 전달됩니다. ID에서 클레임은 다음과 같이 정의되어 있습니다.

클레임

사용

UPN(Universal Principal Name)

대상 Microsoft Dynamics 365 서버에 도메인\별칭 형식의 사용자 ID가 포함됩니다.

이름

인증된 사용자가 Microsoft Dynamics 365의 배포 관리자인 경우 이 클레임에는 배포 관리자의 ID도 도메인\별칭 형식으로 대상 Microsoft Dynamics 365 서버에 포함됩니다.Windows Identity Foundation은 Name 클레임을 Identity.name 속성에 매핑합니다.

다른 클레임

Microsoft Dynamics 365에서 사용되지 않습니다.

지원되는 보안 토큰 유형

Microsoft Dynamics 365(온라인 및 온-프레미스)에서는 두 가지 유형의 SAML 토큰을 지원합니다.

  • 웹 응용 프로그램 - Microsoft Dynamics 365 웹 응용 프로그램은 STS에서 전달자 토큰을 받습니다. 이 토큰에 일부 필요한 정보가 없으므로 WCF 끝점에 액세스할 때 TLS(Transport Layer Security) 또는 SSL(Secure Sockets Layer) 기반 URL(https://)이 보안을 위해 사용됩니다.

  • SDK -사용자 지정 응용 프로그램은 필요한 정보가 포함 된 증명 키를 사용하여 활성 토큰을 받습니다.

보안 토큰의 수명 주기

SecurityToken에는 ValidFromValidTo 속성으로 식별되는 수명이 있습니다. 응용 프로그램에서 다음 메시지 요청이 처리될 때 Microsoft Dynamics 365 웹 서비스에서 ExpiredSecurityTokenException이 발생될 수 있으므로 응용 프로그램을 디자인할 때 토큰이 만료될 수 있는 가능성을 고려해야 합니다.

참고 항목

연습: Active Directory를 사용하여 Dynamics 365 등록
Microsoft Office 365 및 Microsoft Dynamics 365(온라인)에 연결
ASPX 웹 페이지 또는 IFRAME에서 Single Sign-On 구현
샘플: Microsoft Dynamics 365 웹 서비스를 사용하여 사용자 인증

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 저작권 정보