본문 바로가기

Microsoft Family Safety 자녀 보호와 디지털 균형관리 (자녀계정 로그인 시간 제한)

Windows에서 자녀 계정의 로그인 시간을 제한하려면 Microsoft Family Safety 기능을 활용할 수 있습니다. 이 기능을 사용하면 특정 시간대에만 자녀 계정으로 Windows에 로그인할 수 있도록 제한할 수 있습니다.

1. Microsoft Family Safety 설정 페이지로 이동

  1. Microsoft 계정에 로그인합니다. Microsoft Family Safety 웹사이트에 접속합니다.
  2. 가족 구성원 관리 페이지에서 자녀 계정을 선택합니다.

2. 자녀 계정의 화면 시간 설정

  1. 자녀 계정 선택 후, '화면 시간(Screen time)' 옵션을 클릭합니다.
  2. 여기에서 Windows 10/11 장치를 선택하여 하루 동안 로그인할 수 있는 시간을 설정할 수 있습니다.
  3. 특정 요일 및 시간대에 대해 허용 시간을 설정할 수 있으며, 원하는 경우 “PC 사용 불가 시간”을 설정해 특정 시간 동안 로그인을 제한할 수 있습니다.

3. 추가 제한 설정

  1. 필요에 따라 앱 및 게임 사용 시간을 설정하여 특정 앱이나 게임의 사용 시간도 제한할 수 있습니다.
  2. 자녀 계정의 활동 보고서를 확인하면서 설정을 조정할 수 있습니다.

4. 자녀 계정에서 확인

  1. 설정이 완료되면 자녀 계정에서 로그아웃한 후, 설정된 시간대에 다시 로그인해봅니다. 제한 시간이 넘어가면 로그인이 제한되거나 자동으로 로그아웃될 것입니다.

이렇게 설정하면 자녀가 정해진 시간 외에는 Windows에 로그인을 할 수 없게 되어, 보다 안전하게 자녀의 컴퓨터 사용을 관리할 수 있습니다.

 

Microsoft Family Safety 앱을 통해 Android 장치에서 자녀의 사용 시간을 제한하는 방법입니다. 이 방법을 사용하면 자녀의 Android 장치에서 특정 시간대나 앱에 대한 사용 제한을 설정할 수 있습니다.

1. Microsoft Family Safety 앱 설치 및 설정

  1. Microsoft Family Safety 앱을 Google Play 스토어에서 다운로드하고 설치합니다.
  2. Microsoft 계정으로 로그인합니다. 아직 계정이 없으면 새 계정을 만듭니다.
  3. 자녀 계정을 가족 그룹에 추가합니다. 이때 자녀의 Microsoft 계정이 필요합니다.

2. 자녀의 Android 장치 추가

  1. 자녀의 Android 장치에서 Microsoft Family Safety 앱을 다운로드하고 설치합니다.
  2. 자녀가 자신의 Microsoft 계정으로 앱에 로그인하게 합니다.
  3. 자녀의 장치가 Family Safety 앱에 등록됩니다.

3. 화면 시간 제한 설정

  1. 부모의 Family Safety 앱에서 자녀 계정을 선택합니다.
  2. '화면 시간(Screen time)' 메뉴로 이동합니다.
  3. Android 장치를 선택합니다.
  4. 원하는 시간대에 대해 장치의 사용 시간을 설정합니다. 일별로 다른 시간대를 설정할 수 있으며, 일일 사용 시간도 설정할 수 있습니다.

4. 앱 사용 제한 설정

  1. 자녀의 계정을 선택한 후, '콘텐츠 필터(Content filters)' 메뉴로 이동합니다.
  2. '앱 및 게임 제한(App and game limits)' 옵션을 선택합니다.
  3. 자녀가 사용할 수 있는 앱의 목록을 보고, 개별 앱에 대해 사용 시간을 제한하거나 차단할 수 있습니다.

5. 자녀의 활동 모니터링

  1. 활동 보고서(Activity Reporting) 기능을 활성화하면 자녀의 앱 사용 및 브라우징 활동을 모니터링할 수 있습니다.
  2. 이를 통해 자녀의 사용 패턴을 확인하고, 필요에 따라 제한 설정을 조정할 수 있습니다.

6. 기타 제한 설정

  • 콘텐츠 필터링: 웹사이트나 검색 엔진에서 부적절한 콘텐츠에 접근하지 못하도록 설정할 수 있습니다.
  • 위치 추적: 자녀의 위치를 실시간으로 확인할 수 있으며, 특정 장소에 도착하거나 떠날 때 알림을 받을 수 있습니다.

