Tag: openid

App Engine – 在/ _ah / openid_verify上发生间歇性500错误

使用Google openidlogin我的应用程序时,出现间歇性错误。 他们发送的链接是http://www.example.com/_ah/login_redir?claimid=www.google.com/accounts/o8/id&continue=http://www.example.com/login2?returl%253Dhttp%25253A%25252F%25252Fwww.example.com%25252Ftest-list-8 。 然后当他们授予访问我的应用程序,有时有一个500错误的url: http://www.example.com/_ah/openid_verify?continue=http://www.example.com/login2?returl%3Dhttp%253A%252F%252Fwww.example.com%252Ftest-list-8%2523additem&gx.rp_st=AEp4C1sATcZr10BWADPx0hXZOeG49Vdr6GjYqvx83JXTTXjEFdqS8KaHIfZD3wmwTNl-wu8r7DMwoQMvWLpqgoV8RtAUigMMjw&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.mode=id_res&openid.op_endpoint=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fud&openid.response_nonce=2011-12-06T20%3A00%3A53ZGU1ZOot7AJ4DGg&openid.return_to=http%3A%2F%2Fwww.example.com%2F_ah%2Fopenid_verify%3Fcontinue%3Dhttp%3A%2F%2Fwww.example.com%2Flogin2%3Freturl%253Dhttp%25253A%25252F%25252Fwww.example.com%25252Ftest-list-8%252523additem%26gx.rp_st%3DAEp4C1sATcZr10BWADPx0hXZOeG49Vdr6GjYqvx83JXTTXjEFdqS8KaHIfZD3wmwTNl-wu8r7DMwoQMvWLpqgoV8RtAUigMMjw&openid.assoc_handle=AMlYA9W4FErBlE7i17Z-YVirs2a0eP_LEjoDRJDVgEq9FhOSKt8xq4HT&openid.signed=op_endpoint%2Cclaimed_id%2Cidentity%2Creturn_to%2Cresponse_nonce%2Cassoc_handle%2Cns.ext1%2Cext1.mode%2Cext1.type.attr0%2Cext1.value.attr0%2Cext1.type.auto2%2Cext1.value.auto2&openid.sig=b7TBbUBO0mgF26qCpAjkS0AYeX8%3D&openid.identity=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%3DAItOawkBkv0HezgbtJVspVv8hxIBizNbHP_4t_M&openid.claimed_id=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%3DAItOawkBkv0HezgbtJVspVv8hxIBizNbHP_4t_M&openid.ns.ext1=http%3A%2F%2Fopenid.net%2Fsrv%2Fax%2F1.0&openid.ext1.mode=fetch_response&openid.ext1.type.attr0=http%3A%2F%2Faxschema.org%2Fcontact%2Femail&openid.ext1.value.attr0=myemail%40gmail.com&openid.ext1.type.auto2=http%3A%2F%2Fwww.google.com%2Faccounts%2Fapi%2Ffederated-login%2Fid&openid.ext1.value.auto2=105848731220363187343 : http://www.example.com/_ah/openid_verify?continue=http://www.example.com/login2?returl%3Dhttp%253A%252F%252Fwww.example.com%252Ftest-list-8%2523additem&gx.rp_st=AEp4C1sATcZr10BWADPx0hXZOeG49Vdr6GjYqvx83JXTTXjEFdqS8KaHIfZD3wmwTNl-wu8r7DMwoQMvWLpqgoV8RtAUigMMjw&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.mode=id_res&openid.op_endpoint=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fud&openid.response_nonce=2011-12-06T20%3A00%3A53ZGU1ZOot7AJ4DGg&openid.return_to=http%3A%2F%2Fwww.example.com%2F_ah%2Fopenid_verify%3Fcontinue%3Dhttp%3A%2F%2Fwww.example.com%2Flogin2%3Freturl%253Dhttp%25253A%25252F%25252Fwww.example.com%25252Ftest-list-8%252523additem%26gx.rp_st%3DAEp4C1sATcZr10BWADPx0hXZOeG49Vdr6GjYqvx83JXTTXjEFdqS8KaHIfZD3wmwTNl-wu8r7DMwoQMvWLpqgoV8RtAUigMMjw&openid.assoc_handle=AMlYA9W4FErBlE7i17Z-YVirs2a0eP_LEjoDRJDVgEq9FhOSKt8xq4HT&openid.signed=op_endpoint%2Cclaimed_id%2Cidentity%2Creturn_to%2Cresponse_nonce%2Cassoc_handle%2Cns.ext1%2Cext1.mode%2Cext1.type.attr0%2Cext1.value.attr0%2Cext1.type.auto2%2Cext1.value.auto2&openid.sig=b7TBbUBO0mgF26qCpAjkS0AYeX8%3D&openid.identity=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%3DAItOawkBkv0HezgbtJVspVv8hxIBizNbHP_4t_M&openid.claimed_id=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%3DAItOawkBkv0HezgbtJVspVv8hxIBizNbHP_4t_M&openid.ns.ext1=http%3A%2F%2Fopenid.net%2Fsrv%2Fax%2F1.0&openid.ext1.mode=fetch_response&openid.ext1.type.attr0=http%3A%2F%2Faxschema.org%2Fcontact%2Femail&openid.ext1.value.attr0=myemail%40gmail.com&openid.ext1.type.auto2=http%3A%2F%2Fwww.google.com%2Faccounts%2Fapi%2Ffederated-login%2Fid&openid.ext1.value.auto2=105848731220363187343 continue= http://www.example.com/_ah/openid_verify?continue=http://www.example.com/login2?returl%3Dhttp%253A%252F%252Fwww.example.com%252Ftest-list-8%2523additem&gx.rp_st=AEp4C1sATcZr10BWADPx0hXZOeG49Vdr6GjYqvx83JXTTXjEFdqS8KaHIfZD3wmwTNl-wu8r7DMwoQMvWLpqgoV8RtAUigMMjw&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.mode=id_res&openid.op_endpoint=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fud&openid.response_nonce=2011-12-06T20%3A00%3A53ZGU1ZOot7AJ4DGg&openid.return_to=http%3A%2F%2Fwww.example.com%2F_ah%2Fopenid_verify%3Fcontinue%3Dhttp%3A%2F%2Fwww.example.com%2Flogin2%3Freturl%253Dhttp%25253A%25252F%25252Fwww.example.com%25252Ftest-list-8%252523additem%26gx.rp_st%3DAEp4C1sATcZr10BWADPx0hXZOeG49Vdr6GjYqvx83JXTTXjEFdqS8KaHIfZD3wmwTNl-wu8r7DMwoQMvWLpqgoV8RtAUigMMjw&openid.assoc_handle=AMlYA9W4FErBlE7i17Z-YVirs2a0eP_LEjoDRJDVgEq9FhOSKt8xq4HT&openid.signed=op_endpoint%2Cclaimed_id%2Cidentity%2Creturn_to%2Cresponse_nonce%2Cassoc_handle%2Cns.ext1%2Cext1.mode%2Cext1.type.attr0%2Cext1.value.attr0%2Cext1.type.auto2%2Cext1.value.auto2&openid.sig=b7TBbUBO0mgF26qCpAjkS0AYeX8%3D&openid.identity=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%3DAItOawkBkv0HezgbtJVspVv8hxIBizNbHP_4t_M&openid.claimed_id=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%3DAItOawkBkv0HezgbtJVspVv8hxIBizNbHP_4t_M&openid.ns.ext1=http%3A%2F%2Fopenid.net%2Fsrv%2Fax%2F1.0&openid.ext1.mode=fetch_response&openid.ext1.type.attr0=http%3A%2F%2Faxschema.org%2Fcontact%2Femail&openid.ext1.value.attr0=myemail%40gmail.com&openid.ext1.type.auto2=http%3A%2F%2Fwww.google.com%2Faccounts%2Fapi%2Ffederated-login%2Fid&openid.ext1.value.auto2=105848731220363187343 : http://www.example.com/_ah/openid_verify?continue=http://www.example.com/login2?returl%3Dhttp%253A%252F%252Fwww.example.com%252Ftest-list-8%2523additem&gx.rp_st=AEp4C1sATcZr10BWADPx0hXZOeG49Vdr6GjYqvx83JXTTXjEFdqS8KaHIfZD3wmwTNl-wu8r7DMwoQMvWLpqgoV8RtAUigMMjw&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.mode=id_res&openid.op_endpoint=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fud&openid.response_nonce=2011-12-06T20%3A00%3A53ZGU1ZOot7AJ4DGg&openid.return_to=http%3A%2F%2Fwww.example.com%2F_ah%2Fopenid_verify%3Fcontinue%3Dhttp%3A%2F%2Fwww.example.com%2Flogin2%3Freturl%253Dhttp%25253A%25252F%25252Fwww.example.com%25252Ftest-list-8%252523additem%26gx.rp_st%3DAEp4C1sATcZr10BWADPx0hXZOeG49Vdr6GjYqvx83JXTTXjEFdqS8KaHIfZD3wmwTNl-wu8r7DMwoQMvWLpqgoV8RtAUigMMjw&openid.assoc_handle=AMlYA9W4FErBlE7i17Z-YVirs2a0eP_LEjoDRJDVgEq9FhOSKt8xq4HT&openid.signed=op_endpoint%2Cclaimed_id%2Cidentity%2Creturn_to%2Cresponse_nonce%2Cassoc_handle%2Cns.ext1%2Cext1.mode%2Cext1.type.attr0%2Cext1.value.attr0%2Cext1.type.auto2%2Cext1.value.auto2&openid.sig=b7TBbUBO0mgF26qCpAjkS0AYeX8%3D&openid.identity=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%3DAItOawkBkv0HezgbtJVspVv8hxIBizNbHP_4t_M&openid.claimed_id=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%3DAItOawkBkv0HezgbtJVspVv8hxIBizNbHP_4t_M&openid.ns.ext1=http%3A%2F%2Fopenid.net%2Fsrv%2Fax%2F1.0&openid.ext1.mode=fetch_response&openid.ext1.type.attr0=http%3A%2F%2Faxschema.org%2Fcontact%2Femail&openid.ext1.value.attr0=myemail%40gmail.com&openid.ext1.type.auto2=http%3A%2F%2Fwww.google.com%2Faccounts%2Fapi%2Ffederated-login%2Fid&openid.ext1.value.auto2=105848731220363187343 returl% http://www.example.com/_ah/openid_verify?continue=http://www.example.com/login2?returl%3Dhttp%253A%252F%252Fwww.example.com%252Ftest-list-8%2523additem&gx.rp_st=AEp4C1sATcZr10BWADPx0hXZOeG49Vdr6GjYqvx83JXTTXjEFdqS8KaHIfZD3wmwTNl-wu8r7DMwoQMvWLpqgoV8RtAUigMMjw&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.mode=id_res&openid.op_endpoint=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fud&openid.response_nonce=2011-12-06T20%3A00%3A53ZGU1ZOot7AJ4DGg&openid.return_to=http%3A%2F%2Fwww.example.com%2F_ah%2Fopenid_verify%3Fcontinue%3Dhttp%3A%2F%2Fwww.example.com%2Flogin2%3Freturl%253Dhttp%25253A%25252F%25252Fwww.example.com%25252Ftest-list-8%252523additem%26gx.rp_st%3DAEp4C1sATcZr10BWADPx0hXZOeG49Vdr6GjYqvx83JXTTXjEFdqS8KaHIfZD3wmwTNl-wu8r7DMwoQMvWLpqgoV8RtAUigMMjw&openid.assoc_handle=AMlYA9W4FErBlE7i17Z-YVirs2a0eP_LEjoDRJDVgEq9FhOSKt8xq4HT&openid.signed=op_endpoint%2Cclaimed_id%2Cidentity%2Creturn_to%2Cresponse_nonce%2Cassoc_handle%2Cns.ext1%2Cext1.mode%2Cext1.type.attr0%2Cext1.value.attr0%2Cext1.type.auto2%2Cext1.value.auto2&openid.sig=b7TBbUBO0mgF26qCpAjkS0AYeX8%3D&openid.identity=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%3DAItOawkBkv0HezgbtJVspVv8hxIBizNbHP_4t_M&openid.claimed_id=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%3DAItOawkBkv0HezgbtJVspVv8hxIBizNbHP_4t_M&openid.ns.ext1=http%3A%2F%2Fopenid.net%2Fsrv%2Fax%2F1.0&openid.ext1.mode=fetch_response&openid.ext1.type.attr0=http%3A%2F%2Faxschema.org%2Fcontact%2Femail&openid.ext1.value.attr0=myemail%40gmail.com&openid.ext1.type.auto2=http%3A%2F%2Fwww.google.com%2Faccounts%2Fapi%2Ffederated-login%2Fid&openid.ext1.value.auto2=105848731220363187343 http://www.example.com/_ah/openid_verify?continue=http://www.example.com/login2?returl%3Dhttp%253A%252F%252Fwww.example.com%252Ftest-list-8%2523additem&gx.rp_st=AEp4C1sATcZr10BWADPx0hXZOeG49Vdr6GjYqvx83JXTTXjEFdqS8KaHIfZD3wmwTNl-wu8r7DMwoQMvWLpqgoV8RtAUigMMjw&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.mode=id_res&openid.op_endpoint=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fud&openid.response_nonce=2011-12-06T20%3A00%3A53ZGU1ZOot7AJ4DGg&openid.return_to=http%3A%2F%2Fwww.example.com%2F_ah%2Fopenid_verify%3Fcontinue%3Dhttp%3A%2F%2Fwww.example.com%2Flogin2%3Freturl%253Dhttp%25253A%25252F%25252Fwww.example.com%25252Ftest-list-8%252523additem%26gx.rp_st%3DAEp4C1sATcZr10BWADPx0hXZOeG49Vdr6GjYqvx83JXTTXjEFdqS8KaHIfZD3wmwTNl-wu8r7DMwoQMvWLpqgoV8RtAUigMMjw&openid.assoc_handle=AMlYA9W4FErBlE7i17Z-YVirs2a0eP_LEjoDRJDVgEq9FhOSKt8xq4HT&openid.signed=op_endpoint%2Cclaimed_id%2Cidentity%2Creturn_to%2Cresponse_nonce%2Cassoc_handle%2Cns.ext1%2Cext1.mode%2Cext1.type.attr0%2Cext1.value.attr0%2Cext1.type.auto2%2Cext1.value.auto2&openid.sig=b7TBbUBO0mgF26qCpAjkS0AYeX8%3D&openid.identity=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%3DAItOawkBkv0HezgbtJVspVv8hxIBizNbHP_4t_M&openid.claimed_id=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%3DAItOawkBkv0HezgbtJVspVv8hxIBizNbHP_4t_M&openid.ns.ext1=http%3A%2F%2Fopenid.net%2Fsrv%2Fax%2F1.0&openid.ext1.mode=fetch_response&openid.ext1.type.attr0=http%3A%2F%2Faxschema.org%2Fcontact%2Femail&openid.ext1.value.attr0=myemail%40gmail.com&openid.ext1.type.auto2=http%3A%2F%2Fwww.google.com%2Faccounts%2Fapi%2Ffederated-login%2Fid&openid.ext1.value.auto2=105848731220363187343 500错误甚至不出现在我的日志中。 这似乎发生了约5-10%的login。

