Can non-web applications use OpenID?

2019-01-28 00:06发布

How can I make my desktop application into an OpenID relying party?

4条回答
够拽才男人
2楼-- · 2019-01-28 00:37

Have a look at this question, it looks to me that OAuth can do this for you.

查看更多
Rolldiameter
3楼-- · 2019-01-28 00:44

Don't do it.

Even an attempt to do so shows a fundamental lack of understanding in the security model that OpenID offers. You have to ask yourself what the password that you would otherwise use for your desktop app is protecting. Is it protecting assets on the local machine itself? If so, OpenID is useless because it would be a simple matter to spoof the network such that I could hack my way into the desktop app without owning the OpenID. You're wide open to user identify spoofing. Are you trying to protect network assets? OpenID fails again, since it doesn't authorize your desktop app to access those network assets, suggesting that some other authentication is going on behind OpenID so once again you're not adding any value.

OAuth is the protocol suited to allow your desktop app to access and protect network resources. If you're protecting local assets on the desktop computer, local encryption is the only way to go.

查看更多
ら.Afraid
4楼-- · 2019-01-28 00:49

It seems to me that you should present a small web browser window for the authentication to be completed. The interaction would not be going through your code.

I would not suggest using web scrapers to do this. In doing so, you place your code in between the user's server and the user, which is a breach of the covenant that the user's password is not seen by the relying party.

OAuth is the right technology to use for a desktop application, but it doesn't use the existing password ecosystem that OpenID has, which was not a part of the OP's question.

查看更多
迷人小祖宗
5楼-- · 2019-01-28 00:50

Since OpenID has a specified protocol, it will either work all the time (assuming providers are conforming) or not at all. Additionally, since the OpenID protocol (at least the authentication bits, see the specification) consists of simple HTTP requests, you could implement the protocol in a desktop application assuming you know how to make such requests.

It is generally considered a bad idea though, since there are better technologies (OAuth) and it disrupts the user experience (being different from OpenID in a browser — see OpenID For Desktop Applications: How? When?).

Further reading: OpenID for Desktop Clients

查看更多
登录 后发表回答