참고 사항

  • 이 기능을 사용하려면 자녀의 Android 장치에 Microsoft Family Safety 앱이 설치되어 있어야 하며, 자녀가 자신의 Microsoft 계정으로 로그인해야 합니다.
  • 제한 설정 후, 자녀는 설정된 시간이나 앱 사용 제한에 따라 Android 장치 사용이 제한됩니다.

Microsoft Family Safety에서 제공하는 자녀 사용 내역을 자동으로 수집하여 Telegram으로 알림을 받을 수 있는 방법입니다. Microsoft에서 직접 제공하는 API를 사용할 수 있다면 최선이지만, 현재는 Microsoft Family Safety에서 사용 내역과 관련된 오픈 API가 제한적입니다. 이에 따라 크롤링 또는 자동화 툴을 사용할 수 있는 방식입니다.

방법 1: Microsoft Graph API 사용 (가능한 경우)

Microsoft Family Safety가 Microsoft의 Graph API를 통해 사용 내역을 제공할 경우 이를 활용할 수 있습니다. 현재 공식적으로 제공하는 기능이 제한적일 수 있지만, 자녀의 활동 내역이 Microsoft 계정에 연동되어 있다면 Graph API를 사용해 일정 정보를 가져오는 것이 가능합니다.

1. Microsoft Graph API 설정

  1. Azure 포털에서 Microsoft 계정으로 로그인합니다.
  2. Azure Active Directory에서 새 애플리케이션을 등록하고, Microsoft Graph API 권한을 부여합니다.
    • 자녀의 활동 정보와 관련된 권한(예: User.Read, Activity.Read)을 부여해야 합니다.
  3. Client IDSecret을 생성하고, API에 접근할 수 있는 토큰을 받기 위한 OAuth2 인증을 설정합니다.

2. Python 스크립트를 사용해 API 호출

import requests

def get_access_token():
    url = "https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token"
    payload = {
        'grant_type': 'client_credentials',
        'client_id': 'your_client_id',
        'client_secret': 'your_client_secret',
        'scope': 'https://graph.microsoft.com/.default'
    }
    response = requests.post(url, data=payload)
    return response.json().get("access_token")

def get_family_activity(access_token):
    headers = {"Authorization": f"Bearer {access_token}"}
    url = "https://graph.microsoft.com/v1.0/me/activities"  # 활동 API 예시
    response = requests.get(url, headers=headers)
    return response.json()

access_token = get_access_token()
activity_data = get_family_activity(access_token)
print(activity_data)

3. Telegram 알림 발송

Telegram 봇을 이용해 데이터를 전송할 수 있습니다.

  1. Telegram에서 BotFather와 대화하여 새 봇을 만들고, 봇의 Token을 받습니다.
  2. Python을 사용해 requests 라이브러리로 Telegram 메시지를 전송합니다.
def send_telegram_message(chat_id, message):
    token = 'your_telegram_bot_token'
    url = f"https://api.telegram.org/bot{token}/sendMessage"
    data = {'chat_id': chat_id, 'text': message}
    response = requests.post(url, data=data)
    return response.json()

chat_id = "your_chat_id"
message = f"자녀 사용 내역: {activity_data}"
send_telegram_message(chat_id, message)

4. 스크립트 자동화

  • Python 스크립트를 cron 작업으로 설정하여 주기적으로 데이터를 수집하고, Telegram으로 알림을 전송하도록 설정합니다.

방법 2: 크롤링을 통한 자녀 사용 내역 수집

Microsoft Family Safety API 접근이 불가능할 경우, 웹 크롤링을 통해 자녀의 사용 내역을 수집할 수 있습니다. Family Safety 웹사이트에 로그인하여 크롤러가 활동 내역을 스크랩한 뒤, Telegram으로 알림을 보내는 방식입니다.

1. 웹 크롤러 설정 (예: Selenium)

  1. Selenium을 사용해 Microsoft Family Safety 웹페이지에 로그인합니다.
  2. 자녀의 활동 내역이 포함된 페이지를 크롤링하여 필요한 데이터를 추출합니다.
from selenium import webdriver
from selenium.webdriver.common.by import By

# Chrome 드라이버 설정
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')

# Family Safety 로그인 페이지 접속
driver.get("https://account.microsoft.com/family/")

# 로그인 후 활동 페이지로 이동하여 데이터 추출
# 로그인 자동화 및 활동 정보 수집
activity_elements = driver.find_elements(By.CLASS_NAME, "activity_class_name")
for activity in activity_elements:
    print(activity.text)

driver.quit()

2. 추출한 데이터를 Telegram으로 전송

