시놀로지 API 로그인 방법

IOVEIT·2023년 9월 19일
0

파이썬으로 시놀로지 NAS 파일에 접근하려면 먼저 GET으로 인증을 받아야 한다. 버전에 따라 사용법이 다르지만 최근 버전에 맞도록 작성해 보았다.

import requests
import json

api_url = "https://your.synology.me:port/webapi/entry.cgi"
username = "시놀로지 사용자 아이디"
password = "비밀번호"
parameters = { 
    'api': 'SYNO.API.Auth',
    'version': 6,
    'method': 'login',
    'account': username,
    'passwd': password,
    'session': 'FileStation',
    'format': 'cookie',
    'otp_code': '564567'
}

response = requests.get(url=api_url, params = parameters)
print(json.loads(response.content))

시놀로지 DSM에 로그인할 때 이중 인증을 설정했다면 otp_code(Secure Signin에 나오는 코드)를 꼭 입력해야한다. 파라미터를 정상적으로 입력하여 GET으로 요청하면 결과값은 다음과 같다.

{
	'data': {
		'did': '9qA',
		'is_portal_port': False,
		'sid': 'rsM'
	},
	'success': True
}

이 결과값이 토큰이며, 이에 기반해 api 사용한다. 각 값에 대한 메뉴얼 상 설명이다.

1. sid : Authorized session ID.

When the user log in with format=sid, cookie will not be set and each API request should provide a request parameter _sid= along with other parameters.

인증된 세션 아이디. 사용자가 format=sid로 로그인하면, 쿠키는 셋팅되지 않을 거다. API 요청에는 _sid=가 다른 파라미터들과 함께 전달되어야 한다.

2. did : A.k.a. device id, to identify which device.

장치를 구분하기 위한 장치 아이디. uuid과 다른거임?

3. is_portal_port : irrelevant 관계 없음 (뭐가 관계 없어?)

|참고|

https://global.download.synology.com/download/Document/Software/DeveloperGuide/Os/DSM/All/enu/DSM_Login_Web_API_Guide_enu.pdf

profile
EnCoCookLand

0개의 댓글