Drupal에서 OAuth/액세스 토큰 인증 설정
이 Drupal API 인증 이 방법은 OAuth 2.0 프로토콜을 사용하여 보안 액세스 토큰을 생성합니다. 이 토큰은 Drupal 사이트 API에 대한 인증 및 요청 처리에 사용됩니다. OAuth 방법은 강력한 암호화를 통해 API를 안전하게 보호하고 무단 접근으로부터 안전하게 보호합니다. Drupal REST 및 JSON:API 엔드포인트를 보호하는 가장 안전한 방법 중 하나로 널리 알려져 있습니다. 이 모듈은 Drupal 8, 9, 10, 11과 완벽하게 호환됩니다.
- 작곡가 사용
- Drush 사용
- 수동 설치
사전 요구 사항 :
- REST UI: 이 모듈은 REST 모듈을 구성하기 위한 사용자 친화적인 인터페이스를 제공합니다.
- 다음 웹 서비스 모듈을 활성화하세요. 하다 Drupal 사이트의 섹션(/admin/modules):
- JSON:API
- REST UI
- RESTful 웹 서비스
- 직렬화
API 활성화 및 메서드 할당:
- 첫 번째 단계는 API를 활성화하고 해당 API에 허용되는 메서드와 작업을 할당하는 것입니다. 이 작업은 다음을 사용하여 수행할 수 있습니다. REST UI 모듈이나 Drupal 구성을 직접 수정하여 사용할 수 있습니다.
- 온 클릭 API 활성화 버튼을 클릭합니다.
- REST UI 모듈을 사용하여 API를 활성화하려면 다음을 클릭하세요. 구성 버튼(아래 그림 참조).
- 우리의 예에서 우리는 다음을 활성화해야 합니다. /엔티티/사용자 API입니다. 이를 위해 앞에 있는 '활성화' 옵션을 클릭하세요.
- 우리의 목표는 Drupal에서 사용자를 만드는 것이므로 다음 구성을 선택하세요.
- 방법 : POST
- 체재: JSON
- 인증 공급자: rest_api_인증
- 이렇게 하면 miniOrange API 인증 모듈이 API를 인증할 수 있습니다. 구성 저장 버튼을 계속합니다.
구성 단계
1. OAuth/액세스 토큰 인증 방법 설정:
- 이 단계에서는 OAuth/액세스 토큰을 API 인증 방법으로 구성합니다. 이를 위해 API 인증 모듈의 탭(/admin/config/people/rest_api_authentication/auth_settings).
- $XNUMX Million 미만 기본 구성, 활성화 인증 사용 비녀장.
- 입력 응용 프로그램 이름 선택 OAuth/액세스 토큰 인사말 인증 방법 안내
- 아래로 스크롤하여 OAuth 구성 같은 탭의 섹션.
- 선택 사항: 토큰 만료 시간에서 원하는 만료 기간(분)을 입력합니다.
- 다음에 의해 생성된 액세스 토큰 사용:
- REST API 인증: 클릭 새로운 클라이언트 ID와 비밀번호를 생성합니다. 버튼을 클릭하세요. (클라이언트 ID와 비밀번호를 잘 보관하세요. 나중에 사용자 생성 API를 인증하는 데 필요합니다.)
- OAuth 서버: 또한 액세스 토큰을 얻을 수도 있습니다. OAuth 서버 모듈(SSO 수행 후)을 사용하여 인증에 사용합니다.
- 클릭 구성 저장 버튼을 클릭합니다.
- OAuth/액세스 토큰 인증 방법을 성공적으로 구성했습니다.
참고 : API를 인증할 때 애플리케이션별 고유 헤더를 사용합니다.
사용자 생성을 위한 역할 권한 부여
- 필요한 경우, 관리자가 아닌 Drupal 역할이 사용자를 생성하도록 허용할 수 있습니다. 이를 위해 Drupal 사이트의 권한 페이지(/admin/people/permissions)에서 원하는 역할에 관리자 권한을 할당하세요.
2. REST API 모듈에서 토큰을 얻습니다.
- API 호출을 통해 액세스 토큰을 받으세요. 그런 다음 이 토큰을 사용하여 Drupal API를 인증하고 사용자를 생성하세요.
- miniOrange API 인증 모듈은 액세스 토큰을 얻기 위해 두 가지 부여 유형을 지원합니다.
- 비밀번호 부여에서 사용자의 Drupal 사용자 이름과 비밀번호, REST API 인증 모듈에서 발급한 클라이언트 ID를 포함하는 POST 요청을 수행하여 액세스 토큰을 얻을 수 있습니다.
비밀번호 부여:
HTML 요청 형식 - 요청: POST /rest_api/access_token 본문: grant_type = 비밀번호 사용자 이름 = 비밀번호 = 클라이언트_아이디 = CURL 형식의 요청- curl --location --request POST ' /rest_api/access_token' \ --header '수락: application/json' \ --header '콘텐츠 유형: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=password' \ --data-urlencode '클라이언트_id= ' \ --data-urlencode '사용자 이름= \ --data-urlencode '비밀번호= '
- 아래의 Postman 요청 이미지도 참조할 수 있습니다.
클라이언트 자격 증명 부여:
- 클라이언트 자격 증명 부여에서 API 인증 모듈에서 발급한 클라이언트 ID와 클라이언트 비밀번호, 사용자의 Drupal 사용자 이름이 포함된 POST 요청을 수행하여 액세스 토큰을 얻을 수 있습니다.
HTML 요청 형식 - 요청: POST /rest_api/access_token 본문: grant_type = client_credentials client_id = 클라이언트_비밀 = 사용자 이름 = CURL 요청 형식- curl --location --request POST '/rest_api/access_token' \ --header '수락: application/json' \ --header '콘텐츠 유형: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=client_credentials' \ --data-urlencode 'client_id= ' \ --data-urlencode '사용자 이름= >' \ --data-urlencode '클라이언트_비밀= '
- 성공적인 응답은 토큰 만료 및 토큰 유형과 함께 액세스 토큰을 반환합니다(아래 이미지 참조).
3. 예:
- 이제 OAuth/액세스 토큰을 사용하여 인증을 위한 API 호출로 사용자를 생성해 보겠습니다.
- 더 잘 이해하기 위해 Drupal의 사용자 생성 API에 OAuth/액세스 토큰 기반 인증을 추가하는 예를 살펴보겠습니다.
- 수신된 액세스 토큰을 사용하여 Drupal REST API를 인증합니다.
- 액세스 토큰으로 인증하려면 요청의 Authorization 헤더에 토큰을 Bearer 토큰으로 추가합니다.
- 토큰 기반 인증을 사용하여 사용자를 생성하기 위한 샘플 요청:
참고 : Drupal의 /entity/user API는 새로운 사용자를 만드는 데 사용됩니다.
참고 : API 인증 모듈이나 OAuth 서버 모듈에서 생성된 모든 액세스 토큰을 사용할 수 있습니다.
HTML 요청 형식 - 요청: POST /entity/user?_format=json 헤더: AUTH-METHOD: application_id 수락: application/json 콘텐츠 유형: application/json 승인: Bearer 본문: { "name": { "value": " " }, "메일": { "값": " " }, "pass": { "value": " " }, "status": { "value": "1" } } CURL 요청 형식- curl --location --request POST ' /entity/user?_format=json' \ --header '인증 방법: application_id' \ --header '수락: application/json' \ --header '콘텐츠 유형: application/json' \ --header '권한 부여: Bearer ' \ --data-raw ' { "name": [ { "value": "사용자 이름" } ], "mail": [ { "value": "이메일" } ], "pass": [ { "value": "비밀번호" } ], "status": [ { "value": "1" } ] }
- 응답이 성공하면 생성한 사용자의 세부 정보가 반환됩니다(아래 이미지 참조).
축하합니다! Drupal API 인증 모듈을 사용하여 OAuth/액세스 토큰 인증 방식을 성공적으로 설정했습니다.
구성이 성공적이지 않은 경우 다음 주소로 문의해 주세요. drupalsupport@xecurify.com오류 창의 스크린샷을 첨부해 주시면 문제 해결을 도와드리고 설정 과정을 안내해 드리겠습니다.
당신의 응답을 주셔서 감사합니다. 곧 다시 연락드리겠습니다.
문제가 발생했습니다. 문의사항을 다시 제출해 주세요.