크롤링을 통해 추출한 데이터를 Python을 이용해 Telegram 메시지로 전송할 수 있습니다.

방법 3: IFTTT를 통한 간단한 자동화

IFTTT(If This Then That) 서비스를 사용하여 Family Safety의 자녀 사용 내역과 관련된 알림을 받을 수 있습니다. Microsoft 계정과 Telegram을 IFTTT와 연동하여 자녀가 로그인하거나 사용한 시간에 대한 알림을 자동으로 받을 수 있습니다.

IFTTT 설정

  1. IFTTT 웹사이트에 접속하여 계정을 만듭니다.
  2. Microsoft Family SafetyTelegram을 IFTTT와 연결합니다.
  3. 자녀가 특정 시간에 로그인하거나 특정 활동을 할 때 Telegram으로 알림이 오도록 Applet을 만듭니다.
  • API 사용 가능 시: Microsoft Graph API를 통해 자녀 사용 내역을 수집하고, Telegram으로 알림을 받는 방법이 가장 효율적입니다.
  • API 접근 불가 시: 크롤링을 사용해 웹에서 데이터를 수집한 후 Telegram으로 알림을 설정할 수 있습니다.
  • 간단한 설정: IFTTT와 같은 자동화 서비스를 사용하여 간단하게 Telegram 알림을 받을 수 있습니다.

 

원하는 방법을 선택해 자녀의 활동 내역을 실시간으로 관리하고 알림을 받을 수 있습니다. 자녀의 사용 정보를 수집하여 Google Sheets에 기록하는 방법은 API나 크롤링을 통해 자녀의 사용 정보를 수집하고, 이를 Google Sheets API를 사용해 기록하는 방식으로 구현할 수 있습니다. 아래는 Microsoft Family Safety와 Google Sheets 연동을 위한 방법입니다.

1. Microsoft Family Safety 정보 수집

자녀의 사용 정보를 수집하는 방법을 정해야 합니다. Microsoft Graph API를 사용하거나 크롤링을 통해 수집할 수 있습니다.

A. Microsoft Graph API 사용

Microsoft Graph API를 사용하여 자녀의 활동 데이터를 수집하는 방법입니다. Microsoft 계정과 연동된 자녀의 활동 데이터를 Graph API로 가져올 수 있습니다.

import requests

def get_access_token():
    url = "https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token"
    payload = {
        'grant_type': 'client_credentials',
        'client_id': 'your_client_id',
        'client_secret': 'your_client_secret',
        'scope': 'https://graph.microsoft.com/.default'
    }
    response = requests.post(url, data=payload)
    return response.json().get("access_token")

def get_family_activity(access_token):
    headers = {"Authorization": f"Bearer {access_token}"}
    url = "https://graph.microsoft.com/v1.0/me/activities"  # 사용 내역 API 예시
    response = requests.get(url, headers=headers)
    return response.json()

access_token = get_access_token()
activity_data = get_family_activity(access_token)
print(activity_data)

B. 크롤링을 통한 데이터 수집

Selenium을 사용하여 자녀의 사용 내역을 크롤링할 수도 있습니다. 하지만, 이 방법은 API가 제공되지 않을 때 보완적인 방법이며 유지보수 측면에서 복잡할 수 있습니다.

2. Google Sheets API 설정

이제 수집한 데이터를 Google Sheets에 기록하기 위한 Google Sheets API 설정을 진행하겠습니다.

A. Google Sheets API 활성화

  1. Google Cloud Console에 접속하여 새 프로젝트를 만듭니다.
  2. Google Sheets API를 활성화합니다.
  3. OAuth 2.0 자격 증명을 생성하고, JSON 형식으로 다운로드합니다. 이를 스크립트에서 사용할 것입니다.

B. Google Sheets API Python 코드

Python을 사용하여 Google Sheets에 데이터를 기록할 수 있습니다. 먼저, 필요한 라이브러리를 설치합니다.

pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib

다음은 Google Sheets에 데이터를 기록하는 코드입니다.

import os
import json
import requests
from google.oauth2.service_account import Credentials
from googleapiclient.discovery import build

# Google Sheets API 설정
SCOPES = ['https://www.googleapis.com/auth/spreadsheets']
SERVICE_ACCOUNT_FILE = 'path_to_service_account.json'  # OAuth 인증 정보 파일 경로

credentials = Credentials.from_service_account_file(
        SERVICE_ACCOUNT_FILE, scopes=SCOPES)

# Google Sheets API 서비스 초기화
service = build('sheets', 'v4', credentials=credentials)

