Điểm:0

Làm rõ các câu hỏi xung quanh việc sử dụng id_token trong dịch vụ cho dịch vụ

lá cờ ml

Tôi làm việc chăm chỉ với OAuth2/OIDC trong công việc hiện tại của mình. Bây giờ ngày càng chuyển sang GCP. Tôi có một số câu hỏi cần làm rõ về việc sử dụng mã thông báo OIDC để liên lạc từ Dịch vụ đến Dịch vụ, một mức độ cao, một chiến thuật:

Sự cố: Tôi đang bảo mật công việc Trình lập lịch biểu đám mây cho điểm cuối Cloud Run. tôi đã giải quyết được vấn đề (tốt nhất tôi có thể nói), nhưng tôi rất bối rối về lý do tại sao Google thiết lập mọi thứ theo cách này và hy vọng được làm rõ. Không thách thức mọi thứ, chỉ tìm kiếm sự hiểu biết. Nó cảm thấy rất khác so với những gì tôi biết. Tôi đã luôn sử dụng id_tokens cho con người.

  1. Tại sao họ chọn Mã thông báo ID OIDC để liên lạc từ dịch vụ này sang dịch vụ khác? Tôi đã sử dụng OIDC rất nhiều ở phía người dùng, nhưng chưa bao giờ ở phía máy chủ đến phía máy chủ. Vì vậy, việc nhận Mã thông báo ID để liên lạc giữa máy chủ với máy chủ cảm thấy rất kỳ quặc. Tôi muốn có một liên kết trỏ đến các tài liệu giải thích lựa chọn kiến ​​trúc này trên máy chủ đến phía máy chủ.. Tôi đã mong đợi một Mã thông báo truy cập OAuth2 với Thông tin đăng nhập của ứng dụng khách cho tất cả giao tiếp dịch vụ với dịch vụ chứ không phải Mã thông báo ID. tôi thấy rằng tài liệu của họ chỉ ra rằng nền tảng sử dụng kết hợp cả hai

  2. Tại sao trường Đối tượng tùy ý? Trong Cloud Scheduler, có vẻ như miễn là tôi sử dụng tài khoản dịch vụ hợp lệ trong dự án, tôi có thể đặt bất kỳ giá trị nào vào trường đối tượng? Tôi chắc rằng có lý do cho việc này, Google rất thông minh, nhưng điều này giống như một lỗ hổng bảo mật. Ý tôi là, đối tượng có thể là bất kỳ url hợp lệ nào (tốt nhất tôi có thể nói). Tôi có thể đưa đối tượng của điểm cuối Cloud Run vào một dự án khác và thực hiện cuộc gọi đó không?

  3. Rõ ràng ở đây có sự phân chia giữa AuthN và AuthZ, vì vậy id_token nói nhiều hơn về authN, nhưng trường đối tượng được xác thực theo yêu cầu của mã thông báo sẽ biểu thị Authz vững chắc. NHƯNG với tính chất tùy tiện, tôi cảm thấy không thể tin tưởng vào sự xác thực của khán giả vì bất kỳ ai cũng có thể đặt bất cứ thứ gì vào đó. Xin vui lòng cho tôi biết những gì tôi đang mất tích.

Tôi hy vọng những câu hỏi này có ý nghĩa. Tôi mới sử dụng GCP, nhưng giống như những gì tôi thấy, nhưng một phần công việc của tôi là tìm ra các khía cạnh của nội dung và những điều này khiến tôi cảm thấy kỳ quặc so với những gì tôi đã sử dụng trước đây.

Điểm:0
lá cờ cn

Tại sao họ chọn Mã thông báo ID OIDC để phục vụ dịch vụ liên lạc? Tôi đã sử dụng OIDC rất nhiều về phía người dùng, nhưng chưa bao giờ về phía máy chủ đến phía máy chủ. Vì vậy, nhận Mã thông báo ID cho máy chủ đến máy chủ giao tiếp cảm thấy rất kỳ lạ. Tôi rất thích một liên kết đến các điểm đến tài liệu giải thích lựa chọn kiến ​​trúc này trên máy chủ đến máy chủ bên.. Tôi đã mong đợi một Mã thông báo truy cập OAuth2 với Máy khách Thông tin xác thực cho tất cả dịch vụ liên lạc với dịch vụ không phải là Mã thông báo ID.

