[google-appengine] Re: Manual Authentication

2009-03-27 Thread quake head

On Mar 25, 7:53 pm, r00723r0 r0072...@gmail.com wrote:
 It seems odd, I know, but I'm not doing anything malicious. I am
 making a laptop recovery service. The client on the laptop must update
 the Google App Engine server with the laptop's IP every few minutes to
 the App Engine server can keep track of it. But I need to make sure
 what user is sending this IP information.

 This is where the trouble comes in. The client on the laptop that
 tries to give the server the IP needs to authenticate but cannot
 without a login page.

Can't you send login information through an HTTP POST?

With each update, you just need to send identification information
that is unique to the particular user (perhaps a hashed password) and
match it to an existing database.

You don't need to send the ip from the client, since you can get it
from the server.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Manual Authentication

2009-03-26 Thread David Wilson

Hey,

How about doing interactive login once during installation (e.g.
displaying a web browser control in your setup program), then using
this session to establish a shared secret between the machine and your
application. Something like:

secret = md5.md5(str(random.getrandbits(512)).hexdigest()

Then use that secret in the client to sign update requests:

sig = hmac.HMAC(key=secret, msg=str(nonce, current_ip, webcam_jpg)).hexdigest()

And passing that with the request. Store 'nonce' somewhere in
Datastore and the local machine, incrementing it once per request (and
at the server side, ensure the nonce never decrements - this is to
prevent replay attacks).



2009/3/26 r00723r0 r0072...@gmail.com:

 It seems odd, I know, but I'm not doing anything malicious. I am
 making a laptop recovery service. The client on the laptop must update
 the Google App Engine server with the laptop's IP every few minutes to
 the App Engine server can keep track of it. But I need to make sure
 what user is sending this IP information.

 This is where the trouble comes in. The client on the laptop that
 tries to give the server the IP needs to authenticate but cannot
 without a login page.

 On Mar 25, 8:50 pm, Steve Robillard steverobill...@gmail.com
 wrote:
 It might help to know why all the subterfuge what problem are you trying to
 solve? As a user I would be suspicious of any system that forwards me
 through a series of links and sends secret information. With all do respect
 it sounds like you are trying to proxy a limited resource or bypass a 3rd
 party subscription requirement.

 Steve

 -Original Message-
 From: google-appengine@googlegroups.com

 [mailto:google-appeng...@googlegroups.com] On Behalf Of r00723r0
 Sent: Wednesday, March 25, 2009 7:30 PM
 To: Google App Engine
 Subject: [google-appengine] Re: Manual Authentication

 I may have explained myself incorrectly. I need to log in from an invisible
 client without a web interface, and the login URL is unknown to the
 standalone client. The client needs to log in and send some data silently.

 The main problem is that the username and password are saved, so the user
 will not be manually logging in. Instead the client must be able to log in
 without a proprietary log in URL that Google provides.

 A possible solution:
 * The client connects to someapp.appspot.com/update/, which has only a login
 URL when a user is not logged in.
 * The client then connects to the URL and sends magical information to log
 in.
 * The login URL redirects back to the /update page, as it always does, and
 the Google App Engine program stores this visit as programmed.

 However, this solution is inelegant and annoying to program. Any better
 solutions?

 On Mar 25, 6:30 pm, Marzia Niccolai ma...@google.com wrote:
  Hi,

  Please see the information in our Google Accounts section which shows
  you how to request/require login and generate login/logout
  URLs:http://code.google.com/appengine/docs/python/users/

  -Marzia

  On Wed, Mar 25, 2009 at 11:43 AM, r00723r0 r0072...@gmail.com wrote:

   I am writing a laptop theft recovery service. The client requests /
   update on the Google App Engine server, with user credentials,
   through HTTPS every few minutes. The server stores the IP from which
   the request was made and the time the request was made in the user
   information database model. My question is as such: how do I
   authenticate the user in the Google App Engine server? The username
   and password are given through POST in the HTTP request but I'd
   still need a login URL which the client cannot generate.
 




-- 
It is better to be wrong than to be vague.
  — Freeman Dyson

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Manual Authentication

2009-03-26 Thread dafire



 secret = md5.md5(str(random.getrandbits(512)).hexdigest()

you could just use an uuid to get a unique id.

import uuid
secret = str(uuid.uuid4())
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Manual Authentication

2009-03-26 Thread David Wilson

2009/3/26 dafire daf...@gmail.com:



 secret = md5.md5(str(random.getrandbits(512)).hexdigest()

 you could just use an uuid to get a unique id.

 import uuid
 secret = str(uuid.uuid4())

Handy tip, thanks :)


David

 




-- 
It is better to be wrong than to be vague.
  — Freeman Dyson

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Manual Authentication

2009-03-25 Thread Marzia Niccolai
Hi,

Please see the information in our Google Accounts section which shows you
how to request/require login and generate login/logout URLs:
http://code.google.com/appengine/docs/python/users/

-Marzia

On Wed, Mar 25, 2009 at 11:43 AM, r00723r0 r0072...@gmail.com wrote:


 I am writing a laptop theft recovery service. The client requests /
 update on the Google App Engine server, with user credentials, through
 HTTPS every few minutes. The server stores the IP from which the
 request was made and the time the request was made in the user
 information database model. My question is as such: how do I
 authenticate the user in the Google App Engine server? The username
 and password are given through POST in the HTTP request but I'd still
 need a login URL which the client cannot generate.

 


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Manual Authentication

2009-03-25 Thread r00723r0

I may have explained myself incorrectly. I need to log in from an
invisible client without a web interface, and the login URL is unknown
to the standalone client. The client needs to log in and send some
data silently.

The main problem is that the username and password are saved, so the
user will not be manually logging in. Instead the client must be able
to log in without a proprietary log in URL that Google provides.

A possible solution:
* The client connects to someapp.appspot.com/update/, which has only a
login URL when a user is not logged in.
* The client then connects to the URL and sends magical information to
log in.
* The login URL redirects back to the /update page, as it always does,
and the Google App Engine program stores this visit as programmed.

However, this solution is inelegant and annoying to program. Any
better solutions?

On Mar 25, 6:30 pm, Marzia Niccolai ma...@google.com wrote:
 Hi,

 Please see the information in our Google Accounts section which shows you
 how to request/require login and generate login/logout 
 URLs:http://code.google.com/appengine/docs/python/users/

 -Marzia

 On Wed, Mar 25, 2009 at 11:43 AM, r00723r0 r0072...@gmail.com wrote:

  I am writing a laptop theft recovery service. The client requests /
  update on the Google App Engine server, with user credentials, through
  HTTPS every few minutes. The server stores the IP from which the
  request was made and the time the request was made in the user
  information database model. My question is as such: how do I
  authenticate the user in the Google App Engine server? The username
  and password are given through POST in the HTTP request but I'd still
  need a login URL which the client cannot generate.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Manual Authentication

2009-03-25 Thread Steve Robillard

It might help to know why all the subterfuge what problem are you trying to
solve? As a user I would be suspicious of any system that forwards me
through a series of links and sends secret information. With all do respect
it sounds like you are trying to proxy a limited resource or bypass a 3rd
party subscription requirement.

Steve 

-Original Message-
From: google-appengine@googlegroups.com
[mailto:google-appeng...@googlegroups.com] On Behalf Of r00723r0
Sent: Wednesday, March 25, 2009 7:30 PM
To: Google App Engine
Subject: [google-appengine] Re: Manual Authentication


I may have explained myself incorrectly. I need to log in from an invisible
client without a web interface, and the login URL is unknown to the
standalone client. The client needs to log in and send some data silently.

The main problem is that the username and password are saved, so the user
will not be manually logging in. Instead the client must be able to log in
without a proprietary log in URL that Google provides.

A possible solution:
* The client connects to someapp.appspot.com/update/, which has only a login
URL when a user is not logged in.
* The client then connects to the URL and sends magical information to log
in.
* The login URL redirects back to the /update page, as it always does, and
the Google App Engine program stores this visit as programmed.

However, this solution is inelegant and annoying to program. Any better
solutions?

On Mar 25, 6:30 pm, Marzia Niccolai ma...@google.com wrote:
 Hi,

 Please see the information in our Google Accounts section which shows 
 you how to request/require login and generate login/logout 
 URLs:http://code.google.com/appengine/docs/python/users/

 -Marzia

 On Wed, Mar 25, 2009 at 11:43 AM, r00723r0 r0072...@gmail.com wrote:

  I am writing a laptop theft recovery service. The client requests / 
  update on the Google App Engine server, with user credentials, 
  through HTTPS every few minutes. The server stores the IP from which 
  the request was made and the time the request was made in the user 
  information database model. My question is as such: how do I 
  authenticate the user in the Google App Engine server? The username 
  and password are given through POST in the HTTP request but I'd 
  still need a login URL which the client cannot generate.


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Manual Authentication

2009-03-25 Thread GregF

Ping the server for a random number (the salt), then hash the salt
with the hash of the password and send that to the server. The server
stores a hash of the password, and hashes that and the salt and
compares it with the sent hash - if it matches, it's authenticated.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Manual Authentication

2009-03-25 Thread r00723r0

It seems odd, I know, but I'm not doing anything malicious. I am
making a laptop recovery service. The client on the laptop must update
the Google App Engine server with the laptop's IP every few minutes to
the App Engine server can keep track of it. But I need to make sure
what user is sending this IP information.

This is where the trouble comes in. The client on the laptop that
tries to give the server the IP needs to authenticate but cannot
without a login page.

On Mar 25, 8:50 pm, Steve Robillard steverobill...@gmail.com
wrote:
 It might help to know why all the subterfuge what problem are you trying to
 solve? As a user I would be suspicious of any system that forwards me
 through a series of links and sends secret information. With all do respect
 it sounds like you are trying to proxy a limited resource or bypass a 3rd
 party subscription requirement.

 Steve

 -Original Message-
 From: google-appengine@googlegroups.com

 [mailto:google-appeng...@googlegroups.com] On Behalf Of r00723r0
 Sent: Wednesday, March 25, 2009 7:30 PM
 To: Google App Engine
 Subject: [google-appengine] Re: Manual Authentication

 I may have explained myself incorrectly. I need to log in from an invisible
 client without a web interface, and the login URL is unknown to the
 standalone client. The client needs to log in and send some data silently.

 The main problem is that the username and password are saved, so the user
 will not be manually logging in. Instead the client must be able to log in
 without a proprietary log in URL that Google provides.

 A possible solution:
 * The client connects to someapp.appspot.com/update/, which has only a login
 URL when a user is not logged in.
 * The client then connects to the URL and sends magical information to log
 in.
 * The login URL redirects back to the /update page, as it always does, and
 the Google App Engine program stores this visit as programmed.

 However, this solution is inelegant and annoying to program. Any better
 solutions?

 On Mar 25, 6:30 pm, Marzia Niccolai ma...@google.com wrote:
  Hi,

  Please see the information in our Google Accounts section which shows
  you how to request/require login and generate login/logout
  URLs:http://code.google.com/appengine/docs/python/users/

  -Marzia

  On Wed, Mar 25, 2009 at 11:43 AM, r00723r0 r0072...@gmail.com wrote:

   I am writing a laptop theft recovery service. The client requests /
   update on the Google App Engine server, with user credentials,
   through HTTPS every few minutes. The server stores the IP from which
   the request was made and the time the request was made in the user
   information database model. My question is as such: how do I
   authenticate the user in the Google App Engine server? The username
   and password are given through POST in the HTTP request but I'd
   still need a login URL which the client cannot generate.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Manual Authentication

2009-03-25 Thread r00723r0

Hello, and thank you. Could you give me an example of such a
transaction?

On Mar 25, 9:02 pm, GregF g.fawc...@gmail.com wrote:
 Ping the server for a random number (the salt), then hash the salt
 with the hash of the password and send that to the server. The server
 stores a hash of the password, and hashes that and the salt and
 compares it with the sent hash - if it matches, it's authenticated.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Manual Authentication

2009-03-25 Thread Steve Robillard

This seems to be a client side issue. Why the requirement to authenticate
with something other than a Gmail address if at all. Why not just have the
client add a header or headers to a request page which can uniquely id the
machine that is calling. And ditch all requests without this header(s). One
would think your users would need to authenticate  to get the info in the
event the laptop is lost. So if you feel authentication is a must why not
use a Gmail account?

-Original Message-
From: google-appengine@googlegroups.com
[mailto:google-appeng...@googlegroups.com] On Behalf Of r00723r0
Sent: Wednesday, March 25, 2009 10:54 PM
To: Google App Engine
Subject: [google-appengine] Re: Manual Authentication


It seems odd, I know, but I'm not doing anything malicious. I am making a
laptop recovery service. The client on the laptop must update the Google App
Engine server with the laptop's IP every few minutes to the App Engine
server can keep track of it. But I need to make sure what user is sending
this IP information.

This is where the trouble comes in. The client on the laptop that tries to
give the server the IP needs to authenticate but cannot without a login
page.

On Mar 25, 8:50 pm, Steve Robillard steverobill...@gmail.com
wrote:
 It might help to know why all the subterfuge what problem are you 
 trying to solve? As a user I would be suspicious of any system that 
 forwards me through a series of links and sends secret information. 
 With all do respect it sounds like you are trying to proxy a limited 
 resource or bypass a 3rd party subscription requirement.

 Steve

 -Original Message-
 From: google-appengine@googlegroups.com

 [mailto:google-appeng...@googlegroups.com] On Behalf Of r00723r0
 Sent: Wednesday, March 25, 2009 7:30 PM
 To: Google App Engine
 Subject: [google-appengine] Re: Manual Authentication

 I may have explained myself incorrectly. I need to log in from an 
 invisible client without a web interface, and the login URL is unknown 
 to the standalone client. The client needs to log in and send some data
silently.

 The main problem is that the username and password are saved, so the 
 user will not be manually logging in. Instead the client must be able 
 to log in without a proprietary log in URL that Google provides.

 A possible solution:
 * The client connects to someapp.appspot.com/update/, which has only a 
 login URL when a user is not logged in.
 * The client then connects to the URL and sends magical information to 
 log in.
 * The login URL redirects back to the /update page, as it always does, 
 and the Google App Engine program stores this visit as programmed.

 However, this solution is inelegant and annoying to program. Any 
 better solutions?

 On Mar 25, 6:30 pm, Marzia Niccolai ma...@google.com wrote:
  Hi,

  Please see the information in our Google Accounts section which 
  shows you how to request/require login and generate login/logout 
  URLs:http://code.google.com/appengine/docs/python/users/

  -Marzia

  On Wed, Mar 25, 2009 at 11:43 AM, r00723r0 r0072...@gmail.com wrote:

   I am writing a laptop theft recovery service. The client requests 
   / update on the Google App Engine server, with user credentials, 
   through HTTPS every few minutes. The server stores the IP from 
   which the request was made and the time the request was made in 
   the user information database model. My question is as such: how 
   do I authenticate the user in the Google App Engine server? The 
   username and password are given through POST in the HTTP request 
   but I'd still need a login URL which the client cannot generate.


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Manual Authentication

2009-03-25 Thread r00723r0

Wait... I didn't say anything about not using a Gmail account.

Here, look. Let me break it down as simply as I can.

The client, which a program downloaded on the laptop, authenticates
somehow and sends the IP address to the App Engine server every few
minutes (10 minutes by default). The ISP can determine what internet
subscriber was using a certain IP at a certain time. The App Engine
service stores the IP address and time of last transmission by the
client from the IP. If the laptop gets stolen, the ISP and police will
track it down given this information.

On Mar 25, 11:09 pm, Steve Robillard steverobill...@gmail.com
wrote:
 This seems to be a client side issue. Why the requirement to authenticate
 with something other than a Gmail address if at all. Why not just have the
 client add a header or headers to a request page which can uniquely id the
 machine that is calling. And ditch all requests without this header(s). One
 would think your users would need to authenticate  to get the info in the
 event the laptop is lost. So if you feel authentication is a must why not
 use a Gmail account?

 -Original Message-
 From: google-appengine@googlegroups.com

 [mailto:google-appeng...@googlegroups.com] On Behalf Of r00723r0
 Sent: Wednesday, March 25, 2009 10:54 PM
 To: Google App Engine
 Subject: [google-appengine] Re: Manual Authentication

 It seems odd, I know, but I'm not doing anything malicious. I am making a
 laptop recovery service. The client on the laptop must update the Google App
 Engine server with the laptop's IP every few minutes to the App Engine
 server can keep track of it. But I need to make sure what user is sending
 this IP information.

 This is where the trouble comes in. The client on the laptop that tries to
 give the server the IP needs to authenticate but cannot without a login
 page.

 On Mar 25, 8:50 pm, Steve Robillard steverobill...@gmail.com
 wrote:
  It might help to know why all the subterfuge what problem are you
  trying to solve? As a user I would be suspicious of any system that
  forwards me through a series of links and sends secret information.
  With all do respect it sounds like you are trying to proxy a limited
  resource or bypass a 3rd party subscription requirement.

  Steve

  -Original Message-
  From: google-appengine@googlegroups.com

  [mailto:google-appeng...@googlegroups.com] On Behalf Of r00723r0
  Sent: Wednesday, March 25, 2009 7:30 PM
  To: Google App Engine
  Subject: [google-appengine] Re: Manual Authentication

  I may have explained myself incorrectly. I need to log in from an
  invisible client without a web interface, and the login URL is unknown
  to the standalone client. The client needs to log in and send some data
 silently.

  The main problem is that the username and password are saved, so the
  user will not be manually logging in. Instead the client must be able
  to log in without a proprietary log in URL that Google provides.

  A possible solution:
  * The client connects to someapp.appspot.com/update/, which has only a
  login URL when a user is not logged in.
  * The client then connects to the URL and sends magical information to
  log in.
  * The login URL redirects back to the /update page, as it always does,
  and the Google App Engine program stores this visit as programmed.

  However, this solution is inelegant and annoying to program. Any
  better solutions?

  On Mar 25, 6:30 pm, Marzia Niccolai ma...@google.com wrote:
   Hi,

   Please see the information in our Google Accounts section which
   shows you how to request/require login and generate login/logout
   URLs:http://code.google.com/appengine/docs/python/users/

   -Marzia

   On Wed, Mar 25, 2009 at 11:43 AM, r00723r0 r0072...@gmail.com wrote:

I am writing a laptop theft recovery service. The client requests
/ update on the Google App Engine server, with user credentials,
through HTTPS every few minutes. The server stores the IP from
which the request was made and the time the request was made in
the user information database model. My question is as such: how
do I authenticate the user in the Google App Engine server? The
username and password are given through POST in the HTTP request
but I'd still need a login URL which the client cannot generate.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---