# Google Sheets ID
SPREADSHEET_ID = 'your_spreadsheet_id'
RANGE_NAME = 'Sheet1!A1'  # 데이터를 기록할 셀 범위

def update_google_sheets(data):
    body = {
        'values': data
    }
    result = service.spreadsheets().values().update(
        spreadsheetId=SPREADSHEET_ID, range=RANGE_NAME,
        valueInputOption='RAW', body=body).execute()
    print(f"{result.get('updatedCells')} cells updated.")

# 수집한 자녀 사용 내역을 Google Sheets에 기록하는 함수
def log_activity_to_sheets(activity_data):
    data_to_write = []

    for activity in activity_data['value']:  # 예시: 활동 데이터에서 필요한 정보만 추출
        record = [
            activity.get('id'),
            activity.get('activityType'),
            activity.get('startDateTime'),
            activity.get('endDateTime'),
            activity.get('status')
        ]
        data_to_write.append(record)

    update_google_sheets(data_to_write)

# 예시: 수집한 자녀 사용 내역
example_data = [
    ['2024-10-01', '웹 브라우징', '15:00', '16:00', '완료'],
    ['2024-10-01', '게임', '16:30', '17:00', '완료']
]

log_activity_to_sheets(example_data)

C. Google Sheets에 기록할 데이터 형식

data_to_write 리스트는 2차원 배열 형태로 만들어야 하며, 각각의 활동 내역을 한 줄씩 기록합니다. 예시 데이터는 [['날짜', '활동 종류', '시작 시간', '종료 시간', '상태']]와 같은 형식으로 기록됩니다.

3. 스크립트 자동화

  • 크론 작업을 사용하여 주기적으로 스크립트를 실행해 자녀의 활동 내역을 수집하고 Google Sheets에 기록할 수 있습니다.
  • Linux 또는 Windows에서 스케줄링 작업을 설정해 매일 혹은 매주 데이터가 자동으로 기록되도록 할 수 있습니다.

예시로, Linux에서의 cron 작업

crontab -e
0 21 * * * /usr/bin/python3 /path_to_your_script/family_activity_to_sheets.py

이 스케줄은 매일 오후 9시에 스크립트를 실행하게 설정합니다.

 

  1. Microsoft Graph API를 사용해 자녀의 활동 데이터를 수집하거나, 크롤링을 통해 데이터를 가져옵니다.
  2. Google Sheets API를 사용하여 데이터를 구글 스프레드시트에 기록합니다.
  3. 자동화 스크립트를 설정하여 주기적으로 데이터를 수집하고 기록하는 프로세스를 완성합니다.

이 방식을 통해 자녀의 사용 내역을 실시간으로 관리하고 Google Sheets에 체계적으로 기록할 수 있습니다. n8n을 사용하여 자녀의 사용 정보를 손쉽게 수집하고 Google 시트에 기록하는 방법입니다. n8n은 워크플로 자동화 도구로, 다양한 서비스와 API를 연결하여 자동화된 작업을 만들 수 있습니다.

1. Microsoft Graph API 설정

Microsoft Family Safety의 사용 정보를 가져오기 위해 Microsoft Graph API를 사용합니다.

A. Azure 애플리케이션 등록

  1. Azure 포털에 접속하여 Microsoft 계정으로 로그인합니다.
  2. Azure Active Directory > 앱 등록으로 이동합니다.
  3. 새 등록을 클릭하고 애플리케이션 이름을 입력한 후 등록합니다.
  4. 클라이언트 ID테넌트 ID를 기록해둡니다.
  5. 인증서 및 비밀 메뉴에서 새 클라이언트 비밀을 생성하고 값을 기록해둡니다.

B. API 권한 부여

  1. API 권한 메뉴에서 권한 추가를 클릭합니다.
  2. Microsoft Graph를 선택하고 애플리케이션 권한을 선택합니다.
  3. 필요한 권한을 선택합니다. 예를 들어, User.Read.All, Activities.Read 등 자녀의 활동 정보를 읽을 수 있는 권한을 추가합니다.
  4. 관리자 동의 부여를 클릭하여 권한을 승인합니다.

2. Google Sheets API 설정

Google Sheets API를 사용하여 스프레드시트에 데이터를 기록합니다.

A. Google Cloud Platform 프로젝트 생성

  1. Google Cloud Console에 접속하여 프로젝트를 생성합니다.
  2. APIs & Services > Library에서 Google Sheets API를 검색하고 활성화합니다.

