Keycloak을 사용하여 PHP 보안 확인 구현
Keycloak을 사용하여 PHP 보안 확인 구현
인용문:
웹 애플리케이션이 성장하고 다양해짐에 따라 사용자 데이터 및 신원의 보안을 보호하는 것이 중요해졌습니다. 안전한 인증을 달성하기 위해 OAuth 및 OpenID Connect와 같은 표준을 기반으로 인증 및 권한 부여 체계를 구현해야 하는 경우가 많습니다. Keycloak은 통합 인증 및 권한 부여 서비스를 제공하는 오픈 소스 ID 및 액세스 관리 솔루션입니다. 이 문서에서는 Keycloak을 사용하여 PHP 기반 보안 인증을 구현하는 방법을 설명하고 해당 코드 예제를 제공합니다.
1. Keycloak 서버 설정
먼저 서버에 Keycloak을 설정해야 합니다. Keycloak 공식 웹사이트(https://www.keycloak.org/)를 통해 해당 설치 패키지를 다운로드하고, 공식 문서의 단계에 따라 설치 및 구성할 수 있습니다.
2. Keycloak 클라이언트 생성
Keycloak 관리 인터페이스에서 새 Realm(영역)을 생성한 후 Realm 아래에 새 클라이언트(클라이언트)를 생성합니다. 클라이언트 구성에서 올바른 리디렉션 URI와 유효한 클라이언트 자격 증명, 선택적으로 기타 관련 옵션을 구성합니다.
3. OAuth 클라이언트 라이브러리 설치
PHP 프로젝트에서 Keycloak의 인증 및 권한 부여 메커니즘을 사용하기 위해 일부 타사 OAuth 클라이언트 라이브러리를 사용할 수 있습니다. 본 글에서는 "OAuth 2.0 Client" 오픈소스 라이브러리(https://github.com/thephpleague/oauth2-client)를 사용하겠습니다.
먼저 Composer를 사용하여 라이브러리를 설치합니다.
composer require league/oauth2-client
설치가 완료되면 PHP 코드 작성을 시작할 수 있습니다.
4. PHP 코드 예시
PHP 코드에서는 Keycloak의 클라이언트 자격 증명과 리디렉션 URI를 구성해야 합니다. 그런 다음 Keycloak의 인증 코드, 토큰 및 사용자 정보를 획득하여 신원 인증 및 권한 확인을 구현할 수 있습니다.
// 引入 OAuth 2.0 Client 库 require_once('vendor/autoload.php'); use LeagueOAuth2ClientProviderKeycloak; // Keycloak 客户端凭证和重定向 URI $clientId = 'YOUR_CLIENT_ID'; $clientSecret = 'YOUR_CLIENT_SECRET'; $redirectUri = 'http://localhost/callback.php'; // 创建 Keycloak 提供程序 $provider = new Keycloak([ 'authServerUrl' => 'http://localhost:8080/auth', 'realm' => 'YOUR_REALM', 'clientId' => $clientId, 'clientSecret' => $clientSecret, 'redirectUri' => $redirectUri ]); // 获取授权码 if (!isset($_GET['code'])) { $authUrl = $provider->getAuthorizationUrl(); $_SESSION['oauth2state'] = $provider->getState(); header('Location: ' . $authUrl); exit; } // 验证授权码 if (empty($_GET['state']) || ($_GET['state'] !== $_SESSION['oauth2state'])) { unset($_SESSION['oauth2state']); exit('Invalid state'); } // 授权码授权 $token = $provider->getAccessToken('authorization_code', [ 'code' => $_GET['code'] ]); // 使用令牌获取用户信息 $user = $provider->getResourceOwner($token); // 打印用户信息 echo 'Logged in as ' . $user->getName(); // 使用令牌调用 Keycloak API $response = $provider->getHttpClient()->get( 'http://localhost:8080/auth/realms/YOUR_REALM/protocol/openid-connect/userinfo', [ 'headers' => [ 'Authorization' => 'Bearer ' . $token->getToken() ] ] ); $data = json_decode($response->getBody(), true); // 打印用户信息 print_r($data);
코드 설명:
- 먼저 OAuth 2.0 클라이언트 라이브러리를 소개하고 Keycloak 공급자를 만듭니다.
- 그런 다음 인증 코드가 획득되었는지 확인합니다. 그렇지 않은 경우 Keycloak 인증 페이지로 리디렉션됩니다.
- 인증 코드를 획득한 후, 인증 코드의 유효성을 확인하고 인증 코드를 통해 토큰을 획득합니다.
- 토큰을 사용하여 사용자 정보를 얻고 해당 작업을 수행합니다.
5. 요약
Keycloak을 사용하여 PHP 보안 검증을 구현하는 것은 안전하고 신뢰할 수 있는 방법입니다. Keycloak 클라이언트를 구성하고 OAuth 2.0 클라이언트 라이브러리와 결합하면 Keycloak 기반 인증 및 권한 확인을 쉽게 구현할 수 있습니다.
위는 기본 예시이므로 필요에 따라 확장하고 맞춤설정할 수 있습니다. 이 기사가 Keycloak 및 PHP 보안 유효성 검사를 이해하는 데 도움이 되었기를 바랍니다.
참조 링크:
- Keycloak 공식 홈페이지: https://www.keycloak.org/
- OAuth 2.0 클라이언트 오픈소스 라이브러리: https://github.com/thephpleague/oauth2-client
위 내용은 Keycloak을 사용하여 PHP 보안 확인 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이번 장에서는 CakePHP의 환경 변수, 일반 구성, 데이터베이스 구성, 이메일 구성에 대해 알아봅니다.

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는
