AWS Client VPN SAML và Google Workspace: khoảng trống của callback
Google hiển thị app_not_configured_for_user trước khi có bất kỳ đường hầm nào. Ứng dụng khách muốn một callback HTTP thường trên loopback mà Workspace không chấp nhận.
Trang app_not_configured_for_user đến từ Google Workspace và xuất hiện trước khi một gói đường hầm duy nhất được thương lượng. Thứ tự đó chính là toàn bộ chẩn đoán. Cài lại ứng dụng khách, sửa hồ sơ hay kiểm tra tuyến đường đều không thể xóa một trang mà điểm cuối VPN chưa từng thấy. Bước thất bại là một lần chuyển giao trong trình duyệt giữa nhà cung cấp danh tính và một trình lắng nghe trên chính máy của người dùng, và trong lần chuyển giao đó có đúng ba điều đáng kiểm tra.
Đọc trang đó như một tuyên bố của nhà cung cấp danh tính
Google trả về điều này khi ứng dụng SAML chưa được bật cho tài khoản đã đăng nhập. Ứng dụng có thể đang tắt, người dùng có thể nằm ngoài đơn vị tổ chức hoặc nhóm được gán, hoặc cài đặt của nhà cung cấp dịch vụ có thể không khớp với yêu cầu.
Không điều nào trong số đó là vấn đề chứng chỉ, tuyến đường hay đường hầm, dù người dùng nhận ra nó trong ứng dụng khách VPN.
Hai giá trị mà ứng dụng khách sẽ chấp nhận
AWS Client VPN thực hiện trao đổi SAML do nhà cung cấp dịch vụ khởi tạo, nên ứng dụng khách mở trình duyệt, người dùng xác thực, và nhà cung cấp gửi một khẳng định đã ký trở lại một URL Assertion Consumer Service. Với ứng dụng khách máy tính để bàn do AWS cung cấp, URL đó là một trình lắng nghe trên loopback, thường là cổng 35001, và đối tượng dự kiến là định danh thực thể của ứng dụng SAML Client VPN, không phải thực thể đăng nhập của bảng điều khiển AWS.
Cả hai giá trị phải khớp với điều ứng dụng khách mong đợi: nơi khẳng định được gửi đến và nó nhắm tới ai. Một cấu hình sao chép từ ứng dụng SSO trong bảng điều khiển có thể trông hoàn toàn hợp lý mà vẫn nhắm sai cặp.
Hãy lấy cả hai giá trị từ các yêu cầu của Client VPN SAML, không phải từ một hướng dẫn đăng nhập một lần chung của AWS. Thực thể SSO trong bảng điều khiển trông đủ giống để khiến người ta bị dụ. Đó là ứng dụng khác với đối tượng khác, và ứng dụng khách từ chối khẳng định mà không giải thích. Sao chép cặp đó một lần và lưu bên cạnh hồ sơ.
Google sẽ không chấp nhận callback HTTP thường
Bảng điều khiển quản trị yêu cầu URL ACS bằng HTTPS, còn callback của ứng dụng khách là HTTP thường trên loopback. Giá trị đó hoàn toàn không thể nhập vào cấu hình ứng dụng Workspace, đó là lý do một số nhóm thử một proxy ngược kết thúc TLS và chuyển tiếp tới trình lắng nghe cục bộ. Điều đó không sửa được sự lệch: trình duyệt thấy một nguồn gốc, ứng dụng khách công bố một nguồn khác, và phản hồi trả về có thể đến nhầm đích.
Cách bố trí hiệu quả là một nhà cung cấp danh tính trung gian. Ứng dụng SAML tại trung gian nhận callback loopback và đối tượng AWS, và trung gian liên kết tài khoản Workspace lên trên. Quy tắc HTTPS của Google vẫn được thỏa mãn, và khẳng định đến ứng dụng khách vẫn nêu đúng địa chỉ và đối tượng mà nó mong đợi.
Trung gian đó là một phụ thuộc hành chính mà ai đó phải sở hữu, giám sát và đưa vào quy trình khi nhân sự rời đi. Đó cũng là nơi thứ hai mà một sự cố trở thành lỗi đăng nhập. Hãy tính giá trước khi hứa về thiết kế. Nếu không ai đứng ra sở hữu, câu trả lời trung thực là ứng dụng khách AWS không thể dùng Workspace làm nhà cung cấp danh tính duy nhất.
Gán quyền và xác minh hai bước
Trước khi thiết kế lại bất cứ điều gì, hãy xác nhận ứng dụng đang bật cho đúng đơn vị tổ chức hoặc nhóm, và các ứng dụng SAML bên thứ ba có điều khiển gán quyền riêng, tách khỏi danh sách ứng dụng phía Google.
Cũng kiểm tra xem tài khoản có bật xác minh hai bước hay không. Google có thể yêu cầu điều đó trước khi một ứng dụng SAML trở nên dùng được với người dùng, và một câu trả lời trong chuỗi gốc đã được giải quyết đúng theo cách đó. Đây là thứ rẻ nhất để loại trừ và khó chịu nhất nếu phát hiện cuối cùng.
Xác minh bằng một phiên sạch
Sau mỗi thay đổi, hãy thử với hồ sơ trình duyệt mới và cấu hình ứng dụng khách sạch. Các khẳng định được lưu đệm và phiên dùng lại che mất việc bản sửa đã có hiệu lực hay chưa.
Sau đó so sánh hai bản ghi cạnh nhau: sự kiện kiểm toán của nhà cung cấp danh tính và nhật ký ứng dụng khách. Một lần đăng nhập thành công mà không có đường hầm chỉ ngược về callback hoặc đối tượng. Một đường hầm đã kết nối nhưng tài nguyên không truy cập được là vấn đề định tuyến hoặc phân quyền và thuộc về nơi hoàn toàn khác.
Điều gì không nên thay đổi
Đừng gỡ auth-federate khỏi hồ sơ hay tắt kiểm tra chứng chỉ để vượt qua trang. Cả hai đều thay đổi thiết kế xác thực thay vì callback đang hỏng, và cả hai thường hỏng ở lần cập nhật ứng dụng khách tiếp theo.
Thay vào đó hãy sửa lần chuyển giao, và để lại ghi chú nêu tên trung gian, đối tượng và cổng loopback. Người tiếp theo nhìn thấy trang sẽ cần cả ba.