Delegated Authentication용 PHP 샘플 실행

이 항목은 PHP 프로그래밍 언어로 제공되는 샘플을 설치, 실행 및 확장하는 방법에 대해 설명합니다.

중요:
PHP 샘플은 정책 URL 및 반환 URL 매개 변수에 기본값을 사용하도록 미리 구성되어 있습니다. 샘플을 사용하려면 먼저 이 매개 변수를 업데이트해야 합니다. 이 매개 변수를 업데이트하는 방법에 대한 자세한 내용은 이 항목 뒷부분의 "샘플 구성"을 참조하십시오.

샘플을 설치할 때 해당 파일을 웹 서버의 올바른 위치에 저장하십시오. 이 토론에서는 웹 서버에 직접 액세스할 수 있으며 서버에서 사이트를 개발하고 탐색한다고 가정합니다.

중요:
이 샘플을 실행하려면 PHP 버전 5.2 이상을 설치해야 합니다.

샘플을 설치하려면

  1. openSUSE 10.3 Linux 플랫폼에서 apache2, apache2-mod_PHP5, php5-mhash, php5-mcrypt, php5-openssl, php5-dba, php5-hash 및 php5-dom 패키지가 YaST 도구를 통해 설치되어 있는지 확인합니다. Novell 업데이트 페이지(http://www.novell.com/linux/download/updates/102_i386.html)에서 이러한 패키지 중 일부를 가져와야 할 수도 있습니다.
  2. su 명령을 실행하여 슈퍼 사용자로 로그인합니다.
  3. /etc/apache2/ 디렉터리로 이동하고 텍스트 편집기를 사용하여 default-server.conf 파일을 엽니다.
  4. <Directory "/srv/www/htdocs"> 섹션(여기서 "/srv/www/htdocs"는 http://<서버 호스트 이름>/의 문서 루트임)을 찾고 AllowOverride None 줄을 AllowOverride All로 변경합니다. 이렇게 수정하면 Delegated Authentication PHP 패키지에 포함된 .htaccess 파일이 적용됩니다. 서버에서 .htaccess 재정의를 사용하지 않으려는 경우에는 Apache 구성에서 이 파일을 조사하고 직접 변경할 수 있습니다.
  5. default-server.conf 파일을 저장하고 다음 명령을 실행하여 Apache를 다시 시작합니다. /etc/init.d/apache2 restart
  6. /srv/www/htdocs 디렉터리로 이동하고 다음 명령을 실행하여 PHP 패키지 압축을 풉니다. tar -zxvf <경로>/delauth-php-1.0.tar.gz. 여기서 <경로>는 다운로드한 delauth-php-1.0.tar.gz 파일의 경로입니다.
  7. http://<서버 호스트 이름>/delauth/sample1/이 첫 번째 샘플의 URL 진입점이 되고 http://<서버 호스트 이름>/delauth/sample2/가 두 번째 샘플의 URL 진입점이 되도록 delauth-php-1.0 디렉터리 이름을 "delauth"로 바꿉니다.

PHP 샘플이 설치됩니다. WindowsLiveLogon.php라는 PHP 라이브러리에는 두 샘플이 공유하는 함수가 들어 있습니다.

중요:
샘플에 DelAuth-Sample1.xml 및 DelAuth-Sample2.xml이라는 파일이 포함되어 있습니다. 이러한 파일에는 중요한 기밀 정보가 들어 있으므로 인터넷에서 해당 폴더에 액세스할 수 없는지 확인하시기 바랍니다.

샘플을 실행하기 전에 몇 가지 구성을 변경할 필요가 있습니다. 다음 단계에서는 샘플에 포함된 구성 파일을 업데이트하는 방법을 설명합니다.

샘플을 구성하려면

중요:
샘플이 Windows Live ID 서비스에 액세스할 수 있도록 샘플을 실행하기 전에 응용 프로그램을 Microsoft에 등록해야 합니다.
  1. 응용 프로그램을 등록하고 응용 프로그램 ID를 받습니다. 응용 프로그램 등록에 대한 자세한 내용은 Delegated Authentication에 대한 응용 프로그램 ID 받기를 참조하십시오.
    참고:
    두 샘플의 구성 프로세스를 완료하려면 등록 중 제공되는 비밀 키와 등록 후 Windows Live ID에서 제공하는 응용 프로그램 ID가 모두 필요합니다.
  2. 텍스트 편집기를 사용하여 샘플 파일 DelAuth-Sample1.xml 및 DelAuth-Sample2.xml을 엽니다. 이 파일은 C:\Inetpub\wwwroot\delauth\sampleX에 있습니다. 여기서 X는 샘플 번호입니다.
  3. appID 요소에서, 응용 프로그램을 등록하는 동안 받은 응용 프로그램 ID를 지정합니다. 다음 예제는 최종 요소를 보여 줍니다.
    <appid>0016000080000709</appid>
    
  4. secret 요소에서, 응용 프로그램을 등록하는 동안 설정한 비밀 키를 지정합니다. 다음 예제는 최종 요소를 보여 줍니다.
    <secret>S!tr0ngPa55worD</secret>
    
  5. returnurl 요소에서 샘플의 반환 URL를 지정합니다. 첫 번째 샘플의 값은 다음과 같이 설정됩니다.
    <returnurl>http://<YourServerHostName>/delauth/sample1/delauth-handler.php</returnurl>
    
    두 번째 샘플의 값은 다음과 같이 설정됩니다.
    <returnurl>http://<YourServerHostName>/delauth/sample2/wlauth-handler.php</returnurl>
    
  6. policyurl 요소에서 샘플에 대한 개인 정보 보호 정책 URL을 지정합니다. 샘플 값은 다음으로 설정되어야 합니다.
    <policyurl>http://<YourServerHostName>/delauth/sample1/policy.html</policyurl>
    
    두 번째 샘플의 값은 다음과 같이 설정됩니다.
    <policyurl>http://<YourServerHostName>/delauth/sample2/policy.html</policyurl>
    
  7. 샘플 구성 파일을 저장하고 닫습니다.

샘플을 설치하고 실행하여 Windows Live ID Delegated Authentication의 작동 방법 데모를 볼 수 있습니다.

첫 번째 샘플에서는 GetConsentUrl, ProcessConsentProcessConsentToken 함수(PHP 라이브러리에 있음)를 사용하여 Windows Live ID 승인 서비스의 승인 토큰을 요청, 처리 및 구문 분석하는 방법을 보여 줍니다.

첫 번째 샘플을 실행하려면

  1. http://<서버 호스트 이름>/delauth/sample1/로 이동합니다.
  2. 여기 클릭을 클릭합니다. 사용자는 Windows Live ID 승인 서비스에 대한 승인-요청 URL로 리디렉션됩니다.
  3. 아직 Windows Live ID 서비스에 로그인하지 않은 경우에는 로그인을 클릭합니다. Windows Live ID 로그인 페이지로 리디렉션됩니다.
  4. 유효한 Windows Live ID 및 암호를 입력하여 로그인합니다. 로그인한 후에는 Windows Live ID 승인 서비스가 승인 토큰을 검색하려고 시도하고 사용자를 샘플 응용 프로그램의 처리기 페이지로 리디렉션합니다.
  5. 샘플 응용 프로그램의 처리기 페이지는 사용자를 샘플 응용 프로그램의 기본 페이지로 리디렉션합니다.
  6. 승인 토큰이 검색되면 샘플 응용 프로그램의 기본 페이지가 승인 토큰을 처리하고, 쿠키에 저장하고, 전체 승인 토큰은 물론 승인 토큰에 포함된 다양한 요소도 표시합니다.
  7. 승인 토큰을 삭제하려면 샘플 응용 프로그램의 기본 페이지에서 여기를 클릭하십시오. 쿠키가 만료되는 승인 응용 프로그램의 처리기 페이지로 리디렉션됩니다.

두 번째 샘플은 Web Authentication 및 Delegated Authentication 기능을 결합하여 Windows Live ID 사용자를 로그인하고, Windows Live ID 승인 서비스에서 승인 토큰을 요청/처리/구문 분석한 다음 사용자를 로그아웃하는 방법을 보여 줍니다.

참고:
이 샘플에서는 Web Authentication 목적으로 작성된 많은 PHP 라이브러리 함수와 처리 기술을 사용합니다. 해당 함수 및 기술에 대한 자세한 내용은 Web Authentication 사용을 참조하십시오. 위치: Windows Live ID Web Authentication SDK.

두 번째 샘플을 실행하려면

  1. http://<서버 호스트 이름>/delauth/sample2/로 이동합니다.
  2. 페이지에 있는 첫 번째 링크의 텍스트가 로그인이면 로그인을 클릭합니다. Windows Live ID 로그인 페이지로 리디렉션됩니다.
  3. 유효한 Windows Live ID 및 암호를 입력하여 로그인합니다. 샘플 응용 프로그램의 기본 페이지로 리디렉션됩니다. 로그인 링크가 로그아웃 링크로 바뀌고 샘플 응용 프로그램의 기본 페이지에 사용자 ID가 표시됩니다.
  4. 여기 클릭을 클릭합니다. 사용자는 Windows Live ID 승인 서비스에 대한 승인-요청 URL로 리디렉션됩니다. Windows Live ID 승인 서비스가 승인 토큰을 검색하려고 시도하고 사용자를 샘플 응용 프로그램의 처리기 페이지로 리디렉션합니다.
  5. 샘플 응용 프로그램의 처리기 페이지는 사용자를 샘플 응용 프로그램의 기본 페이지로 리디렉션합니다.
  6. 승인 토큰이 검색되면 샘플 응용 프로그램의 기본 페이지가 전체 승인 토큰은 물론 승인 토큰에 포함된 다양한 요소도 표시합니다.
  7. 로그아웃을 클릭합니다. 로그아웃됩니다.

이제 사이트의 필요에 맞게 샘플 코드를 더 세부적으로 개발할 수 있는 방법을 배울 준비가 되었습니다.

첫 번째 샘플은 하드 코딩된 단일 사용 권한에 대한 액세스를 요청합니다. 필요에 맞게 이 사용 권한을 수정하거나 하드 코딩된 사용 권한을 텍스트 상자로 교체하여 리소스 공급자가 정의한 다양한 Offer 및 Action에 대한 액세스를 테스트할 수 있습니다. 사용 가능한 리소스 공급자에 대한 자세한 내용은 Windows Live 개발 웹 사이트에서 리소스 공급자 디렉터리를 참조하십시오. 두 번째 샘플은 첫 번째 샘플을 바탕으로 빌드되며 Web Authentication 및 Delegated Authentication을 웹 사이트에 함께 통합하는 보다 완전한 예를 제공합니다.

두 샘플 모두 단일 Offer/Action을 리소스 공급자에게 보내는 데 초점을 맞추고 있습니다. 여러 Offer/Action을 처리하도록 이 샘플을 확장할 수 있습니다. 그러려면 각 Offer/Action을 쉼표로 분리하십시오. 이러한 Offer/Action을 보내는 승인 요청을 작성하는 방법에 대한 자세한 내용은 승인 요청을 참조하십시오.

PHP 라이브러리를 검토하여 사용할 수 있는 추가 기능을 확인합니다. PHP 라이브러리는 Web Authentication 및 Delegated Authentication을 웹 사이트에 쉽게 통합할 수 있는 여러 함수를 제공하며, 필요에 따라 사이트의 요구 사항에 맞게 라이브러리를 확장할 수 있습니다.

마지막으로 Windows Live ID 개발 포럼에 참여하여 배운 내용을 공유하고 다른 사람에게서 배울 수 있습니다.

표시: