Sophos Endpoint [LAB 07] Tính năng Device Migration bằng API

HanaLink

Junior – IT Sơ cấp
Mar 11, 2022
137
15
18
25
Ho Chi Minh City
Trong bài viết này mình sẽ hướng dẫn cách sử dụng tính năng Device Migration API của Sophos.
1719834634988.png



Device Migration API - như cái tên của tính năng này, thì nó sẽ cho phép di chuyển hàng loạt các thiết bị từ một tenant sang tenant khác (Sophos Account Central), tính năng này áp dụng được cho cả máy tính và máy chủ chạy hệ điều hành Windows và Mac.
Lưu ý: Là trong quá trình Migrate, thì các Device phải online và được update thành công.

1. Chuẩn bị


Bước 1: Truy cập Tenant nguồn, vào phần My Products > General Settings:
1719837949344.png


Bước 2: Chọn API Credentials Management:
1719837984250.png


Bước 3: Chọn Add Credential:
1719838292791.png


Bước 4: Cấu hình thông tin xác thực API:
  • Credential name: Đặt tên bất kì cho API
  • Role: Chọn quyền cho tài khoản xác thực API, đối với tính năng Migration này cần cung cấp quyền Super Admin:
1719838479167.png


Bước 5: Sau khi khởi tạo thông tin xác thực API thành công, copy và lưu lại thông tin Client IDClient Secret:
1719838752481.png

Lưu ý: Thông tin Client Secret chỉ hiển thị 1 lần, vì vậy hãy đảm bảo đã copy đầy đủ trước khi refresh hoặc đóng trang thông tin.

Bước 6: Tiếp theo tiến hành bật tính năng Device Migration. Vào phần General Settings > General > Device Migration:
1719838986636.png


Bước 7: Tiến hành chọn Allow device migration và tùy chọn thời gian mà tính năng này được sử dụng, sau đó chọn Save để lưu cấu hình:
1719839746345.png


Bước 8: Thực hiện tương tự cho Tenant đích, lưu thông tin Cliend ID và Secret và bật tính năng Device Migration.


2. Thiết lập xác thực


Để tạo xác thực cho quá trình Migrate giữa 2 Sophos Account, chúng ta cần sử dụng đến cURL hoặc Postman để thao tác API.

CURL
Bước 1:
Sử dụng cURL, bật trình Command Line là dùng lệnh sau để xác thực thông tin Client ID của tài khoản Sophos Central, kiểm tra kết quả trả về là "success":
Code:
curl -XPOST -H "Content-Type:application/x-www-form-urlencoded" -d "grant_type=client_credentials&client_id=<client-id>&client_secret=<client-secret>&scope=token" https://id.sophos.com/api/v2/oauth2/token
Trong đó, hãy điền thông tin <client-id><client-secret> đã được tạo ở bước trên của Tenant nguồn.
1719890293902.png

Copy và lưu lại thông tin Token được trả về. Lưu ý Token này chỉ hiệu quả trong 1 tiếng kể từ khi được lấy, sử dụng cùng Client-ID và Secret trong trường hợp Token đã bị hết hạn.

Bước 2: Tiếp tục sử dụng lệnh sau để tìm thông tin ID của Tenant nguồn từ Token trên:
Code:
curl.exe -XGET -H "Authorization: Bearer <jwt>" https://api.central.sophos.com/whoami/v1
Trong đó, điền thông tin <jwt> bằng thông tin Token được get ra từ câu lệnh trên:
1719890772471.png

Copy thông tin IDdataRegion được xuất ra.

Bước 3: Dùng lệnh sau để xem được danh sách các Device được quản lý bởi Tenant nguồn:
Code:
curl.exe -XGET -H "Authorization: Bearer <jwt>" -H "X-Tenant-ID: <tenant-id>" <data-region>/endpoint/v1/endpoints
Trong đó, hãy điền thông tin <jwt> bằng thông tin Token và <tenant-id> bằng thông tin id đã được export ở trên, <data-region> chính là thông tin dataRegion.
1719890997125.png

Tiến hành thực hiện tương tự cho Tenant đích để lấy được các thông tin Client ID và Client-Secret của 2 Tenant.

POSTMANT
Bước 1:
Tến hành mở ứng dụng Postman, tạo 1 Workspace mới cho API Rest sau đó vào phần Variables:
1719891384350.png


Bước 2: Tiến hành tạo và nhập thông tin cho các biến ID và Secret của Tenant nguồn và đích sau đó chọn Save:
1719895098402.png


Bước 3: Tạo 1 Folder và đặt tên là Authentication cùng các Request tương ứng như sau:
1719894335606.png


Bước 4: Để xác thực thông tin API của Tenant nguồn, sử dụng Request "Source:Authentication", tiến hành chỉnh sửa các thông tin sau:
  • Method: chọn POST
  • URL: https://id.sophos.com/api/v2/oauth2/token
  • Mục Headers > Thêm Key "Content-Type" với Value là "application/x-www-form-urlencoded"
  • Mục Body > Chọn x-www-form-urlencoded> Thêm các key sau:
    • grant_type: client_credentials
    • client_id: {{SourceClientID}}
    • client_secret: {{SourceClientSecret}}
    • scope: token
1719894668764.png

1719894691212.png


Bước 5: Chọn Save và tiến hành Send để gửi Request; kết quả "Success" thì tiến hành Copy thông tin Token được trả về ở mục access_token:
1719894814144.png

Lưu Token vào biến SourceToken.

Bước 6:
Tiếp tục đến Request "Source:Who am i" để lấy thông tin ID tương ứng của Tenant nguồn, chỉnh sửa các thông tin sau:
1719895294647.png


