Drupal에서 JWT 인증 설정
The Drupal API 인증 이 모듈은 JSON 웹 토큰(JWT)을 사용하여 API 요청을 안전하게 인증합니다. 먼저 Drupal 사용자 이름과 비밀번호를 검증하여 서명된 JWT 토큰을 생성하고, 이 토큰은 클라이언트에게 반환됩니다. 이 토큰은 만료될 때까지 Drupal API에 액세스하는 데 사용할 수 있습니다. JWT는 서명 및 검증을 위해 HSA 및 RSA 알고리즘을 모두 지원합니다. 이 모듈은 Drupal 8, Drupal 9, Drupal 10 및 Drupal 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. JWT 인증 방법 설정:
- 이 단계에서는 JWT를 API 인증 방법으로 설정합니다. 이를 위해 API 인증 모듈의 탭(/admin/config/people/rest_api_authentication/auth_settings).
- $XNUMX Million 미만 기본 구성, 활성화 인증 사용 비녀장.
- 입력 응용 프로그램 이름 선택 JWT 인사말 인증 방법 안내
- 아래로 스크롤하여 JWT 구성 같은 탭의 섹션.
- 사용자 이름 속성 필드에 Drupal 사용자 이름이 포함된 수신 JWT의 속성 이름을 입력합니다.
- 클라임웍스와 함께 하늘과 닿는 여정을 시작하세요 서명 알고리즘 드롭 다운에서
- 선택 사항: 원하는 만료 기간(분)을 입력하십시오. 토큰 만료 시간.
- JWKS URI: 외부 JWT 토큰을 사용하려면 Drupal에서 JWKS URI를 제공하여 유효성을 검사합니다.
- 인증서/비밀 키: RS256을 선택한 경우 인증서를 제공하고, HS256을 선택한 경우 비밀 키를 제공합니다.
- 개인 키 : JWT의 개인 키를 입력하거나 새로운 키를 생성하세요.
- 공개 키 : JWT에 대한 공개 키를 입력하거나 새로운 키를 생성하세요.
- 클릭 구성 저장 버튼을 클릭합니다.
- JWT 인증 방법을 성공적으로 구성했습니다.
- 먼저 JWT를 얻기 위해 API 호출을 해야 합니다. 그런 다음 해당 토큰을 사용하여 Drupal API를 인증하고 사용자를 생성합니다.
- 사용자의 Drupal 사용자 이름과 비밀번호를 포함하는 POST 요청을 보내면 JWT를 얻을 수 있습니다. 사용자 이름과 비밀번호는 base64로 인코딩된 형식으로 전송해야 합니다. 아래 요청 형식을 참조하세요.
외부 JWT의 경우:
사용자 정의 키 생성:
참고 : 키를 직접 입력하거나 생성할 수 있습니다. 이 키는 JWT 토큰에 서명하고 검증하는 데 사용됩니다.
참고 : API를 인증할 때 애플리케이션별 고유 헤더를 사용합니다.
요청: POST /rest_api/id_token 헤더: 수락: application/json 인증: 기본 base64 인코딩 CURL 요청 형식- curl --location --request POST ' /rest_api/id_token' \ --header '수락: application/json' \ --header '콘텐츠 유형: application/json' \ --header '권한 부여: 기본 base64 인코딩 '
- 성공적인 응답은 토큰 만료와 함께 JWT를 반환합니다. (아래 이미지를 참고해주세요)
2. 예:
- 더 잘 이해하기 위해 REST API를 사용하여 Drupal에서 사용자를 생성하는 데 JWT 토큰을 사용하는 예를 살펴보겠습니다.
- Drupal에서 사용자를 생성하려면 수신된 JWT 또는 외부 JWT를 권한 헤더에 Bearer 토큰으로 사용하여 POST 요청을 해야 합니다. 호출 방법은 아래 예시를 참조하세요.
참고 : Drupal의 /entity/user API는 새로운 사용자를 만드는 데 사용됩니다.
HTML 요청 형식 - 요청: POST /entity/user?_format=json 헤더: AUTH-METHOD: application_id 수락: application/json 콘텐츠 유형: application/json 승인: Bearer received_JWT 본문: { "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 인증 모듈을 사용하여 JWT 인증 방법을 성공적으로 설정했습니다.
구성이 성공적이지 않은 경우 다음 주소로 문의해 주세요. [email protected]오류 창의 스크린샷을 첨부해 주시면 문제 해결을 도와드리고 설정 과정을 안내해 드리겠습니다.
