메인 컨텐츠로 건너뛰기

개요

Adguard DNS는 앱을 통합하는데 사용할 수 있는 REST API를 제공합니다.

인증

Access token 생성

주어진 파라미터를 사용하여 다음 URL에 대한 POST 요청을 보내 access_token을 생성합니다.

https://api.adguard-dns.io/oapi/v1/oauth_token

매개변수설명
사용자 이름계정 이메일
비밀번호계정 비밀번호
mfa_token이중 인증 토큰 (계정 설정에서 활성화된 경우)

응답으로 access_tokenrefresh_token을 모두 받게 됩니다.

  • access_token은 지정된 몇 초 후에 만료됩니다(응답의 응답의 expires_in 매개변수로 표시됨). 새로 access_token을 사용하여 새 refresh_token을 다시 생성할 수 있습니다. (참고: 새로 고침 토큰을 통한 액세스 토큰 생성)

  • refresh_token은 영구적으로 유지됩니다. 새로 고침 토큰을 해지하려면 다음을 참조하세요: 새로 고침 토큰 해지하기

요청 예시

$ curl 'https://api.adguard-dns.io/oapi/v1/oauth_token' -i -X POST \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'username=user%40adguard.com' \
-d 'password=********' \
-d 'mfa_token=727810'

응답 예시

{
"access_token": "jTFho_aymtN20pZR5RRSQAzd81I",
"token_type": "bearer",
"refresh_token": "H3SW6YFJ-tOPe0FQCM1Jd6VnMiA",
"expires_in": 2620978
}

Refresh token에서 Access Token 생성

Access token은 제한된 유효 기간을 가지고 있습니다. 이것이 만료되면 앱은 refresh token 을 사용하여 새로운 access token를 요청해야 합니다.

새 액세스 토큰을 받으려면 주어진 파라미터를 사용하여 다음 POST 요청을 합니다:

https://api.adguard-dns.io/oapi/v1/oauth_token

매개변수설명
refresh_tokenREFRESH TOKEN 사용하여 새 액세스 토큰을 생성해야 합니다.

요청 예시

$ curl 'https://api.adguard-dns.io/oapi/v1/oauth_token' -i -X POST \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'refresh_token=H3SW6YFJ-tOPe0FQCM1Jd6VnMiA'

응답 예시

{
"access_token": "xQnT7GYT6Ag--3oY_EcOOdXe-I0",
"token_type": "bearer",
"refresh_token": "H3SW6YFJ-tOPe0FQCM1Jd6VnMiA",
"expires_in": 2627999
}

새로 고침 토큰 취소

새로 고침 토큰을 취소하려면 주어진 파라미터를 사용하여 다음 POST 요청을 합니다:

https://api.adguard-dns.io/oapi/v1/revoke_token

요청 예시

$ curl 'https://api.adguard-dns.io/oapi/v1/revoke_token' -i -X POST \
-d 'token=H3SW6YFJ-tOPe0FQCM1Jd6VnMiA'
매개변수설명
refresh_tokenREFRESH TOKEN을 취소합니다.

인증 엔드포인트

이 엔드포인트에 액세스하려면 devteam@adguard.com으로 문의하세요. 이 엔드포인트의 이유와 사용 사례를 설명하고 리디렉션 URI를 제공하세요. 승인되면 고유한 클라이언트 식별자를 받게 되며, 이 식별자를 client_id 매개변수에 사용해야 합니다.

oapi/v1/oauth_authorize 엔드포인트는 리소스 소유자와 상호 작용하고 보호된 리소스에 액세스할 수 있는 권한을 얻는 데 사용됩니다.

이 서비스는 사용자를 AdGuard로 리디렉션하여 인증(아직 로그인하지 않은 경우)한 다음 애플리케이션으로 다시 리디렉션합니다.

oapi/v1/oauth_authorize 엔드포인트의 요청 매개변수는 다음과 같습니다:

매개변수설명
response_type인증 서버에 실행할 권한 부여를 알려줍니다.
client_id권한 부여를 요청하는 OAuth 클라이언트의 ID입니다.
redirect_uriURL을 포함합니다. 이 엔드포인트에서 응답이 성공하면 이 URL로 리디렉션됩니다.
상태보안 목적으로 사용되는 불투명 값입니다. 이 요청 매개변수가 요청에 설정되어 있으면 redirect_uri의 일부로 애플리케이션에 반환됩니다.
aid제휴사 식별자

예를 들어:

https://api.adguard-dns.io/oapi/v1/oauth_authorize?response_type=token&client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&state=1jbmuc0m9WTr1T6dOO82

인증 서버에 사용할 권한 부여 유형을 알리기 위해 response_type 매개 변수는 다음과 같이 사용됩니다.

  • 암시적 권한 부여의 경우 response_type=token을 사용하여 액세스 토큰을 포함합니다.

성공적인 응답은 302 Found이며, 요청 매개변수인 redirect_uri로 리디렉션을 트리거합니다. 응답 매개변수는 Location 헤더에 있는 redirect_uri 매개변수의 조각 구성 요소(# 뒤 부분)에 포함되어 있습니다.

예를 들어:

HTTP/1.1 302 Found
Location: REDIRECT_URI#access_token=...&token_type=Bearer&expires_in=3600&state=1jbmuc0m9WTr1T6dOO82

API 접근하기

액세스 토큰과 새로 고침 토큰이 생성되면 헤더에 액세스 토큰을 전달하여 API 호출을 수행할 수 있습니다.

  • 헤더 이름은 Authorization 부여여야 합니다.
  • 헤더 값은 Bearer {access_token}이어야 합니다.

API

참조

이 링크를 클릭하면 API 메소드 가이드를 확인할 수 있습니다.

OpenAPI 사양

OpenAPI 사양은 https://api.adguard-dns.io/static/swagger/openapi.json에서 확인할 수 있습니다.

다양한 도구를 사용하여 사용 가능한 API 메서드 목록을 볼 수 있습니다. 예를 들어, https://editor.swagger.io/에서 이 파일을 열 수 있습니다.

변경 로그

전체 AdGuard DNS API 변경 로그는 이 페이지에서 확인할 수 있습니다.

피드백

이 API를 새로운 방법으로 확장하고 싶다면 devteam@adguard.com 으로 이메일을 보내 추가하고 싶은 내용을 알려주세요.