ADFS (Active Directory Federation Services) 란 무엇입니까?


77

따라서 PHP 응용 프로그램이 ADFS를 사용한 인증을 지원해야 할 수도 있다고 들었습니다.

  1. Microsoft 이외의 사람에게 ADFS 란 무엇입니까?

  2. LDAP와 다른 점은 무엇입니까?

  3. 어떻게 작동합니까? ADFS 서버에 대한 일반적인 요청에는 어떤 종류의 정보가 포함됩니까? 인증 및 권한 부여를 위해 설계 되었습니까?

  4. ADFS 서버는 일반적으로 인터넷에서 액세스 할 수 있습니까 (회사 AD 도메인 컨트롤러는 그렇지 않음)?

Technet 문서 중 일부를 읽으려고했지만 크게 도움이되지 않는 Microsoft 말하기가 가득합니다.

Wikipedia가 더 좋지만 (아래 참조) 아마도 일부 ServerFault 커뮤니티가 일부 차이를 메울 수 있습니다.

ADFS (Active Directory Federation Services) 는 Microsoft가 개발 한 소프트웨어 구성 요소로서 Windows Server 운영 체제에 설치하여 조직 경계에있는 시스템 및 응용 프로그램에 대한 단일 로그온 액세스를 사용자에게 제공합니다. 클레임 기반 액세스 제어 권한 부여 모델을 사용하여 애플리케이션 보안을 유지하고 연합 ID를 구현합니다.

클레임 기반 인증은 신뢰할 수있는 토큰에 포함 된 ID에 대한 클레임 집합을 기반으로 사용자를 인증하는 프로세스입니다.

ADFS에서는 두 보안 영역간에 트러스트를 설정하여 두 조직간에 ID 연합이 설정됩니다. 한쪽의 페더레이션 서버 (계정 쪽)는 Active Directory 도메인 서비스의 표준 수단을 통해 사용자를 인증 한 다음 해당 ID를 포함하여 사용자에 대한 일련의 클레임을 포함하는 토큰을 발급합니다. 다른 쪽의 리소스 쪽에서는 다른 페더레이션 서버가 토큰의 유효성을 검사하고 로컬 서버가 청구 된 ID를 수락하도록 다른 토큰을 발급합니다. 이를 통해 시스템은 사용자가 시스템에 직접 인증하지 않아도되고 두 시스템이 사용자 ID 또는 암호 데이터베이스를 공유하지 않고도 다른 보안 영역에 속하는 사용자에게 자원 또는 서비스에 대한 액세스를 제어 할 수 있습니다.

