현재 위치: > 최신 기사 목록> OpenAM을 사용하여 PHP 응용 프로그램의 안전한 인증을 구현하는 방법

OpenAM을 사용하여 PHP 응용 프로그램의 안전한 인증을 구현하는 방법

M66 2025-07-09

소개

웹 응용 프로그램을 개발할 때는 사용자 데이터 및 인증의 보안을 보장하는 것이 중요합니다. ID 인증 메커니즘은 사용자의 신원을 효과적으로 확인하고 시스템의 보안을 보장 할 수 있습니다. OpenAM은 PHP 응용 프로그램의 보안 검증을위한 오픈 소스 ID 관리 및 액세스 제어 솔루션입니다.

이 기사에서는 OpenAM을 사용하여 PHP 응용 프로그램의 안전한 인증을 구현하는 방법을 보여 주며 개발자가 신속하게 시작할 수 있도록 관련 코드 예제가 제공됩니다.

Openam을 설치하고 구성하십시오

시작하기 전에 OpenAM을 다운로드하여 설치해야합니다. 설치 프로세스 중에 사이트 URL 및 OpenAM의 포트를 올바르게 구성하고 안전하고 안정적인 서버 환경에 배포하여 관련 보안 설정이 마련되어 있어야합니다.

인증을 구현하기 위해 PHP 응용 프로그램을 만듭니다

다음으로 PHP 응용 프로그램의 루트 디렉토리에 login.php 파일을 작성하고 OpenAM에서 제공 한 RESTFUL API를 사용하여 사용자 로그인 및 확인 기능을 완료합니다.

 <?php
// 정의 OpenAM 서버 URL
$openam_url = "http://localhost:8080/openam";

// 사용자가 입력 한 사용자 이름과 비밀번호를받습니다
$username = $_POST['username'];
$password = $_POST['password'];

// 사용자 로그인 요청을 구축합니다 URL
$login_url = $openam_url . "/json/authenticate";

// 사용자 확인 요청을 구축하십시오 URL
$validate_url = $openam_url . "/json/users/" . $username . "/isTokenValid";

// 사용자 로그 아웃 요청을 구축합니다 URL
$logout_url = $openam_url . "/json/sessions/?_action=logout";

// 사용자 세션 구축 요청 URL
$session_url = $openam_url . "/json/sessions";

// 사용자 로그인
$login_data = array(
  'username' => $username,
  'password' => $password,
  'realm' => '/'
);
$login_response = json_decode(callOpenAMApi($login_url, $login_data));

// 验证사용자 로그인是否成功
if ($login_response->tokenId) {
  // 사용자 로그인成功

  // 사용자 세션 정보를 얻으십시오
  $session_response = json_decode(callOpenAMApi($session_url, null, $login_response->tokenId));

  // 사용자 세션이 유효한지 확인하십시오
  $validate_response = json_decode(callOpenAMApi($validate_url, null, $login_response->tokenId));

  if ($validate_response->boolean) {
    // 사용자 확인이 통과되었습니다

    // 다른 작업을 수행하십시오,예를 들어, 사용자 정보 등을 얻습니다.

    // 사용자 로그 아웃
    callOpenAMApi($logout_url, null, $login_response->tokenId);
    echo "Logout Successful";
  } else {
    // 사용자 확인이 실패했습니다
    echo "Invalid Session";
  }
} else {
  // 사용자 로그인失败
  echo "Login Failed";
}

// 요청을 보내고 응답 결과를 반환하십시오
function callOpenAMApi($url, $data = null, $token = null) {
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, array('iPlanetDirectoryPro: ' . $token));

  if ($data) {
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
  }

  $response = curl_exec($ch);
  curl_close($ch);

  return $response;
}
?>

응용 프로그램을 테스트하십시오

Login.php 페이지를 방문하여 사용자 이름과 비밀번호를 입력하고 로그인 버튼을 클릭하십시오. 인증이 성공하면 페이지에 "로그 아웃 성공"이 표시됩니다. 실패하면 페이지가 "로그인 실패"를 자극합니다.

주목해야 할 것

  • OpenAM을 설치하고 올바르게 구성하고 서비스가 올바르게 실행되고 있는지 확인하십시오.
  • PHP 환경이 CURL 기능을 지원하여 요청을 보내고 프로세스 응답을 보내십시오.

요약

이 기사를 통해 OpenAM을 사용하여 PHP 응용 프로그램에 안전한 인증 기능을 추가하는 방법을 배웠습니다. Openam의 Restful API를 사용하면 사용자 데이터 보안을 효과적으로 보호 할뿐만 아니라 사용자 액세스 경험을 최적화 할 수 있습니다. 이 안내서가 개발 노력에 도움이되기를 바랍니다.