소개
오늘날의 디지털 시대에 API (Application Programming Interfaces)는 최신 응용 프로그램 및 서비스 구축에 중요합니다. API를 사용하면 다양한 응용 프로그램이 서로 통신하고 데이터를 공유하여 디지털 생태계의 기초가됩니다. 그러나 API의 인기가 높아짐에 따라 보안 문제가 점점 심각 해지고 있습니다. 무단 액세스로부터 API를 보호하기 위해 OAUTH 프로토콜이 널리 사용됩니다. OAUTH는 토큰 메커니즘을 통해 API 액세스를 인증하고 제어하여 보안을 개선하고 사용자 개인 정보 보호를 제공하는 권한 부여 프레임 워크를 제공합니다.
Oauth 소개
OAUTH는 원래 Twitter에서 개발 한 오픈 소스 라이센스 프레임 워크이며 2007 년에 처음 게시되었습니다. 사용자가 타사 응용 프로그램과 서비스간에 민감한 데이터를 공유 할 수있는 안전한 메커니즘을 제공합니다. Oauth는 자격 증명 대신 토큰을 사용하여 제 3 자에게 암호를 직접 제공하지 않고 특정 보호 자원에 대한 액세스 권한을 부여합니다. 따라서 Oauth는 최신 웹 애플리케이션의 승인 및 인증에 널리 사용되는 유연하고 안전한 솔루션입니다.
Oauth의 작동 방식
OAUTH는 4 가지 핵심 역할을 포함하는 "승인 코드 승인"이라는 메커니즘을 통해 승인 프로세스를 실행합니다.
- 사용자 : 최종 API 사용자.
- 타사 응용 프로그램 (클라이언트) : 사용자 리소스에 대한 액세스를 요청하는 응용 프로그램.
- 인증 서버 : 사용자 인증 및 인증을 수행하는 서버.
- 자원 서버 : 사용자 보호 자원을 저장하는 서버.
Oauth의 과정은 일반적으로 다음과 같습니다.
- 타사 응용 프로그램은 인증 정보를 제공하기 위해 권한 부여 서버의 권한을 요청합니다.
- 인증 서버는 사용자가 인증 및 승인을 요구합니다.
- 사용자는 자격 증명을 입력하고 액세스를 승인합니다.
- 인증 서버는 인증 코드를 타사 응용 프로그램에 반환합니다.
- 타사 응용 프로그램은 권한 부여 코드를 사용하여 액세스 토큰을 요청합니다.
- 인증 서버는 액세스 토큰을 확인하고 반환합니다.
- 타사 응용 프로그램은 액세스 토큰을 사용하여 리소스 서버에서 사용자 리소스를 요청합니다.
- 리소스 서버는 액세스 토큰을 확인하고 리소스를 반환합니다.
PHP는 Oauth를 구현합니다
다음은 OAuth를 구현하기위한 간단한 PHP 코드 예입니다.
<?php
// Step 1: 사용자는 승인으로 리디렉션됩니다URL
$authorizationUrl = 'https://example.com/oauth/authorize?client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&response_type=code';
header('Location: ' . $authorizationUrl);
exit;
// Step 2: 인증 서버는 사용자를 콜백으로 리디렉션합니다URL,인증 코드를 제공합니다
$authorizationCode = $_GET['code'];
// Step 3: 승인 코드를 사용하여 액세스 토큰을 얻으십시오
$tokenUrl = 'https://example.com/oauth/token';
$tokenData = [
'grant_type' => '인증 _code',
'code'=> $ emustizationCode,
'redirect_uri'=> 'your_redirect_uri',
'client_id'=> 'your_client_id',
'client_secret'=> 'your_client_secret',
];
$ tokenoptions = [
'http'=> [
'method'=> 'post',
'헤더'=> '컨텐츠 유형 : Application/x-www-form-urlencoded',
'content'=> http_build_query ($ tokendata)
]]
];
$ tokencontext = stream_context_create ($ tokenoptions);
$ tokenresult = file_get_contents ($ tokenurl, false, $ tokencontext);
$ accesstoken = json_decode ($ tokenresult)-> access_token;
// 4 단계 : Access Token을 사용하여 사용자 리소스를 얻습니다. $ userurl = 'https://example.com/api/user';
$ useroptions = [
'http'=> [
'method'=> 'get',
'헤더'=> '승인 : bearer'. $ accesstoken
]]
];
$ USERCONTEXT = Stream_Context_Create ($ userOptions);
$ USERRESULT = FILE_GET_CONTENTS ($ USERUL, FALSE, $ USERCONTEXT);
$ userData = JSON_DECODE ($ USERRESULT);
// 프로세스 사용자 데이터 Echo 'Welcome'. $ userData-> 이름;
?>
결론적으로
API 사용이 증가함에 따라 무단 액세스로부터 API를 보호하는 것이 점점 더 중요 해지고 있습니다. 공개 표준으로 OAUTH는 개발자에게 API 승인 메커니즘을 구현할 수있는 유연하고 안전한 방법을 제공합니다. OAUTH를 올바르게 구현하면 데이터 유출 및 무단 액세스를 효과적으로 방지 할 수 있습니다. PHP에서 Oauth를 구현하는 것은 매우 간단합니다. API 보호 기능을 쉽게 구현하려면 필요에 따라 적절한 수정 만 수행하면됩니다.