Trong Google Cloud, có hai loại ủy quyền. Dựa trên vai trò (Mã thông báo truy cập OAuth) và dựa trên danh tính (Mã thông báo nhận dạng OIDC). Ủy quyền dựa trên vai trò cung cấp quyền truy cập vào tất cả các tài nguyên dựa trên vai trò. Ví dụ: quyền truy cập của người xem vào tất cả các phiên bản Máy tính. Loại quyền này được quản lý ở cấp Dự án/Thư mục/Tổ chức. Ủy quyền dựa trên danh tính cung cấp quyền truy cập vào một tài nguyên riêng lẻ. Sự khác biệt chính là nơi quyền/vai trò được chỉ định: ở cấp dự án hoặc ở cấp tài nguyên. Vì một vai trò có quá nhiều quyền ở cấp tài nguyên nên bạn cần một cách khác.Đó là cách nhận dạng. Tôi cho John truy cập khóa KMS bí mật2. Danh tính + quyền được lưu trữ ở lớp quản lý truy cập khóa KMS.

Tại sao trường Đối tượng tùy ý? Trong Bộ lập lịch đám mây, nó có vẻ như miễn là tôi sử dụng tài khoản dịch vụ hợp lệ trong dự án, Tôi có thể đặt bất kỳ giá trị nào trong trường đối tượng không? Tôi chắc chắn có một lý do đối với điều này, những người của Google rất thông minh, nhưng điều này giống như một lỗ hổng bảo mật. Ý tôi là, đối tượng có thể là bất kỳ url hợp lệ nào (tốt nhất tôi có thể nói). Tôi có thể đưa đối tượng của điểm cuối Cloud Run vào một dự án khác và thực hiện cuộc gọi đó?

Nếu mã của bạn tạo Mã thông báo nhận dạng, khán giả bắt buộc. Có một số ID ứng dụng khách OAuth do Google quản lý cho phép bỏ qua đối tượng. Vì danh tính và quyền được lưu trữ tại tài nguyên nên việc gọi một điểm cuối Cloud Run khác sẽ không vượt qua kiểm tra danh tính. IMHO trường đối tượng là một phương pháp nhanh chóng để hệ thống nhận dạng kiểm tra trước xem Mã thông báo nhận dạng có được phê duyệt cho lớp IAM hay không.

Rõ ràng là có sự phân chia ở đây giữa AuthN và AuthZ, vì vậy id_token nói nhiều hơn về authN, nhưng trường đối tượng được xác thực trên yêu cầu của mã thông báo sẽ chỉ ra Authz vững chắc. NHƯNG với nó là tùy ý, tôi cảm thấy không thể tin tưởng vào việc xác thực đối tượng bởi vì bất cứ ai cũng có thể đặt bất cứ thứ gì ở đó. Xin vui lòng cho tôi biết những gì tôi còn thiếu.

Mã thông báo nhận dạng đã được ký. Chỉ các dịch vụ và mã được ủy quyền mới có thể tạo Mã thông báo nhận dạng. Như tôi đã đề cập ở điểm trước, khán giả không cấp quyền hoặc cấp quyền truy cập. Đây là một bước trong lớp các bước để ủy quyền truy cập dựa trên Mã thông báo nhận dạng. Xác thực cuối cùng là danh tính + quyền được chỉ định tại tài nguyên. Đối tượng không cấp bất kỳ quyền nào trong số đó, nhưng có thể được sử dụng làm bộ lọc để nhanh chóng loại bỏ mã thông báo.

Cade Thacker avatar
lá cờ ml
Cảm ơn bạn đã trả lời chu đáo. Tôi đã đọc điều này qua một vài lần và tôi hiểu những gì bạn đang nói. Mọi thứ mà tôi làm việc bây giờ là một cách tiếp cận hoàn toàn dựa trên vai trò, vì vậy điều này chỉ khác. Cần phải có được đầu của tôi xung quanh này. Cảm ơn một lần nữa!

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.