标签: single-sign-on

对错:跨域SSO始终需要第三方身份提供商

我目前有几个网站位于不同的域名:

www.app1.com

www.app2.com

www.app3.com

每个都有自己的身份验证机制 - 一些通过Web服务查询活动目录,其他人有自己的用户数据库.

目标是通过某些技术或产品进行单点登录,这些技术或产品不需要用户在跨域访问页面时重新输入密码.

问题:回顾SAML,跨域SSO解决方案似乎总是需要第三方身份提供商来验证用户,例如:

www.my-master-login.com

这是真的?

如果是这样,是否需要更新每个现有网站,以便其身份验证由第三方网站处理?

architecture authentication login single-sign-on

3
推荐指数
1
解决办法
1531
查看次数

用于什么是"单点登录"表以及为什么需要此列列表?

我正在查看一个模式,并试图弄清楚这个表可以用于什么:

CREATE TABLE "single_sign_ons" 
"token" VARCHAR(64) NOT NULL, 
"ip" VARCHAR(32) NOT NULL, 
"expired_at" DATETIME NOT NULL, 
"one_time" VARCHAR(64), 
"created_at" DATETIME, 
"updated_at" DATETIME, 
"user_id" INTEGER, 
PRIMARY KEY("token"));
Run Code Online (Sandbox Code Playgroud)

什么是"单点登录",为什么此表的作者为此目的包含这些列?

database single-sign-on

3
推荐指数
1
解决办法
1273
查看次数

使用SAML 2协议的WIF /使用CAS联合AD FS 2.0

我正在尝试使用WIF和AD FS 2.0实现基于声明的身份的Web SSO.现在我有一个现有的ASP.Net应用程序,它将身份验证委托给AD FS 2.0服务器并信任发布的安全令牌.这很好用.

但是,在组织中存在支持SAML 2协议的现有JA-SIG中央认证服务(CAS)服务器.我想用现有的CAS服务替换AD FS 2.0.

在我的理解中,WIF使用WS-Federation,它就像围绕SAML令牌的容器.是否可以使用普通的SAML 2协议及其绑定(重定向或POST)?如果那是不可能的(我猜),第二种选择可能是使用联邦身份并将AD FS 2.0与CAS联合.那可能吗?网上几乎没有关于这方面的信息.

谢谢 :-)

cas wif single-sign-on adfs2.0

3
推荐指数
1
解决办法
4023
查看次数

使用Java实现的Kerberos SSO

我正在尝试创建一个JAVA程序,它将获取我的Windows用户凭据,然后连接到我的unix盒上的kerberos并进行身份验证并允许我使用服务,例如LDAP服务器.

我发现的所有示例都倾向于在运行中询问我的密码,我不希望这样 - 我希望能够运行该程序并且'如果通过魔法'即可通过kerberos认证.

任何链接和示例表示赞赏.

java windows-xp kerberos gssapi single-sign-on

3
推荐指数
1
解决办法
2623
查看次数

使用WSSecurityTokenSerializer读取在.Net中验证SAML断言的问题

我有一个SAML断言,我希望在.Net中使用WSSecurityTokenSerializer.

尽管存在一些问题,我还是拥有了密钥链和SAML XML .

首先,我从HTTPS POST获得SAML断言:

// spec says "SAMLResponse=" 
string rawSamlData = Request["SAMLResponse"];

// read the base64 encoded bytes
byte[] samlData = Convert.FromBase64String(rawSamlData);

// read back into a UTF string
string samlAssertion = Encoding.UTF8.GetString(samlData);

// get the SAML data in an XML reader
var assertionPostStream = new StringReader(samlAssertion);
var reader = XmlReader.Create(assertionPostStream);
Run Code Online (Sandbox Code Playgroud)

然后我得到了我的IdP提供的密钥:

// get the key data
byte[] certificateData = System.IO.File.ReadAllBytes("myKeys.p7b");

// decode the keys
var cms = new SignedCms(SubjectIdentifierType.IssuerAndSerialNumber);
cms.Decode(certificateData);

// we have …
Run Code Online (Sandbox Code Playgroud)

.net x509certificate single-sign-on saml-2.0 pkcs#7

3
推荐指数
1
解决办法
6403
查看次数

这个SAML SSO实现是否正确?

我有一个网站说www.e1.com.www.e1.com是服务提供商.每当我点击其中的服务时,我都会被重定向到身份提供商,比如www.e2.com.在此之前,在服务提供商(www.e1.com)中,我将检查是否为用户设置了任何cookie.这是第一次没有cookie,所以它会发送空的SessionId值.因此,我发送SAML请求到www.e2.com并且没有id(因为没有设置cookie .Cookie包含Id)

现在在www.e2.com ieIn身份提供商,我将检查www.e1.com是否已发送任何Id值.如果为null,我将创建会话ID并将其存储在数据库中(在www.e2.com中).然后我将浏览器重定向到我的身份验证页面,其中将询问用户的姓名和密码,因此他将进行身份验证.如果身份验证成功,我将使用包含会话ID的SAML响应将浏览器重定向到服务提供商(www.e1.com).

