42 votes

Sécurisé remote_api dans app engine avec OpenID

J'ai déjà posé une question sur l'utilisation d'app engine remote_api avec openID, et la réponse a bien fonctionné, en toute sécurité et de manière non sécurisée. À un certain point, peu de temps après, cependant, quelque chose dans app engine changé, et la solution n'est plus travaillé en toute sécurité - à-dire le suivant

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

arrêté de travailler (revenant toujours 302), et que je devais enlever le sécuriser l'argument de l'obtenir pour fonctionner.

La sortie de la version 1.3.5 SDK promis à Distance des commandes de l'API peuvent être envoyées via HTTP ou HTTPS", ce qui me confond, comme j'étais sous l'impression que le fait de fournir le "secure=True' argument avait été de me donner cette déjà, basé sur cette discussion.

Je soupçonne que c'était la sortie de cette fonctionnalité qui a provoqué le "sécuriser" l'argument d'arrêter de travailler. Donc, la première partie de ma question, me fait vraiment remote_api commandes de manière sécurisée en utilisant le "secure=True' argument, avant la sortie de la version 1.3.5?

Une fois le cookie hack cessé de travailler en toute sécurité, j'ai essayé de Nick Johnson répertoriées dans la même question, mais avec cela, je ne pouvais pas l'offre "secure=True', d'obtenir la même réponse 302.

Que dois-je faire pour exécuter remote_api en toute sécurité avec openID? Ne 1.3.5 inclure de nouvelles fonctionnalités autour de cela, et comment puis-je les utiliser? Cheers,

Colin

1voto

Eugene Points 2124

Ce qui concerne ce

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

ATTENTION: au moment d'écrire ces lignes, OpenID n'est pas pris en charge si votre application s'exécute en mode sécurisé via HTTPS.

Ce qui concerne cette dernière révision en version 1.3.7

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.

Alors, avez-vous essayer avec le nouveau sdk?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X