Another option for .NET is to leverage the Windows Identity Framework for 
authentication/authorization. You can federate with win-sts.stanford.edu and 
indicate a homerealm of idp.stanford.edu to access WebAuth. I have not actually 
tried building a client application using active profile - you may have to 
terminate the authentication at win-sts (Stanford's Active Directory)

-Ross

-----Original Message-----
From: webauth-info-boun...@lists.stanford.edu 
[mailto:webauth-info-boun...@lists.stanford.edu] On Behalf Of Russ Allbery
Sent: Tuesday, July 17, 2012 11:21 AM
To: Saray, Ray
Cc: webauth-info@lists.stanford.edu
Subject: Re: WebAuth and Client Applications

"Ray Saray" <rsa...@stanford.edu> writes:

> We are creating a client application in .NET that we eventually want to
> allow users to login to if they have a SUNetID. We were wondering what
> possible solutions there might be to allow this authentication:

> .  Does WebAuth have an OAuth solution (similar to what Facebook,
> Google, etc. expose)? The .NET framework integrates nicely with this and
> can bring up a browser within the client to get user information.

Not currently.  Something that we're investigating for the long term is to
use OAuth 2.0 for the WebAuth protocol, but this is at least a year away.
(But it is definitely something that we're looking at, precisely to
support this use case.)

> .  We are hosting a remote service at Stanford for this client
> application to hit. Is there any service exposed by WebAuth (or
> potential access to LDAP) that would allow us to authenticate a username
> and password without needing to go through a web page redirect?

I'm afraid not.  Interactions with WebAuth via any mechanism other than a
browser are not supported.  There are some people who are using various
workarounds, primarily for monitoring, but they're not something on which
one should build an application that needs to be robust.

Our recommendation for the time being for authenticating a mobile
application or other similar client applications to a web server is to not
use WebAuth for that purpose.  WebAuth is designed from the start for
interaction with a browser; attempting to authenticate to WebAuth with a
non-browser is just going to cause you pain.  Instead, you should use a
different authentication scheme such as client certificates or HTTP
Negotiate-Auth that is designed for non-interactive authentication.

If you're starting from .NET, then I recommend looking at HTTP
Negotiate-Auth, which is natively supported on Windows platforms and which
uses the user's existing Windows single sign-on credentials.  I'm happy to
provide more details if you want to explore that approach and can let me
know what the server environment looks like.

This will hopefully change in the future.  My current tentative plan for a
WebAuth 5.x protocol is to rework the protocol so that it's a profile of
OpenID Connect built on top of OAuth 2.0, which would allow us to reuse
quite a bit of existing infrastructure and make it much easier for
applications to interact with the WebAuth system.  But there are
significant security challenges (the security standards of OpenID Connect
are not yet up to what we want to provide with WebAuth) and significant
development will be required to reach that goal, so it's not something for
which I can provide a time frame.

-- 
Russ Allbery <ea...@windlord.stanford.edu>
Technical Lead, ITS Infrastructure Delivery Group, Stanford University


Reply via email to