Giới thiệu
Khi tôi bắt đầu phát triển với công cụ dòng lệnh Google Apps Script clasp, tôi đã gặp khó khăn trong việc xác thực. Sự thật là yêu cầu bảo mật giữa tài khoản cá nhân và tài khoản Google Workspace khác nhau rất nhiều.
Tôi đã có kinh nghiệm thành công với tài khoản cá nhân, vì vậy tôi không thể hiểu tại sao lại xuất hiện lỗi. Ngay cả khi hỏi ChatGPT, hầu hết câu trả lời đều giả định tài khoản cá nhân, điều này khiến việc xử lý sự cố trở nên khó khăn hơn.
Vì vậy, tôi sẽ tổ chức các bước cần thiết cho tài khoản Workspace như một cách để nhắc nhở bản thân và làm tài liệu tham khảo cho người khác.
Lỗi Bí Ẩn trên Tài Khoản Workspace
Đối với tài khoản cá nhân, lần đầu tiên chạy lệnh clasp login
sẽ mở trình duyệt và hiển thị màn hình xác thực của Google. Khi được phê duyệt, quá trình thiết lập hoàn tất và từ lần đăng nhập thứ hai trở đi, xác thực sẽ diễn ra ngay lập tức nhờ vào bộ nhớ cache.
Tài khoản cá nhân (@gmail.com)
bash
clasp login
# → Xác thực hoàn tất ngay lập tức!
Tuy nhiên, với tài khoản Google Workspace, điều này không diễn ra như vậy.
bash
clasp login
# → "Chúng tôi xin lỗi, nhưng bạn không có quyền truy cập vào dịch vụ này"
Cơ Chế Xác Thực Khác Nhau giữa Tài Khoản Cá Nhân và Workspace
Tài Khoản Cá Nhân (đơn giản)
- Sử dụng thông tin xác thực mặc định của Google
- Ít ràng buộc, không cần sự phê duyệt của quản trị viên
- Chỉ cần chạy
clasp login
là đủ
Tài Khoản Workspace (phức tạp)
- Các ứng dụng bên ngoài bị chặn bởi chính sách bảo mật
- Cần sự phê duyệt rõ ràng từ quản trị viên
- Cần tạo thông tin xác thực OAuth tùy chỉnh
5 Bước Giải Quyết Vấn Đề
Để khắc phục vấn đề đăng nhập với tài khoản Google Workspace, cần thực hiện năm bước sau:
- Cho phép truy cập API trong Admin Console (phê duyệt cấp tổ chức)
- Kích hoạt API Apps Script trong Google Cloud Console (kích hoạt cấp dự án)
- Cấu hình màn hình đồng ý OAuth (phê duyệt rõ ràng người dùng)
- Tạo thông tin xác thực OAuth (danh tính ứng dụng)
- Xác thực bằng thông tin xác thực tùy chỉnh (đăng nhập theo tổ chức)
Đối với tài khoản cá nhân, các bước 1-3 được Google thực hiện tự động, và bước 4 có thể hoàn tất với thông tin xác thực mặc định.
1. Cho phép API Apps Script trong Admin Console
Giải thích
- Cấp quyền truy cập cấp tổ chức để sử dụng Apps Script
- Nếu không làm điều này, chính sách tổ chức sẽ chặn quyền truy cập
- Phép so sánh: như mở khóa cửa chính của công ty
Các bước
- Đăng nhập vào Admin Console
- Đi tới Bảo mật → Kiểm soát API → Kiểm soát quyền truy cập ứng dụng
- Thiết lập clasp thành Không bị hạn chế, hoặc thiết lập thành Bị hạn chế và thêm clasp là Ứng dụng đáng tin cậy
2. Kích hoạt API Apps Script trong Google Cloud Console
Giải thích
- Cần kích hoạt “API Apps Script”, nếu không sẽ không thể tiếp tục xác thực
- Mặc định, có thể bị tắt
- Phép so sánh: như bật hệ thống truy cập tòa nhà trước khi phát thẻ nhân viên
Các bước
- Đăng nhập vào Google Cloud Console
- Đi tới APIs & Dịch vụ → Thư viện
- Tìm kiếm API Google Apps Script
- Nhấp vào Kích hoạt
3. Cấu hình Màn Hình Đồng Ý OAuth
Giải thích
- Đây là màn hình xác nhận hỏi: “clasp muốn truy cập vào các dự án Apps Script của bạn. Bạn có đồng ý không?”
- Hiển thị rõ ràng dữ liệu nào sẽ được truy cập
- Phép so sánh: như nhân viên lễ tân hỏi các khách đến về mục đích trước khi cho phép vào
Các bước
- Trong Google Cloud Console, đi tới Màn hình đồng ý OAuth
- Nhập thông tin ứng dụng (tên, email hỗ trợ)
- Đặt Loại Người dùng thành Nội bộ (chỉ người dùng trong miền Workspace của bạn mới có thể sử dụng)
- Thêm tài khoản của bạn vào danh sách người dùng thử nghiệm
4. Tạo Thông Tin Xác Thực OAuth 2.0
Giải thích
- Cho phép clasp xác định danh tính của nó với Client ID và Client Secret
- Phép so sánh: như cấp thẻ ID nhân viên chính thức
Các bước
- Đăng nhập vào Google Cloud Console
- Đi tới APIs & Dịch vụ → Thông tin xác thực
- Tạo Client ID OAuth với loại Ứng dụng máy tính để bàn
- Lấy Client ID và Client Secret
Mẹo Hiệu Suất
- Kiểm tra thường xuyên các cài đặt bảo mật để đảm bảo chúng phù hợp với các cập nhật và thay đổi trong tổ chức.
- Sử dụng các công cụ giám sát để theo dõi và phát hiện các vấn đề xác thực kịp thời.
Những Cạm Bẫy Thường Gặp
- Bỏ sót bước phê duyệt của quản trị viên có thể khiến bạn không thể truy cập.
- Không kích hoạt API Apps Script có thể làm gián đoạn quy trình phát triển.
Kết luận
Trong trường hợp của tôi, vì tôi có quyền quản trị trong tổ chức, tôi đã có thể giải quyết vấn đề này tương đối dễ dàng. Tuy nhiên, nếu tôi là người dùng thông thường, việc yêu cầu quản trị viên điều tra và khắc phục nguyên nhân sẽ gặp nhiều khó khăn hơn.
Việc cấu hình phức tạp là điều không thể tránh khỏi để đáp ứng các yêu cầu bảo mật của tổ chức. Nhưng một khi bạn hiểu được bối cảnh, các bước sẽ trở nên hợp lý. Tôi hy vọng bài viết này sẽ là tài liệu tham khảo hữu ích cho bất kỳ ai gặp phải vấn đề tương tự.
Tài liệu tham khảo
- Google Apps Script CLI (clasp)
- Google Cloud Console
- Google Admin Console
- OAuth Authentication là gì? (2020)