Facebook是OpenID提供商吗?我知道他们是OpenID的支持者,但他们是否允许人们通过他们的Facebook凭证通过OpenID与其他网站进行身份验证?
我有一个让我发疯的问题.我正在尝试修改openid-selector以支持facebook.我正在使用RPXNow作为我的提供者,因此它要求将表单提交给与标准不同的URL.
例如.RpxNow要求我像这样设置我的表单:
<form action="https://wikipediamaze.rpxnow.com/openid/start?token_url=...">
这适用于除Facebook和Myspace之外的所有提供商.那些需要将表单发布到不同的URL,如下所示:
<form action="https://wikipediamaze.rpxnow.com/facebook/start?token_url=...">
和
<form action="https://wikipediamaze.rpxnow.com/myspace/start?token_url=...">
open id选择器在表单上有一堆按钮,每个按钮代表openid提供程序.我要做的是检测点击Facebook或Myspace按钮的时间,并在提交前更改表单上的操作.然而,它不起作用.这是我的代码.
我尝试了几种具有相同"不支持"异常的变体
$("#openid_form").attr("action", form_url)
document.forms[0].action = form_url
Run Code Online (Sandbox Code Playgroud)
有什么建议?
更新
以下是有关代码的更多详细信息.为简洁起见,我省略了一些.我唯一做的是将Facebook部分添加到"providers_large"对象(成功地将徽标添加到网站),而不是提供识别用户的URL,我正在创建一个名为"form_url"的属性,是我想要设置我的表单的动作.如果您查看标题"提供者图像点击",您将看到我在哪里检查属性"form_url"的存在,并使用jQuery更改操作并提交表单.但是,当我在调试模式中单步执行JavaScript时,它告诉我这是一个无效的操作.
var providers_large = {
google: {
name: 'Google',
url: 'https://www.google.com/accounts/o8/id'
},
facebook: {
name: 'Facebook',
form_url: 'http://wikipediamaze.rpxnow.com/facebook/start?token_url=http://www.wikipediamaze.com/Accounts/Logon'
},
};
var providers_small = {
myopenid: {
name: 'MyOpenID',
label: 'Enter your MyOpenID username.',
url: 'http://{username}.myopenid.com/'
},
livejournal: {
name: 'LiveJournal',
label: 'Enter your Livejournal username.',
url: 'http://{username}.livejournal.com/'
},
flickr: {
name: 'Flickr',
label: 'Enter your Flickr username.',
url: 'http://flickr.com/{username}/'
}, …Run Code Online (Sandbox Code Playgroud) 我选择使用"Jenkins自己的用户数据库"安全领域进行用户登录,因为我无法在公司中使用LDAP.当您决定将主机名或端口号更改为其他内容时,Google的OpenID会出现问题.
我使用"基于项目的矩阵授权策略"架构来保护我的安全.
但我似乎无法创建自己的组,并将用户添加到组以管理权限.
关于OpenID,你看到了一点(在Geek社区中).这似乎是一个好主意.我正在开发一个网站,针对的是一些不那么讨厌的观众(但也不是妈妈和流行音乐节目),所以我不得不怀疑OpenID对某些观众来说是否"太难"了.
你怎么看?除此之外,还有其他技术或非技术原因不使用OpenID吗?
我正在创建一个Web应用程序,它将使用OpenID登录和OAout令牌与Youtube.我目前正在数据库中以纯文本格式存储OpenID标识和OAuth令牌/令牌密钥.
将这些值存储为纯文本是否不合适?我可以对OpenID标识符使用单向加密,但我不知道是否有必要.对于OAuth令牌,我需要使用双向加密,因为我的应用程序依赖于获取某些用途的会话令牌.
是否有必要加密OpenID身份?有人可以使用它来访问用户的帐户吗?
在我的网站上,我想允许用户使用Google帐户登录.我打算使用openid,但我想允许使用google登录,因为它有更多好处.我曾经注意到一些网站能够使用google(gmail)帐户和IIRC登录,虽然他们不支持openID(但我可能错了).
如何实施"使用谷歌登录"?
IdentityServer支持在Flows枚举中定义并为客户端设置的不同OpenId Connect流.还有每种类型的流量,并在文档给他们很多的参考样本,但我找不到什么流是一个简单的定义列表的文件,如果他们是太明显言传.但我想他们不是.您能告诉我们这些差异的更多信息,也许我们可以将其添加到文档中吗?
那么什么是:隐式流,资源所有者密码凭证流,授权代码流,客户端凭证流,自定义授权流和混合流?还有哪些是OAuth流,哪些是OpenID Connect流?
谢谢!
openid oauth-2.0 thinktecture-ident-server openid-connect identityserver3
根据我使用OpenID的经验,我看到了一些重要的缺点:
向站点添加单点故障
即使检测到,也不是站点可以修复的故障.如果OpenID提供商停机三天,该网站有哪些追索权允许其用户登录并访问他们拥有的信息?
将用户带到其他站点内容以及每次登录到您的站点时
即使OpenID提供程序没有错误,也会将用户重定向到其站点进行登录.登录页面包含内容和链接.因此,实际上有可能将用户从网站上拉下来,从而进入互联网兔子洞.
为什么我要将用户发送到其他公司的网站?
[注意:我的提供商不再这样做,似乎已解决了这个问题(目前).]
为注册添加非常重要的时间要注册
网站,新用户必须阅读新标准,选择提供商并注册.标准是技术人员应该同意的,以使用户体验无摩擦.它们不是应该吸引用户的东西.
这是一个网络钓鱼者的梦想
OpenID是非常不安全的,并且当他们登录时很容易窃取该人的ID.[取自David Arno的答案 ]
对于所有的缺点,一个好处是允许用户在互联网上登录更少.如果某个网站已选择加入OpenID,则需要该功能的用户可以使用该功能.
我想了解的是:
网站对OpenID 强制要求有什么好处?
我正在开发一个ASP.NET MVC应用程序,我想使用OpenId.
什么是最好的选择?
有谁知道StackOverflow使用什么?Login UI是自定义开发的,还是由API /服务提供的?
我开始设计REST Web服务,并且不清楚最佳的身份验证方法.该服务将允许个人用户访问/管理他们自己的数据,因此需要某种类型的用户身份验证.我一直在看这些选项:
OAuth似乎更多的是授权而不是身份验证.我计划在服务中本地处理授权,所以我不是在寻找解决方案.但是,OAuth是否也适用于身份验证?
OpenID当然提供了身份验证的解决方案,但这更适合允许用户使用他们的第三方凭据(谷歌,雅虎等)虽然我想支持这一点,但这不是我主要关注的问题,我会绝对允许用户使用本机凭据(电子邮件/密码)注册.
这很容易实现,但我的理解是,这可能不是一个非常安全的方法.此外,似乎需要为每次访问交换凭据,但我更希望用户进行一次身份验证,然后通过会话令牌继续访问.
基本上,滚动我自己的登录/令牌生成服务,并需要一个有效的令牌来访问所有其他资源(显然,一切都将通过SSL).
除了创建Web服务之外,我还将构建一个代表用户使用这些服务的客户端(Web)应用程序,但我不希望应用程序必须存储用户信息/凭据等.所以,像这样:
用户(使用电子邮件/密码或第三方凭据进行身份验证) - > Web应用程序(使用应用程序ID进行身份验证) - > Web服务
而且,我想让其他人也建立客户端,所以中间层可以是任何第三方应用程序:
用户(使用电子邮件/密码或第三方凭据进行身份验证) - >第三方应用程序(使用应用程序ID进行身份验证) - > Web服务
我的顶级要求是:
所以,我的问题是,基于上述情况(如果这太模糊,请告诉我),是否有"最佳"方法?OAuth或OpenID是否合适,或者我是否过于复杂,而应该只使用自己的身份验证?
编辑:
我想我需要实现以下内容:
1)原生凭证/令牌(通过SSL进行HTTP基本身份验证?)
2)OpenID"依赖方"允许我的api使用其他地方托管的OpenID(即"支持第三方凭证")
3)OAuth"Consumer"允许我的api访问第三方服务(比如访问用户的LinkedIn个人资料).
4)一个OpenID"提供者",允许人们在别处使用api的本地ID(可选)
5)OAuth"提供商"允许第三方应用代表用户访问我的API(可选)
这看起来是对的,还是我让它变得比它需要的更复杂?
openid ×10
security ×3
oauth ×2
asp.net-mvc ×1
cross-domain ×1
database ×1
encryption ×1
facebook ×1
gmail ×1
google-oauth ×1
hudson ×1
jenkins ×1
jquery ×1
ldap ×1
login ×1
oauth-2.0 ×1
rest ×1
web-services ×1