2010-07-12 41 views
42

Tôi đã hỏi question về việc sử dụng remote_api của công cụ ứng dụng với openID và câu trả lời hoạt động tốt, cả an toàn và không an toàn. Tại một số điểm ngay sau đó, tuy nhiên, một cái gì đó trong công cụ ứng dụng thay đổi, và các giải pháp không còn làm việc một cách an toàn - tức làSecure remote_api an toàn trong công cụ ứng dụng với OpenID

sau
remote_api_stub.ConfigureRemoteDatastore(app_id=app_id, path='/remote_api', auth_func=auth_func, servername=host, secure=True) 

ngừng làm việc (luôn luôn trở về 302), và tôi cần phải loại bỏ các tham số an toàn để có được nó hoạt động.

release of the 1.3.5 SDK hứa 'Lệnh API từ xa có thể được gửi qua HTTPS hoặc HTTP', điều này làm tôi bối rối, vì tôi đã cho thấy rằng đối số 'an toàn = True' đã cho tôi điều này, dựa trên this discussion.

Nghi ngờ của tôi là việc phát hành tính năng này đã khiến đối số 'an toàn' ngừng hoạt động. Vì vậy, phần đầu tiên của câu hỏi của tôi - là tôi thực sự chạy các lệnh remote_api một cách an toàn bằng cách sử dụng đối số 'secure = True', trước khi phát hành 1.3.5? Khi hack cookie ngừng hoạt động an toàn, tôi đã thử giải pháp của Nick Johnson được liệt kê trong cùng một câu hỏi, nhưng với điều này, tôi không thể cung cấp 'secure = True', nhận được cùng một phản hồi 302.

Tôi cần phải làm gì để chạy remote_api một cách an toàn với openID? 1.3.5 có bao gồm các khả năng mới xung quanh vấn đề này không và làm cách nào để sử dụng chúng? Chúc mừng,

Colin

+0

Bạn đang sử dụng hack của tôi hoặc hack ít hack của Nick? [http://blog.notdot.net/2010/06/Using-remote-api-with-OpenID-authentication] –

+0

Tôi đã thử cả hai - tôi nhận được cùng một hành vi - cài đặt 'secure = True' luôn dẫn đến 302 - xóa 'secure = True' mọi thứ hoạt động tốt. Tôi đã có 'an toàn: tùy chọn' trong app.yaml trên điểm vào remote_api. Ban đầu tôi đã sử dụng hack của bạn thành công với bảo mật = True, sau đó một ngày (khoảng 1.3.5 thông báo trước khi phát hành) 302 bắt đầu được trả lại. Tại thời điểm này tôi đã cố gắng hack hack ít hack của Nick, nhưng nó cũng chỉ làm việc mà không có 'an toàn = True'. Tôi chắc rằng đó không phải là vấn đề với cookie, vì cùng một cookie hoạt động tốt nếu 'secure = True' không có mặt. – hawkett

+0

openid bảo mật chưa hoạt động trên công cụ ứng dụng của google. http://code.google.com/p/googleappengine/issues/detail?id=3586 – iamgopal

Trả lời

1

Trân trọng này

http://code.google.com/intl/en-US/appengine/articles/openid.html

Chú ý: tại thời điểm viết bài này, OpenID không được hỗ trợ nếu ứng dụng của bạn chạy trong chế độ an toàn sử dụng HTTPS.

Trân this trong phiên bản cuối cùng trong 1.3.7 phát hành

def ConfigureRemoteDatastore(app_id, 
          path, 
          auth_func, 
          servername=None, 
          rpc_server_factory=appengine_rpc.HttpRpcServer, 
          rtok=None, 
          secure=False): 
    """Does necessary setup to allow easy remote access to an AppEngine datastore. 

    Either servername must be provided or app_id must not be None. If app_id 
    is None and a servername is provided, this function will send a request 
    to the server to retrieve the app_id. 

    Args: 
    app_id: The app_id of your app, as declared in app.yaml. 
    path: The path to the remote_api handler for your app 
     (for example, '/remote_api'). 
    auth_func: A function that takes no arguments and returns a 
     (username, password) tuple. This will be called if your application 
     requires authentication to access the remote_api handler (it should!) 
     and you do not already have a valid auth cookie. 
    servername: The hostname your app is deployed on. Defaults to 
     <app_id>.appspot.com. 
    rpc_server_factory: A factory to construct the rpc server for the datastore. 
    rtok: The validation token to sent with app_id lookups. If None, a random 
     token is used. 
    secure: Use SSL when communicating with the server. 

Vì vậy, bạn đã thử nó với sdk mới?

+0

@eugene đây là thông tin tương tự như có trong liên kết được cung cấp bởi @iamgopal trong các nhận xét vào ngày 21 tháng 8. Vì vậy, Google không dùng nữa khả năng này với 1.3.5? – hawkett

+0

Tôi nghĩ vậy, có lẽ chúng ta nên chờ 1.3.6 lộ trình để kiểm tra nó. – Eugene

+0

@eugene 1.3.7 đã hết.Tôi không nghĩ câu trả lời này thêm bất cứ điều gì chưa có trong câu hỏi/bình luận. – hawkett

Các vấn đề liên quan