OpenID Java

在Java中是否有openID实现? 我想在tomcat应用程序中使用它。

使用JWT进行跨域身份validation的单点loginstream程

网上有很多关于使用JWT( Json Web Token )进行authentication的信息。 但是,在多域环境中使用JWT令牌进行单一login解决scheme时,我仍然没有find明确的解释。 我为一家在不同主机上有很多网站的公司工作。 我们使用example1.com和example2.com 。 我们需要一个单一的login解决scheme,这意味着如果用户在example1.com上进行身份validation,我们希望他也可以自动在example2.com上进行身份validation。 使用OpenId Connectstream程,我知道想要在example1.com上进行身份validation的用户将首先被redirect到身份validation服务器 (或OP :“OpenId Provider”)。 用户在该服务器上进行身份validation,然后使用签名的JWT令牌将其redirect回原始的example1.com站点。 (我知道还有一个stream程会返回一个中间标记 ,稍后它可以交换为真正的JWT标记,但我不认为这对我们是必需的)… 所以现在用户又回到了example1.com并通过身份validation! 他可以发出请求,将JWT令牌传递给Authentication头,服务器可以validation已签名的JWT,因此能够识别用户。 太好了! 第一个问题: JWT令牌应该如何存储在客户端上? 还有很多关于这方面的信息,人们似乎认为使用Web Storage是一种好方法,而不是老式的cookies 。 我们希望JWT在浏览器重新启动之间保持持久性,因此我们使用Local Storage ,而不是Session Storage … 现在,用户可以重新启动浏览器,只要JWT令牌没有过期,他仍然会在example1.com上进行身份validation! 另外,如果example1.com需要向我们的另一个域发出Ajax请求,我知道configurationCORS将允许。 但是我们的主要用例并不是跨域请求,它有一个单一的login解决scheme ! 所以主要的问题是: 现在,如果用户访问example2.com并且希望他使用他已有的JWT令牌进行身份validation,那么stream程应该是什么? Local Storage似乎不允许跨域访问,所以此时浏览器无法读取JWT令牌向example2.com发出请求! 应该 : 用户被redirect到authentication服务器了吗? 当用户对example1.com进行身份validation时 , 身份validation服务器可能已经为用户设置了一个cookie,因此example2.com的这个新的身份validation请求可以使用该cookie来查看该用户是否已经过身份validation,并立即将其redirect回example2.com与相同的JWT令牌? 或者example2.com上的浏览器是否可以访问JWT令牌而无需再次访问authentication服务器 ? 我看到有跨存储解决scheme ,但那些广泛使用? 他们是跨域SSO环境的build议解决scheme吗? 我们不想要任何花哨的东西,我们会对最常用的解决scheme感到满意!

