웹 응용 프로그램을 개발할 때는 사용자 데이터 및 인증의 보안을 보장하는 것이 중요합니다. ID 인증 메커니즘은 사용자의 신원을 효과적으로 확인하고 시스템의 보안을 보장 할 수 있습니다. OpenAM은 PHP 응용 프로그램의 보안 검증을위한 오픈 소스 ID 관리 및 액세스 제어 솔루션입니다.
이 기사에서는 OpenAM을 사용하여 PHP 응용 프로그램의 안전한 인증을 구현하는 방법을 보여 주며 개발자가 신속하게 시작할 수 있도록 관련 코드 예제가 제공됩니다.
시작하기 전에 OpenAM을 다운로드하여 설치해야합니다. 설치 프로세스 중에 사이트 URL 및 OpenAM의 포트를 올바르게 구성하고 안전하고 안정적인 서버 환경에 배포하여 관련 보안 설정이 마련되어 있어야합니다.
다음으로 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 응용 프로그램에 안전한 인증 기능을 추가하는 방법을 배웠습니다. Openam의 Restful API를 사용하면 사용자 데이터 보안을 효과적으로 보호 할뿐만 아니라 사용자 액세스 경험을 최적화 할 수 있습니다. 이 안내서가 개발 노력에 도움이되기를 바랍니다.