B. 서비스 계정 생성 및 키 다운로드

  1. APIs & Services > Credentials에서 Create Credentials > Service Account를 선택합니다.
  2. 서비스 계정을 생성하고 역할프로젝트 > 편집자로 설정합니다.
  3. 생성된 서비스 계정에서 탭으로 이동하여 키 추가 > 새 키 만들기를 선택하고 JSON 형식으로 키를 다운로드합니다.
  4. 이 JSON 파일은 n8n에서 Google Sheets 노드에 인증 정보로 사용됩니다.

C. 스프레드시트 공유 설정

  • 생성된 서비스 계정의 이메일 주소를 복사하여, 데이터를 기록할 Google 시트에 편집자 권한으로 공유합니다.

4. n8n 워크플로 생성

이제 n8n에서 워크플로를 만들어 자녀의 사용 정보를 가져와 Google 시트에 기록합니다.

A. HTTP Request 노드 설정 (Microsoft Graph API 호출)

  1. HTTP Request 노드를 추가합니다.
  2. Authentication: OAuth2를 선택합니다.
  3. OAuth2 Credential을 생성합니다.

OAuth2 Credential 설정

  • Credential Name: 적절한 이름 지정
  • Grant Type: Client Credentials
  • Access Token URL: https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token
    • {tenant_id}를 Azure에서 받은 테넌트 ID로 대체합니다.
  • Client ID: Azure에서 받은 클라이언트 ID
  • Client Secret: Azure에서 생성한 클라이언트 비밀
  • Scope: https://graph.microsoft.com/.default
  1. HTTP Method: GET
  2. URL: https://graph.microsoft.com/v1.0/users/{user_id}/activities
    • {user_id}를 자녀의 Microsoft 계정 ID로 대체합니다.
  3. 필요한 경우 추가 Query ParametersHeaders를 설정합니다.

B. 데이터 변환 노드 (예: Function 노드)

  • Function 노드를 추가하여 HTTP Request 노드의 출력을 가공합니다.
  • 자녀의 사용 정보 중 필요한 필드를 추출하여 Google 시트에 맞는 형식으로 변환합니다.
// 예시 코드
return items.map(item => {
  const activity = item.json;
  return {
    json: {
      date: activity.startDateTime,
      activityType: activity.activityType,
      duration: activity.duration,
      status: activity.status
    }
  }
});

C. Google Sheets 노드 설정

  1. Google Sheets 노드를 추가합니다.
  2. Credentials: 이전에 생성한 서비스 계정 JSON 파일을 사용하여 새로운 자격 증명을 만듭니다.
    • Service Account EmailPrivate Key를 입력합니다.
  3. Drive: Google Drive 선택
  4. Spreadsheet ID: 데이터를 기록할 스프레드시트의 ID를 입력합니다.
    • 스프레드시트 URL 중 /d//edit 사이의 부분이 ID입니다.
  5. Sheet Name: 데이터를 기록할 시트 이름을 입력합니다.
  6. Action: Append 선택
  7. Data to Send: JSON 선택
  8. Columns: 앞서 Function 노드에서 설정한 필드 이름을 입력합니다.
    • 예: date, activityType, duration, status

D. 노드 연결

  • HTTP Request 노드 → Function 노드 → Google Sheets 노드로 연결합니다.

E. 워크플로 테스트

  • 상단의 Execute Workflow 버튼을 클릭하여 워크플로를 실행하고 데이터가 올바르게 Google 시트에 기록되는지 확인합니다.

5. 자동화 및 스케줄링

A. Cron 노드 추가

  1. Cron 노드를 워크플로의 시작 지점에 추가합니다.
  2. Execution Times를 설정하여 워크플로가 주기적으로 실행되도록 합니다.
    • 예: 매일 밤 12시에 실행하려면 0 0 * * *

B. 워크플로 활성화

  • 상단의 Activate Workflow 버튼을 클릭하여 워크플로를 활성화합니다.

추가 고려사항

  • 에러 처리: 워크플로 실행 중 오류가 발생할 경우를 대비하여 에러 핸들링을 설정할 수 있습니다.
  • 알림 설정: 필요한 경우, Telegram 노드를 추가하여 워크플로 실행 결과나 오류를 Telegram으로 알림 받을 수 있습니다.
  • 보안: API 키나 인증 정보는 안전하게 관리해야 합니다. n8n의 Credentials 기능을 사용하여 보안을 유지합니다.

참고 자료

 

n8n을 활용하여 자녀의 사용 정보를 자동으로 수집하고 Google 시트에 기록하는 워크플로를 구성할 수 있습니다. 이 방법을 통해 복잡한 코딩 없이도 손쉽게 자동화를 구현할 수 있으며, 필요한 경우 워크플로를 확장하여 추가적인 기능을 구현할 수 있습니다.

728x90

댓글