如何添加从Google,Facebook,雅虎等社会login服务到我的网站?

我想添加以下button到我的网站,为用户提供更多的服务,如谷歌,脸书等login选项 请回答以下问题: 我怎样才能免费的添加这样的服务? (请注意,我不想使用像Janrain这样的付费服务) 如何将存储在帐户中的用户的用户信息(如电子邮件,电话号码)存储到我的数据库中? 请提供可以使用的任何链接/库。 我很感激您可以提供的任何其他信息。 谢谢!

你如何在本地开发OpenID

我正在开发一个使用OpenID来validation用户的网站(在Django中)。 由于我目前只在本地机器上运行,所以无法使用networking上的某个OpenID提供程序进行身份validation。 所以我想我需要运行一个本地OpenID服务器,只需让我input一个用户名,然后将其传递回我的主应用程序。 这样的OpenID dev服务器是否存在? 这是最好的方式去做呢?

OpenID:试图从Google OP获取电子邮件地址

我正在使用dotnetopenauth 3.2来实现Openid,并且无法弄清楚如何让Google通过Claim Response中的电子邮件地址。 我知道Google不支持简单的注册,但是我无法确定他们的支持。 对这个问题的警告是,我刚开始学习OpenID,我知道我没有牢牢把握规范,我认为这导致了我的困惑。 任何帮助,将不胜感激!

