외부 웹 포털 용 소스 코드 템플릿 (Controller 4.1.5 이상)
Omada Controller V4.1.5 이상에 적합합니다.
Omada Controller V3.1.4 이상의 경우 FAQ2390을 참조하세요.
Omada Controller V3.0.5 이하의 경우 FAQ916을 참조하세요.
이 문서는 외부 웹 포털 서버를 설정할 때의 요구 사항을 설명합니다. Omada Controller에서 외부 웹 포털은 포털 인증 유형이 외부 Radius 서버 인 경우에만 사용할 수 있습니다.
아래 그림은 무선 클라이언트, EAP, Omada 컨트롤러, 외부 웹 포털 및 Radius 서버 간의 워크 플로우를 보여줍니다. 외부 웹 포털 서버를 설정하는 데 필요한 요구 사항을 더 잘 이해하는 데 도움이됩니다.
1. 무선 클라이언트 및 유선 클라이언트의 경우 무선 네트워크 또는 유선 LAN 네트워크의 SSID에 연결되어 인터넷에 액세스하려고하면 EAP 또는 게이트웨이가 클라이언트의 HTTP 요청을 가로 채고 Omada 컨트롤러로 리디렉션합니다. (1 단계 및 2 단계)
2. Omada 컨트롤러는 상태 코드가 302 Found 인 HTTP 응답을 클라이언트에 회신하여 클라이언트의 요청을 외부 포털 페이지로 리디렉션합니다. (3 단계 및 4 단계)
3. 클라이언트는 Client sends HTTP/HTTPS GET request to external web portal with 매개변수 “?를 사용하여 외부 웹 포털 HTTP/HTTPS GET 요청을 보냅니다.
target=target_controller_ip&targetPort=target_controller_port&clientMac=client_mac&clientIp=client_ip&raidusServerIp=radius_server_ip&apMac=ap_mac&gatewayMac=gateway_mac&scheme=scheme&ssidName==ssid_name&radioId=radio_id(2.4G 무선의 경우 "0", 5G 무선의 경우 "1")&vid=vid&originUrl=redirecturl(유무선 클라이언트가 포털 인증을 통과한 후 리디렉션 URL을 설정하지 않은 경우, 기본 리디렉션 URL은 무선 클라이언트에 따라 다릅니다)”.
4. 외부 웹 포털 서버는 clientMac, clientIp, apMac, gatewayMac, ssidName, radioId, vid, scheme, originUrl 매개 변수의 값을 가져올 수 있어야 합니다. 그런 다음 외부 웹 포털 서버는 사용자 이름, 암호, clientMac, clientIp, apMac, gatewayMac, ssidName, scheme, vid, radioId, originUrl 정보를 사용하여 클라이언트를 컨트롤러에 리디렉션해야 합니다. (6 단계)
5. 클라이언트는 제출 후 HTTP 메시지 본문에 JSON 형식(또는 HTML 형식)을 사용하여 (http) https://target_controller_ip:targetport/portal/radius/auth (또는 radius/browserauth)에 HTTP/HTTPS POST 패킷을 보냅니다. 포털의 기본 "targetport ”는 8843(7단계)입니다. radius/auth와 radius/browserauth의 차이점은 Demo 및 api 부분을 참조하세요.
참고: 컨트롤러 5.0에서 API "radius/auth"를 사용하는 경우 "Access-Control-Allow-Origin:URL" 필드를 HTTP 헤더에 제출하여 CORS(Cross-Origin Resource Sharing) 동안 보안을 강화합니다. 예를 들어 외부 웹 포털의 도메인 이름이 “www.tplinkportal.com”인 경우 "Access-Control-Allow-Origin:https://www.tplinkportal.com"을 추가해야 합니다. 참고용으로 본문 하단에 있는 데모를 다운로드하세요.
6. Omada 컨트롤러는 사용자 이름과 비밀번호를 확인하기 위해 Radius 서버와 통신합니다. (8 단계 및 9 단계)
7. 인증이 통과되면, 즉 Radius 서버에서 Access-Accept가 수신되면 Omada 컨트롤러는 구성에 따라 기본 제공 성공 페이지 또는 미리 정의 된 웹 페이지를 클라이언트로 리디렉션합니다. (10 단계)
Demo 및 api:
4.1.5 ~ 5.1.0까지 api 제공: target_controller_ip:targetport/portal/radius/auth (JSON 형식 사용)
아래 html 템플릿은 Omada 컨트롤러로 작업하는 외부 웹 포털을 개발하기위한 간단한 데모입니다.
웹 포털 측에서 HTTPS를 사용하고 omada 컨트롤러 측에서 HTTP를 사용하는 경우, AJAX 액세스는 access will cause cross domain access problems of CORS의 교차 도메인 액세스 문제를 발생시키고 브루아저에서 가로채기 때문에 Omada 컨트롤러 5.3.1부터 HTML 양식을 제출 api를 제공합니다: target_controller_ip:targetport/portal/radius/browserauth , 이는 백엔드에서 페이지 점프를 실현합니다.
아래 html 템플릿은 HTML 형식을 사용하는 다른 데모입니다:
참고:
1. 컨트롤러 (4.1.5 이상)가 컨트롤러 3. x.x에서 업그레이드된 경우, 매개변수의 일부 "이름"이 변경된 점을 유의하세요.
이름(V3.x) |
이름(V4.x) |
유형 |
참고 |
clientMac |
clientMac |
string |
클라이언트 MAC 주소 |
clientIp |
clientIp |
string |
클라이언트 IP 주소 |
ap |
apMac |
string |
AP MAC 주소(ap 전용) |
|
gatewayMac |
string |
게이트웨이 MAC 주소 (유선 auth 전용) |
|
vid |
integer |
vid (유선 auth 전용) |
ssid |
ssidName |
string |
ssid 이름 |
radioId |
radioId |
integer |
0: 2.4GHz, 1: 5GHz(ap 전용) |
/ |
authType |
integer |
실제 인증 유형은 외부 RADIUS 및 Hotspot RADIUS 인증 방법만 지원합니다. 2: 외부 RADIUS; 8: Hotspot RADIUS |
redirectUrl |
originUrl |
string |
redirectUrl |
username | username |
string |
인증 사용자이름 |
password | password |
string |
인증 비밀번호 |
apMac 및 gatewayMac은 동일한 요청에 존재할 수 없습니다. 유선 클라이언트가 인증할 때 apMac을 비워두세요.
2. 7단계에서 양식에 ASCII가 아닌 문자가 있는 경우 (SSID 이름이 중국어 또는 기타 언어인 경우), HTTP/HTTPS POST를 컨트롤러로 전송할 때 UTF-8 인코딩을 사용해야 합니다.
3. ajax 액세스를 선택하는 경우 컨트롤러 5.0 이상에 대한 “Access-Control-Allow-Origin:URL” 필드를 확인하세요.
4. HTML 양식 데모 및 radius/browserauth api 사용을 권장합니다.
부록: auth 및 browserauth의 API 문서
기본 정보
경로: /portal/radius/auth
방법: POST
요청 매개변수
헤더
매개변수 |
값 |
요청 |
Content-Type |
application/json |
가능 |
쿼리
매개변수 |
요청 |
설명 |
key |
가능 |
RSA 공개 키로 암호화된 AES 키, RSA/ECB/PKCS1Padding. 처음 16 bytes는 key이며, 마지막 16 bytes는 IV입니다. |
바디
매개변수 |
유형 |
요청 |
설명 |
clientMac |
string |
가능 |
client MAC 주소 |
clientIP |
String |
|
Client IP 주소 |
apMac |
string |
가능 |
AP MAC 주소 |
gatewayMac |
string |
가능 |
gateway MAC 주소 |
ssidName |
string |
가능 |
SSID 이름 |
vid |
integer |
가능 |
VLAN ID |
radioId |
integer |
가능 |
0: 2.4GHz 1: 5GHz |
authType |
integer |
가능 |
이 항목은 실시간 인증 유형입니다. 외부 RADIUS 8: Hotspot RADIUS만 지원됩니다. |
originUrl |
string |
|
Redirect URL |
username |
string |
가능 |
인증 사용자 이름 |
password |
string |
가능 |
인증 비밀번호 |
응답 매개변수
매개변수 |
유형 |
요청 |
설명 |
errorCode |
integer |
가능 |
오류 코드 |
기본 정보
경로: /portal/radius/browserauth
방법: POST
요청 매개변수
헤더
매개변수 |
값 |
요청 |
Content-Type |
application/x-www-form-urlencoded |
가능 |
경로 매개변수
매개변수 |
유형 |
요청 |
설명 |
clientMac |
string |
가능 |
client MAC 주소 |
clientIP |
String |
|
Client IP 주소 |
apMac |
string |
가능 |
AP MAC 주소 |
gatewayMac |
string |
가능 |
gateway MAC 주소 |
ssidName |
string |
가능 |
SSID 이름 |
vid |
integer |
가능 |
VLAN ID |
radioId |
integer |
가능 |
0: 2.4GHz 1: 5GHz |
authType |
integer |
가능 | 이 항목은 실시간 인증 유형입니다. 외부 RADIUS 8: Hotspot RADIUS만 지원됩니다. |
originUrl |
string |
|
Redirect URL |
username |
string |
가능 | 인증 사용자 이름 |
password |
string |
가능 |
인증 비밀번호 |
응답 매개변수
매개변수 |
유형 |
요청 |
설명 |
errorCode |
integer |
가능 |
에러 코드 |
해당 FAQ가 유용했나요?
여러분의 의견은 사이트 개선을 위해 소중하게 사용됩니다.