Bước 7: Tiến hành SaveSend request, Copy và lưu thông tin ID cũng như dataRegion vào biến SourceTenantID và SourceRegion:
1719895639675.png


Bước 8: Thực hiện tương tự cho Tenant đích:
1719895862832.png

1719895945903.png


Bước 9: Lưu tất cả thông tin vào biến của Session Migration:
1719896024123.png


Bước 10: Để lấy được thông tin danh sách các Device mà Tenant nguồn đang quản lý và chọn những Device muốn Migrate sử dụng Request "Source: Get List of Endpoint" và điền các thông tin sau:
  • Method: chọn GET
  • URL: {{SourceRegion}}/endpoint/v1/endpoints?fields=id,hostname
  • Mục Headers> Thêm các Key:
    • "Authorization" với Value là "Bearer {{SourceToken}}"
    • "X-Tenant-ID" với Value là "{{SourceTenantID}}"
1719896353213.png

Kiểm tra và Copy các ID của các Device sẽ được Migrate.

Bước 11: Để bắt đầu quá trình Migrate, sử dụng Request "Target: Start Receiver Task" cho Tenant đích để bật phiên nhận, điền các thông tin sau:
  • Method: chọn POST
  • URL: {{TargetRegion}}/endpoint/v1/migrations
  • Mục Headers> Thêm các Key sau:
    • "Authorization" với Value là "Bearer {{TargetToken}}"
    • "Content-Type" với Value là "application/json"
    • "X-Tenant-ID" với Value là "{{TargetTenantID}}"
  • Mục Body > Chọn raw và điền thông tin sau:
Code:
{
    "fromTenant":"<source-tenant-id>",
    "endpoints":
    [
        "<id-device-01>",
        "<id-device-02>",
        "<id-device-03>"
    ]
}
1719903780309.png

1719903822951.png


Chọn SaveSend, có thể thấy trạng thái là "receiving", lưu thông tin ID thành biến MigrateID và lưu Token nhận được:
1719903854898.png


Bước 12: Tương tự, cần bật phiên gửi cho Tenant nguồn. sử dụng Request "Source: Start Migration Job" và điền thông tin:
  • Method: chọn PUT
  • URL: {{SourceRegion}}/endpoint/v1/migrations/{{MigrationID}}
  • Mục Headers> Thêm các Key sau:
    • "Authorization" với Value là "Bearer {{SourceToken}}"
    • "Content-Type" với Value là "application/json"
    • "X-Tenant-ID" với Value là "{{SourceTenantID}}"
  • Mục Body > Chọn raw và điền thông tin sau:
Code:
{
    "token":"<migrate-token>",
    "endpoints":
    [
        "<id-device-01>",
        "<id-device-02>",
        "<id-device-03>"
    ]
}
1719904279705.png

1719904376946.png


Chọn Save Send, thông tin trả về cho thấy trạng thái của Tenant nguồn là "sending":
1719904536917.png


Bước 13: Để kiểm tra trạng thái của Device trong quá trình Migrate, dùng Request "Target: Check Migration Status" và điền thông tin:
  • Method: chọn GET
  • URL: {{SourceRegion}}/endpoint/v1/migrations/{{MigrationID}}/endpoints
  • Mục Headers> Thêm các Key sau:
    • "Authorization" với Value là "Bearer {{SourceToken}}"
    • "X-Tenant-ID" với Value là "{{SourceTenantID}}"
Chọn SaveSend sẽ thấy trạng thái của từng Device:
1719905357999.png


Chờ khoảng 10 -15 giây sau tiến hành Send lại để thấy thông tin thành công:
1720152484725.png


LƯU Ý: Các Token chỉ tồn tại trong 1 thời gian ngắn, vì vậy trường hợp nếu thao tác mà gặp lỗi "401: Unauthorized" thì hãy thử Send lại các Request từ đầu và chỉnh sửa các ID và Token nhận được vào biến.

Bước 14: Device sau khi đã migrate thành công sẽ được hiển thị ở Audit Log của Central hoặc Event của Device đó:
1720152393561.png



Chúc các bạn thành công :">
 

Attachments

  • 1719838023031.png
    1719838023031.png
    59.5 KB · Views: 0
  • 1719842224474.png
    1719842224474.png
    64.8 KB · Views: 0
  • 1719890489439.png
    1719890489439.png
    78.8 KB · Views: 0
  • 1719892152588.png
    1719892152588.png
    119.7 KB · Views: 0
  • 1719901657876.png
    1719901657876.png
    200.2 KB · Views: 0
  • 1719902114956.png
    1719902114956.png
    197.7 KB · Views: 0
  • 1719902475521.png
    1719902475521.png
    191 KB · Views: 0
  • 1719903171723.png
    1719903171723.png
    158.1 KB · Views: 0
  • 1719903213051.png
    1719903213051.png
    142.9 KB · Views: 0
  • 1719903388731.png
    1719903388731.png
    199 KB · Views: 0
  • 1719903585263.png
    1719903585263.png
    520.9 KB · Views: 0
Last edited:

About us

  • Securityzone.vn là một trang web chuyên về an ninh mạng và công nghệ thông tin. Trang web này cung cấp các bài viết, tin tức, video, diễn đàn và các dịch vụ liên quan đến lĩnh vực này. Securityzone.vn là một trong những cộng đồng IT lớn và uy tín tại Việt Nam, thu hút nhiều người quan tâm và tham gia. Securityzone.vn cũng là nơi để các chuyên gia, nhà nghiên cứu, sinh viên và người yêu thích an ninh mạng có thể trao đổi, học hỏi và chia sẻ kiến thức, kinh nghiệm và giải pháp về các vấn đề bảo mật trong thời đại số.

Quick Navigation

User Menu