oAuth ASP.NET成员资格提供程序

是否有推荐的资源来实现使用oAuth的自定义成员资格提供程序? 目标是让用户使用他们现有的oAuth凭证login到我的ASP.NET MVC应用程序。 用户通过身份validation后,我想利用内置的ASP.NET授权function。 谢谢。

REST Web服务的身份validation

我开始devise一个REST Web服务,并且对最佳的身份validation方法还不清楚。 该服务将允许个人用户访问/pipe理他们自己的数据,因此需要某种types的用户authentication。 我一直在看这些选项: OAuth的 OAuth似乎更多是关于授权而不是authentication。 我打算在服务内部原生地处理授权,所以我不在寻找解决scheme。 但是,OAuth是否也适用于身份validation? OpenID的 OpenID当然提供了一个authentication解决scheme,但是这更多的是允许用户使用他们的第三方证书(Google,Yahoo等)。虽然我想支持这个,但这不是我主要关心的,我会绝对允许用户注册本机凭据(电子邮件/密码)。 HTTP基本authentication 这很容易实现,但我的理解是,这可能不是一个非常安全的方法。 此外,它似乎需要交换每个访问凭据,但我宁愿用户authentication一次,然后通过会话令牌继续访问。 自定义authentication 基本上,滚动我自己的login/令牌生成服务,并要求一个有效的令牌访问所有其他资源(显然,一切都会通过SSL)。 除了创buildWeb服务外,我还将构build一个代表用户使用这些服务的客户端(Web)应用程序,但我不希望应用程序必须存储用户信息/凭证等。 所以,这样的事情: 用户(使用电子邮件/密码或第三方凭据进行身份validation) – > Web应用程序(使用应用程序ID进行身份validation) – > Web服务 再次,我想允许其他人也build立客户,所以中间层可以是任何第三方应用程序: 用户(使用电子邮件/密码或第三方凭据进行身份validation) – >第三方应用程序(使用应用程序ID进行身份validation) – > Web服务 我的最高要求是: 安全(显然) 原生凭据 支持第三方凭证(Google,Yahoo,LinkedIn等) 支持多个客户端(networking应用程序,手机应用程序,第三方应用程序等) 客户端凭据(只是一个应用程序ID?) login会话过期 授权是不需要的 所以,我的问题是,基于上述(请让我知道这是否太模糊),有没有一个“最好”的方法? OAuth或OpenID是否合适,还是我这样做太复杂,而应该推出我自己的身份validation? 编辑: 我想我将需要实施以下内容: 1)原生凭证/令牌(基于SSL的HTTP基本身份validation?) 2)OpenID“依赖方”允许我的api使用其他地方托pipe的OpenID(即“支持第三方凭证”) 3)OAuth“消费者”,允许我的API访问第三方服务(如访问用户的LinkedIn个人资料)。 4)OpenID“提供者”,允许用户在其他地方使用api的本地ID(可选) 5)OAuth“供应商”,允许第三方应用程序代表用户访问我的api(可选) 这似乎是正确的,还是我做这比它需要更复杂?