现在在Service Provider中,SessionId值将存储在Cookie中,浏览器将被重定向到消费者服务页面(用户想要访问的服务页面).

现在,如果同一用户想要从同一服务提供商(在会话中)访问某些其他服务,浏览器显然会在Cookie中发送SessionId以及请求SAML.身份提供者将检查其数据库中的SessionId值,如果它在其数据库中,那么它将直接访问用户的服务而不输入登录凭证,因为用户已经为会话进行了身份验证.

这是使用SAML实现单点登录的正确方法吗?或者
如果这种方法有缺陷,你能解释一下这些缺陷吗?

提前致谢 :)

saml single-sign-on

3
推荐指数
1
解决办法
6091
查看次数

不同平台的两个网站之间的SSO

我有一个要求,我需要在两个不同的网站之间实施SSO.

其中一个网站称www.abc.com是使用ASP.NET编写的,并且托管在IIS 7.0上.第二个网站称www.xyz.com是使用PHP编写的,并使用Apache Web服务器.这两个网站都使用不同的数据库,并使用不同的算法来验证用户.

我不能使用第三方SSO,因为这意味着要更改两个网站的身份验证.想知道这是否可行,如果是,那该方法应该是什么?

提前致谢...

single-sign-on

3
推荐指数
1
解决办法
6497
查看次数

生成Shibboleth SP元数据

我正在尝试在本地运行的应用程序(在localhost上)上配置Shibboleth SSO.我已按照所有说明操作并配置了我的shibboleth2.xml文件,但是在访问以下链接时遇到了麻烦http://127.0.0.1:8080/Shibboleth.sso/Metadatahttp://127.0.0.1/Shibboleth.sso/Metadata

我也试过了http://127.0.0.1/MyAppName/Shibboleth.sso/Metadata,但也没用!

我错过了什么吗?谁能帮我解决这个问题?

谢谢.

metadata shibboleth single-sign-on

3
推荐指数
1
解决办法
1万
查看次数

Ping Federate:单点登录身份验证失败

我在实现Ping Federate时遇到了这个问题

Error - Single Sign-On
Single sign-on authentication was unsuccessful (reference # TAELHKAD).
Please contact your system administrator for assistance regarding this error.
Partner: localhost:default:entityId
Target Resource: http://sp-connection.com 
Run Code Online (Sandbox Code Playgroud)

但服务器日志不显示任何错误消息/指示:

16:32:32,854 DEBUG [IntegrationControllerServlet] GET: https://localhost:9031/idp/startSSO.ping
16:32:32,856 DEBUG [IdpAdapterSupportBase] IdP Adapter Selection disabled, performing legacy adapter selection.
16:32:32,859 DEBUG [InterReqStateMgmtMapImpl] Object removeAttr(key: null, name: NUMBER_OF_ATTEMPTS): null
16:32:32,860 DEBUG [AttributeMap] Ignoring attempt to add null value to attribute map for context.TargetResource
16:32:32,860 DEBUG [AttributeMapping] Source attributes:{not-before=2014-05-26T10:47:32Z, authnContext=urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified, subject=joe, userId=joe, context.AuthenticationCtx=urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified, context.ClientIp=127.0.0.1, not-on-or-after=2014-05-26T10:52:32Z, …
Run Code Online (Sandbox Code Playgroud)

single-sign-on pingfederate

3
推荐指数
1
解决办法
7602
查看次数

在使用Google Apps作为身份提供者时如何配置“单一注销”?

Google文档所述您可以将Google Apps用作SAML 2.0 IdP。IdP元数据包含SSO的URL,但不包含SLO URL:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="https://accounts.google.com/o/saml2?idpid=XXXXXXXX" validUntil="xxxxxxx">
  <md:IDPSSODescriptor WantAuthnRequestsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
    <md:KeyDescriptor use="signing">
      <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <ds:X509Data>
      <ds:X509Certificate>....</ds:X509Certificate>
    </ds:X509Data>
      </ds:KeyInfo>
    </md:KeyDescriptor>
    <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>
    <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://accounts.google.com/o/saml2/idp?idpid=XXXXXXXXX"/>
    <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"     Location="https://accounts.google.com/o/saml2/idp?idpid=XXXXXXXXX"/>
  </md:IDPSSODescriptor>
</md:EntityDescriptor>
Run Code Online (Sandbox Code Playgroud)

尝试仅对SLO使用相同的URL会导致Google错误:

Error parsing the request, malformed_request: The SAML request is malformed. That’s all we know.
Run Code Online (Sandbox Code Playgroud)

当然,您可以重定向到https://accounts.google.com/logout,但这只会结束Google会话。

Google文档中未提及SLO。支持吗?

google-apps single-sign-on saml-2.0 google-sso

3
推荐指数
1
解决办法
1419
查看次数