Mục lục
Trong quá trình sử dụng các API của Google, bạn sẽ cần một file client_secret.json
để có thể xác thực tài khoản Google của bạn. Bài viết này sẽ hướng dẫn bạn từng bước tạo Client Secret trong Google Cloud, từ việc tạo dự án, đến cấu hình OAuth consent screen, đến tạo OAuth Client ID và có được file Client Secret dạng JSON. Nội dung hướng đến người sử dụng Google API là chính, nên sẽ không bao gồm các bước xét duyệt như nhà phát triển ứng dụng. Kết quả sẽ giúp bạn sẵn sàng để sử dụng các thư viện Python như google-auth
, google-api-python-client
hoặc simple-drive
một cách mượt mà.
Client Secret là gì?
Client Secret là một chuỗi ký tự duy nhất và ngẫu nhiên được tạo ra khi bạn đăng ký một ứng dụng (còn gọi là client) để truy cập vào các dịch vụ của Google Cloud Platform (GCP). Chuỗi ký tự này đóng vai trò như một “chìa khóa bảo mật,” giúp xác thực ứng dụng của bạn với Google, đảm bảo chỉ ứng dụng của bạn mới có quyền truy cập vào các tài nguyên được cấp phép. Client Secret sẽ đi kèm với một OAuth Client ID của nó.
Tại sao Client Secret quan trọng?
- Bảo mật: Client Secret bảo vệ tài khoản và dữ liệu của bạn khỏi truy cập trái phép.
- Xác thực: Là thành phần thiết yếu trong xác thực OAuth 2.0, đảm bảo ứng dụng của bạn được nhận diện an toàn.
- Quản lý quyền truy cập: Dùng Client Secret để kiểm soát quyền truy cập của ứng dụng với các tài nguyên Google Cloud.
Khi nào cần Client Secret?
- Sử dụng API: Mỗi khi ứng dụng gọi các API Google Cloud để thực hiện các tác vụ như đọc, ghi hoặc xóa dữ liệu, Client Secret sẽ xác thực yêu cầu.
- Quy trình OAuth 2.0: Client Secret là chìa khóa an toàn để người dùng cấp quyền truy cập vào tài khoản Google của họ cho ứng dụng của bạn.
Tạo Client Secret
Bước 1: Tạo một Project trên Google Cloud. Hãy truy cập console.cloud.google.com/projectcreate để tạo một Project mới.
Bước 2: Truy cập trang OAuth consent screen. Bạn cần phải cấu hình OAuth consent screen trước khi tạo Client Secret.
Bước 3: Chọn User Type. Dựa vào mô tả dưới đây, hãy chọn User Type phù hợp với mục đích của bạn. Ví dụ: Sử dụng với Python trong phạm vi cá nhân thì chọn External.
- External: Nếu bạn chỉ dùng Google API cho cá nhân (không cần xét duyệt) hoặc phát một triển ứng dụng công khai (cần xét duyệt).
- Internal: Nếu bạn đang phát triển một ứng dụng cho công ty đang sử dụng Google Workspace. Không cần xét duyệt.
Bước 4: Điền các công tin thiết yếu cho ứng dụng. Vì không cần xét duyệt ứng dụng, bạn chỉ cần điền các thông tin bắt buộc (có đánh dấu sao).
- App name: Một tên bất kỳ.
- User support email: Điền email của bạn.
- Developer contact information: Điền email của bạn.
Những phần còn lại cứ để trống, nó chỉ dùng khi bạn cần xét duyệt một ứng dụng công khai.
Bước 5: Chọn Scopes cho ứng dụng của bạn. Nhấp nút ADD OR REMOVE SCOPES để thêm các quyền sử dụng API mà bạn cần. Ví dụ: Mục đích của bạn là sử dụng Google Drive API trong Python, hãy tìm “Google Drive API” và tích chọn từng quyền mà bạn cần. Nếu bạn chỉ dùng trong phạm vi cá nhân thì cứ chọn tất cả cho nhẹ đầu.
Nhà phát triển ứng dụng công khai sẽ phải gửi xét duyệt cho các scope nhạy cảm. Còn cá nhân và tổ chức sử dụng Google Workspace thì không cần.
Mình từng xét duyệt cho vài ứng dụng web, đây là kinh nghiệm của mình dành cho bạn nào muốn tham khảo.
- Các thông tin phải điền đầy đủ.
- Chỉ chọn các scope thực sự cần thiết.
- Soạn mô tả lý do vì sao cần quyền đó, người dùng sẽ dùng ứng dụng như thế nào, càng chi tiết càng tốt.
- Chuẩn bị một video quay lại cách mà người dùng sử dụng quyền đó.
- Chuẩn bị một tài khoản thử nghiệm trên ứng dụng để đội kiểm duyệt Google thử nghiệm.
- Nếu thứ phù hợp thì được duyệt, chưa thì phải gửi duyệt lại với mô tả kỹ hơn, video kỹ hơn.
- Mất từ một đến vài tuần để xét duyệt một scope, nhưng có thể xét duyệt nhiều scope cùng một lúc.
Bước 6: Thêm các email được phép sử dụng ứng dụng ở dạng thử nghiệm. Bước này quan trọng đối với mục đích cá nhân, vì ứng dụng không xét duyệt công khai thì chỉ có thể sử dụng ở dạng thử nghiệm.
Bước 7: Hoàn thành cấu hình OAuth consent screen. Kiểm tra lại các thông tin rồi quay trở lại trang dashboard.
Bước 8: Tạo Client Secret thông qua OAuth client ID. Vào Credentials, nhấp nút CREATE CREDENTIALS, chọn OAuth client ID.
Bước 9: Chọn Application type và điền tên client ID. Dưới đây các type đang được hỗ trợ.
Các type dành phạm vi sử dụng Google API cá nhân:
- Desktop app: Đơn giản cho mục đích sử dụng Google API. Ví dụ: Mục đích tạo Client Secret của bạn là để dùng cho các thư viện trong Python.
- Web application: Có thể chọn nếu ứng dụng của bạn có hướng dẫn điền Authorized JavaScript origins và Authorized redirect URIs. Ví dụ: Một số plugin của website cần type này và họ sẽ hướng dẫn bạn điền phần này.
Các type dành cho nhát phát triển ứng dụng: Bao gồm các type kể trên và các type dưới đây.
- Android.
- Chrome Extension.
- iOS.
- TVs and Limited Input devices.
- Universal Windows Platform (UWP).
Bước 10: Tải xuống file Client Secret JSON. Nhấp nút DOWNLOAD JSON để tải.
Bật API cho dự án
Sau khi đã tạo Client Secret và Client ID trong Google Cloud. Bạn cần phải bật API trong Google Cloud thì mới sử dụng được các API.
Lưu ý bảo mật cho Client Secret
- Không lưu trữ Client Secret trong mã nguồn công khai: Tránh commit Client Secret vào kho lưu trữ công khai (như GitHub) nếu sử dụng hệ thống kiểm soát phiên bản.
- Dùng biến môi trường hoặc tệp cấu hình bí mật: Lưu trữ Client Secret trong biến môi trường hoặc tệp .env để tăng cường bảo mật.
- Định kỳ tạo mới Client Secret: Nếu Client Secret bị lộ hoặc có nguy cơ rủi ro, hãy tạo mới và cập nhật cấu hình ứng dụng.
Lời kết
Qua hướng dẫn trên, bạn đã nắm vững quy trình tạo Client Secret cũng như cấu hình OAuth consent screen trong Google Cloud cho mục đích sử dụng Google API cá nhân hoặc tổ chức có sử dụng Google Workspace. Đừng quên giữ bí mật thông tin Client Secret để tránh rủi ro về dữ liệu. Bây giờ, bạn đã có thể khai thác tối đa các dịch vụ từ Google Cloud để mang lại hiệu suất công việc tốt hơn.
Rất chi tiết và dễ hiểu
Cảm ơn Vy nhé