与所有主要供应商实施单点login的最佳方法?

我已经做了很多关于这个话题的研究,并且自己实现了很多的解决scheme。 包括OpenID,Facebook Connect(使用旧的Rest API和新的graphicsOAuth 2.0 API),使用twitterlogin(目前为止我已经升级到完全限定的OpenID),等等… 但是我仍然缺less的是一个完美的解决scheme。 在我的研究中,我偶然发现了一些有趣的项目: Janrain(原RPX) – 商业解决scheme Gigya – 一个免费的,但外部托pipe的解决scheme与JavaScript和restapis AnyOpenID – 为客户提供免费的解决scheme,网站商业 但是我不想依赖外部提供商,我也想要一个免费的解决scheme,所以我不受限于实施。 我也看到开发人员一个接一个地按照供应商的指示执行一项服务,并为所有事情build立模型和数据库表。 当然这会起作用,但它是一大堆工作,总是需要你的应用程序的发展和变化等。 我正在寻找的是一个抽象层 ,将所有的服务都集成到一个可以集成到我的网站的标准中。 一旦出现一个新的服务,我只想添加一个模型来处理那个特定提供者的抽象,这样我就可以无缝地把它集成到我的应用程序中。 或者更好的是,find一个已经可以下载的解决scheme。 理想情况下,这个抽象服务将独立于我的应用程序托pipe,因此可用于多个应用程序并独立升级。 上述三个解决scheme中的最后一个看起来很有希望。 一切都只是移植到一个合成的OpenID,而网站必须实现OpenID。 过了一会儿,我发现Django socialauth ,一个基于python的Django Web框架authentication系统。 但它看起来像上面描述的操作,我认为这是Stackoverflow使用(或至less一些修改后的叉…)相同的login系统。 我下载了它,试图设置它,看看它是否可以作为一个独立的解决scheme,但我没有运气,因为我不是很喜欢python。 我会喜欢基于PH​​P的解决scheme。 所以在这个长文本之后,我的问题恰恰是: 你将如何实现SSO,比移植一切都有更好的想法,并以OpenID为基础? 那有什么优点和缺点? 你知道现有的解决scheme吗? 最好开源。 我希望这个问题不是太主观,先谢谢了。 更新:我的结论是,build立一个代理/包装或你可能称之为Facebook,将其移植到一个OpenID,所以它成为一个OpenID端点/提供者将是最好的select。 所以我就是这么做的。 请参阅下面的答案。 我添加了赏金来获得反馈/讨论。 Maby我的方法并不如我现在所想的那样好!

如何创build用户并将其添加到Jenkins中的组以进行身份​​validation?

我select使用“jenkins自己的用户数据库”安全领域的用户login,因为我不能在我的公司使用LDAP。 而当您决定将主机名或端口号更改为其他内容时,Google的OpenID有问题。 为了我的安全,我使用“基于项目的matrix授权策略”模式。 但我似乎无法创build自己的组,并将用户添加到组中以pipe理权限。