실제로이 접근 방식은 일반적으로 다음과 같이 사용자가 인식합니다.

  1. 사용자는 로컬 PC에 로그인합니다 (일반적으로 아침에 작업을 시작할 때와 동일)
  2. 사용자는 파트너 회사의 엑스트라 넷 웹 사이트에서 정보를 얻어야합니다 (예 : 가격 또는 제품 세부 정보 얻기)
  3. 사용자는 파트너 회사 엑스트라 넷 사이트 (예 : http://example.com)로 이동합니다.
  4. 파트너 웹 사이트에는 이제 암호를 입력 할 필요가 없습니다. 대신 사용자 자격 증명이 AD FS를 사용하여 파트너 엑스트라 넷 사이트로 전달됩니다.
  5. 이제 사용자가 파트너 웹 사이트에 로그인하여 '로그인 한'웹 사이트와 상호 작용할 수 있습니다

에서 https://en.wikipedia.org/wiki/Active_Directory_Federation_Services


내가 발견 기사이 비디오 에 대한 개요를 제공하는 도움을.
Simon East

Reaces는 훌륭한 답변을 제공했습니다. 내가 추가 할 유일한 추가 정보 는 ADFS가 구현하는 표준 인 WS- 페더레이션 프로토콜SAML (Security Assertion Markup Language) 을 이해하기 위해 지불 할 수 있다는 것입니다. 다음은 이러한 개념을 이해하는 데 유용한 몇 가지 비디오입니다. 불행히도 여기에는 너무 많은 자료가 포함되어있어서 여기에 포함시킬 수 없습니다. ! [ YouTube에서 SAML 및 Single Sign-On 101 이해 비디오 썸네일 ] ( youtube.com/watch?v=gUmMcecHN9s ) [! [비디오 썸네일] (http
Simon East

또한 ADFS를 이해하는 데 문제가있었습니다. 나는 처음부터 설명이 필요했습니다 (나는 AD 사람이 아닙니다). 이 코멘트에 언급 된 시리즈에 포함 된이 비디오는 저에게 매우 도움이되었습니다. ADFS를 경험 한 새로운 경험이없는 사람이 시작하여 시리즈의 나머지 비디오를 계속해야하는 곳입니다. 도움이 되길 바랍니다. youtube.com/…
Mauricio Zaragoza

1
죄송합니다. 중재자가 도움이되는 동영상으로 답변을 삭제하고 위에 댓글을 달았지만 이제는 깨졌습니다. 실망.
Simon East

답변:


97

Microsoft 이외의 사람에게 ADFS 란 무엇입니까?

ADFS는 Single Sign On 및 웹 기반 인증을위한 Microsoft 솔루션입니다.

주로 동일한 도메인 내에서 호스팅되지 않아도되는 다양한 사이트에 액세스 할 수있는 단일 자격 증명 집합을 제공하는 데 사용됩니다.

LDAP와 다른 점은 무엇입니까?

LDAP :

  • 포트 389 (또는 LDAPS의 경우 포트 636)에서 TCP / UDP를 사용하여 통신
  • 사용자, 프로파일 및 기타 디렉토리 항목을 검색 / 검색 / 추가 / 삭제 / 수정하는 명령이 들어 있습니다.
  • 웹 브라우저에서 직접 수행 할 수 없지만 Apache 인증과 같은 것을 사용하여 HTTP 인증을 LDAP로 변환 할 수 있습니다 mod_authnz_ldap.
  • 타사 웹 사이트 인증에 사용되는 경우 사용자 이름 및 비밀번호를 타사에 제공해야하므로 보안에 적합하지 않습니다.
  • 개방형 표준에 가깝고 수많은 Linux 구현이 있습니다.

ADFS :

  • 표준 HTTPS를 통해 통신 할 때 웹에 적합하게 설계
  • 원본 사용자 이름 / 암호가 조직의 ADFS 서버 (또는 제 3자가 아닌 프록시)에 직접 제공되는 OAuth와 유사한 (정확하지는 않지만)보다 안전한 프로세스를 따릅니다. 유효한 경우 고유 한 토큰을 반환합니다. 타사 웹 사이트에 액세스하는 데 사용됩니다.
  • 일부 개방형 표준 (HTTPS, SAML 등)을 사용하지만 Microsoft에 따라 다르며 Windows Server에서만 실행되는 인터넷 정보 서비스 (IIS)가 필요합니다.

주제에 대한 이 답변 을 참조하십시오 .

어떻게 작동합니까? ADFS 서버에 대한 일반적인 요청에는 어떤 종류의 정보가 포함됩니까? 인증 및 권한 부여를 위해 설계 되었습니까?

자격 증명에 액세스 할 수있는 ADFS / ADFS 프록시 서버를 호스팅하는 단일 사이트 (사이트 A)를 사용하여 작동합니다 (보통 Active Directory 도메인 컨트롤러와 통신하여). 그런 다음 ADFS를 통한 인증이 필요한 다른 사이트 (사이트 B & C)간에 신뢰가 부여됩니다.

사용자가 브라우저에서 사이트 B에 액세스하려고하면 사이트는 사용자를 ADFS 프록시 웹 사이트 (사이트 A)로 리디렉션하여 사용자 이름 및 비밀번호를 요청하고 인증하며 쿠키를 기억하고 쿠키를 반환하여 리디렉션합니다. 액세스 토큰과 함께 사이트 B로 돌아갑니다.

그런 다음 사용자가 사이트 C를 방문하려고하면 ADFS 프록시 웹 사이트에서 인증을 위해 사이트 A로 리디렉션됩니다. 올바른 쿠키가 존재하면 사용자는 비밀번호를 다시 입력하지 않아도되지만 토큰을 사용하여 즉시 사이트 C로 다시 리디렉션됩니다.

ADFS는 권한 부여 목적으로 사용자에 대한 특정 클레임 (또는 권한)으로 구성 할 수 있습니다. 따라서 두 가지 역할을 모두 수행 할 수 있습니다. ( 인증과 권한 부여차이점에 유의하십시오 .)

일부 사람들은 권한 부여를 위해 권한을 사용하지 않고 대신 타사 웹 사이트에서 권한 관리를 유지합니다. 명백한 단점은 사이트 A와 B가 모두 사용자 계정을 추적해야하는 반면, ADFS가 두 계정을 모두 처리하는 시나리오에서는 ADFS 만 사용자를 인식해야한다는 것입니다.

ADFS 서버는 일반적으로 인터넷에서 액세스 할 수 있습니까 (회사 AD 도메인 컨트롤러는 그렇지 않음)?

거의 항상 그렇습니다. ADFS는 주로 웹 사이트 인증에 사용된다는 개념을 기반으로합니다. 그리고 IIS를 중심으로 구축되었습니다.

ADFS 프록시 사이트는 일반적으로 인터넷에서 액세스 할 수있는 사이트입니다. 그러나 ADFS 자체는 그렇지 않습니다. ADFS는 일반적으로 ADFS 프록시와 별도의 서버입니다.


  • 자격 증명에 연결되며 클레임 구성 및 트러스트가있는 ADFS 서버 서버 일반적으로 공개적으로 액세스 할 수 없습니다.

  • 인증이 필요한 웹 사이트에 대한 로그인 페이지가있는 IIS 인스턴스를 호스팅하는 ADFS 프록시 서버 서버. 인증이 필요할 때 ADFS와 다시 통신합니다. 일반적으로 공개적으로 액세스 할 수 있습니다.

11
명확히하려면 : ADFS 프록시 서버 는 IIS (Windows)에서 실행해야합니다. 그러나 클라이언트 웹 사이트 (B & C)는 Linux를 포함한 모든 OS 및 웹 서버를 실행할 수 있습니다.
Olli

매우 도움이되었으므로이 문제를 해결하기위한 계정을 만들었습니다.
Juan

@Reaces의 답변을 확장하여 Windows Server 2016의 ADFS 4.0은 OAuth / OpenId Connect를 완벽하게 지원합니다.
Mohammad Reza Sadreddini

@MohammadRezaSadreddini 답변을 수정하여 자유롭게 확장하십시오.
Reaces
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.