2009-09-30 1 views
9

Active Directory의 Windows PC에서 사용자 이름 암호를 입력하지 않고도 시스템에 안전하게 로그온 할 수 있기를 원합니다. 아이디어는 (클라이언트 소프트웨어가 로그온 한 Windows 컴퓨터에서 실행 중임) 서버에 증명할 일종의 토큰이 있습니다. 내가 말하는 사람입니다 (서버가 토큰과 ID를 확인하기 위해 AD에 회담합니다. 정체). NET 3 가능합니까?활성 디렉토리에서 토큰 기반 인증을 사용할 수 있습니까?

C#에서 사용중인 언어.

+0

해당 용도로 만든 도메인 사용자를 응용 프로그램으로 가장해야합니까? –

+0

특히 Kerberos 패키지를 이러한 유형의 동작을 가능하게하도록 설정할 수 있으므로 프로그래밍 응답을 찾고 있습니까? –

답변

0

네트워크 리소스 (파일 공유, SQL Server 등)에 액세스하면 응용 프로그램은 현재 실행중인 사용자로 자동으로 수행합니다. 좀 더 구체적인 것을하고 싶니? 도메인에서 작업하는 경우 사용 권한은 자연스럽게 사용하는 네트워크 리소스를 따라야합니다.

.NET을 사용하여 다른 사용자를 가장하고 작업을 수행 할 수 있지만 추가 단계없이 사용자가 다시 로그인하지 않고도 사용자를 대신하여 작업 할 수 있습니다.

0

Windows에서 각 응용 프로그램 스레드는 일부 보안 토큰에서 실행됩니다. 기본값은 현재 사용자의 토큰입니다. 따라서 컴퓨터 또는 네트워크에서 파일을 읽으려면 응용 프로그램이 토큰과 함께 이동하게됩니다. 일부 다른 사용자 또는 서비스로 응용 프로그램을 실행하거나 다른 사람으로 행동하도록 코드를 가장 할 수 있습니다. asp.net 앱으로 사용하는 경우 인터넷 익스플로러는 iis (인트라넷 영역)의 백그라운드에서 데이터를 교환하여 서버가 자신의 신원을 알 수 있지만 기본적으로 자격 증명에 따라 실행되지 않습니다. web.config를 통해 변경되었습니다.

3

정확하게 질문을하면 Kerberos가이 인스턴스에서 찾고있는 것과 정확히 일치하는 것처럼 보입니다. Kerberos 인증 (대상 환경에서 지원되는 경우)은 이러한 방식의 티켓 인증을 허용합니다. 방법 중개 한 인증의 광범위한 개요는 Kerberos를 내가 Brokered Authentication with Kerberos에 MSDN 참조를 추천 할 것입니다 작동합니다

이 지원하는 C# 코드에 관해서는

Brokered authentication with Kerberos http://i.msdn.microsoft.com/Aa480562.ch1_brokauthkerb_f02(en-us,MSDN.10).gif

, I는이 CodeProject article를 추천 할 것입니다 MS 웹에 초점을 맞추고 서비스를 제공하지만 다른 시나리오에서이를 사용하기위한 기초를 제공 할 수도 있습니다.

10

나는 정말로 클레임 기반 인증을 봐야한다고 생각합니다.

Microsoft는 최근에 많은 작업을 수행했습니다. Geneva Server (공식적으로 ADFS 2.0이라고 함)와 Geneva Framework (공식적으로 Windows Identity Foundation이라고 함)에 대해 들어 보셨을 것입니다. 인증은 중앙 지점/서버 (일반적으로 Geneva Server 또는 STS (Security Token Server))에서 수행되며, 인증 된 사용자에게는 SAML 2.0 기반의 보안 토큰이 제공됩니다 (SAML 2.0 기반). 그/그녀는 액세스하려고합니다. 인증은 Windows 인증 (Windows 통합 인증이라고 함)과 같이 이미 존재하는 토큰을 번역하여 사용자 이름/비밀번호, 스마트 카드, 인증서 또는 귀하의 경우 - 현재 토큰을 번역하여 다양한 방법으로 수행 할 수 있습니다.

토큰은 SAML 2.0 기반 (다른 공급 업체의 STS 제품과의 상호 운용성을 위해 중요한 산업 표준)입니다. 여기에는 권한 부여 (권한 부여)를 위해 응용 프로그램 또는 자원 (웹 서비스 포함)에서 사용되는 사람에 대한 클레임이 포함됩니다. 그 목적을 위해 응용 프로그램이 STS에서 제공 한 클레임을 신뢰하는 것은 물론 필수적입니다. 반면에 응용 프로그램은 전혀 인증을 수행 할 필요가 없습니다.

Geneva Framework는 응용 프로그램에서 토큰을 처리하는 데 사용되는 라이브러리 (.NET)입니다. 그것은 사용하기 매우 쉽습니다.

자세한 내용은이 항목을 소개하는 백서를 참조하십시오. 공식 사이트는 here.

입니다. 물론, IMHO의 흥미로운 부분 인이 개념들로 해결되는 많은 문제가 있습니다. 여기에는 단일 사인온 (SSO), 페더레이션 단일 사인온 (여러 조직 경계에 걸쳐 있음), 위임 (응용 프로그램이 사용자 권한으로 웹 서비스를 사용함)이 포함됩니다. 희망이 정보는 도움이됩니다!

건배

PS : 물론이 모든 마이크로 소프트의 문제에 없습니다. 유사한 기능을 제공하는 Sun OpenSSO, Ping Identity 및 Thinktecture Identity Server와 같은 다른 STS 제품이 있습니다. 필자는 AD와의 상호 운용성이 좋고 질문에서 언급 한 Windows 인증을 사용하기 때문에 Microsoft 자료를 강조했습니다.

+0

언급 된 백서는 다음과 같습니다 http://download.microsoft.com/download/7/D/0/7D0B5166-6A8A-418A-ADDD-95EE9B046994/Introducing_Geneva_Beta1_Whitepaper.pdf 및 http://download.microsoft .com/download/7/D/0/7D0B5166-6A8A-418A-ADDD-95EE9B046994/GenevaFramework-WhitepaperForDevelopers-Beta2.pdf – Macross