标签: single-sign-on

如何使用 OAuth/SAML 协议在 asp.net mvc 中实现单点登录 (SSO)

如何使用 OAuth/SAML 协议在 asp.net mvc 5 应用程序中实现单点登录 (SSO),而不是使用表单身份验证。

c# single-sign-on oauth-2.0 asp.net-mvc-5

5
推荐指数
0
解决办法
998
查看次数

Okta 登录小部件检查用户是否经过身份验证

我正在将登录小部件集成到音乐商店示例中。使用小部件我可以登录,成功验证后我将被重定向到登录页面。(使用示例页面中的代码http://developer.okta.com/docs/guides/okta_sign-in_widget.html#creating-an-html-file-with-the-widget-code

在音乐商店示例中,登录后 Request.IsAuthenticated 为 true,但使用小部件登录时情况并非如此。使用登录小部件进行身份验证后,如何检查用户是否已登录?

c# single-sign-on okta

5
推荐指数
1
解决办法
1035
查看次数

使用Keycloak保护Tomcat应用程序时出现HTTP 403禁止错误

我为这个错误苦苦挣扎了一整天。我一遍又一遍地检查我在tomcat中Keycloak和APP的配置,没有发现错误。

下图为测试场景:

在此输入图像描述

APP配置:

1.Keycloak.json是从Keycloak控制台复制的

2.context.xml 也正确,因为它在“localhost”场景下工作正常

3.web.xml:

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0">

    <module-name>Keycloak-Tomcat-App</module-name>

<!--
<security-constraint>
    <web-resource-collection>
        <web-resource-name>init pages</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>user</role-name>
    </auth-constraint>
</security-constraint>
-->

<security-constraint>
    <web-resource-collection>
        <web-resource-name>All roles pages</web-resource-name>
        <url-pattern>/roles/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>admin</role-name>
    </auth-constraint>
</security-constraint>

<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>this is ignored currently</realm-name>
</login-config>

<security-role>
    <role-name>admin</role-name>
</security-role>
<security-role>
    <role-name>user</role-name>
</security-role>
Run Code Online (Sandbox Code Playgroud)

Keycloak控制台配置:

我创建一个名为 csf-admin 的用户,并将角色“admin”和“user”分配给 csf-admin

然后

1)在linux.1上使用broswer访问linux.3上部署在TOMCAT中的APP(用户https)

2)我的浏览器可以打开Keycloak认证页面(用户https,linux.2上的keycloak)

3)以csf-admin身份登录keycloak

4)Keycloak将我重定向到APP url(使用https)

5)HTTP 403“已禁止访问指定资源。” 到场

我真的不知道根本原因......需要你的帮助......

java jboss tomcat single-sign-on keycloak

5
推荐指数
1
解决办法
7121
查看次数

Spring 中的 SSO SAML - 支持动态多租户设置

我是 SAML 新手,目前有一个 Spring Restful Web 服务器应用程序,它使用带有基本身份验证的 spring security。由于我有多个企业客户,我希望支持 SAML SSO。

尝试查找有关如何设置 SAML 来对不同客户的不同 IDP 进行身份验证的文档,最好是示例,其中 SAML IDP 详细信息是从持久层 (DB) 读取的。

还想知道在 Web 应用程序中支持正确登录的策略。我现在是否需要为每个客户支持不同的 URL,以便我知道针对哪个 IDP 进行身份验证?

例如我有两个客户

客户 A - 使用 SAML IDP 服务器 A'

客户 B - 使用 SAML IDP 服务器 B'

当客户 A 的用户访问我的网站时:我如何知道现在需要针对 SAML IDP A 进行身份验证?是通过 url 还是某个 url 参数?一旦我知道他是谁,我如何设置 spring saml 来通过 IDP A' 进行身份验证(从该客户的数据库设置中读取)。请注意,我无法在春季配置中预先设置 IDP,因为新客户可以稍后使用新的 IDP 加入。

谢谢

spring spring-security saml single-sign-on spring-saml

5
推荐指数
0
解决办法
572
查看次数

如何使用 SAML ECP 配置文件配置 Keycloak

我正在使用 SAML 为运行 tomcat 的 Web 服务器实现 SSO 身份验证流程。使用 POST 或重定向绑定时一切正常,但根据我所读到的内容,为了支持 REST API 前面的 SAML 身份验证,我还需要配置和使用 ECP 配置文件。

如果我错了,请先纠正我,但 ECP 流程应该是这样的:

  1. 客户端访问 SP REST API
    • 客户端知道他需要进行身份验证,因此他设置了所需的 ECP 标头 (Accept: application/vnd.paos+xmlPAOS: urn:liberty:paos:2003-08;urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp)
  2. SP 发现客户端未经过身份验证并返回包含 PAOS 请求的 SOAP 信封。
  3. 客户端负责将其发送到其 ECP 消费者服务上的适当 IdP。
  4. IdP 向客户端发起身份验证质询
  5. IdP 以另一个 SOAP 信封的形式返回响应,其主体中包含 saml 响应
  6. 客户端必须将此响应发送到 SP 的ECP/SOAP 断言消费者服务

问题是所有这些都在步骤 6 之前有效。在这一步中,我遇到了问题,响应信封的主体包含一个 Destination 属性,该属性指向SP 的POST 断言消费者服务。此目标属性由 keycloak 设置,与我想要将响应发送到的实际 ECP 服务不匹配。我们使用的 SAML 库是 opensaml,它根据此 Destination 属性检查请求 URI,如果不匹配,则会引发异常org.opensaml.xml.security.SecurityException: SAML message …

saml single-sign-on saml-2.0 keycloak

5
推荐指数
1
解决办法
2110
查看次数

SimpleSAMLPHP 重定向循环

我们正在尝试使用自定义 mysql 数据库设置 sso,但它在以下两个请求之间进入无限循环。

POST http://192.168.0.15/simplesaml/module.php/core/loginuserpass.php
Run Code Online (Sandbox Code Playgroud)

设置Cookie

PHPSESSID=d0eaabb959ffeb2a0dd20f4744945f8f; path=/; HttpOnly
SimpleSAMLAuthToken=_297a91e9a4e14c61d247427063201a39587396c2e3; path=/; httponly

http://192.168.0.15/simplesaml/module.php/core/loginuserpass.php?AuthState=_e3e75218660095b936b9582356bcbc7b1e26934876%3Ahttp%3A%2F%2F192.168.0.15%2Fsimplesaml%2Fmodule.php%2Fcore%2Fas_login.php%3FAuthId%3Dexample-sql%26ReturnTo%3Dhttp%253A%252F%252F192.168.0.2%252F%252Fver06%252Fapp.php
Run Code Online (Sandbox Code Playgroud)

设置Cookie

PHPSESSID=92688949c724d39e673eec73b0674de0; path=/; HttpOnly
Run Code Online (Sandbox Code Playgroud)

192.168.0.15是我们的 SSO 服务器,192.168.0.2也是请求 SSO 的网站。

我们是否遗漏了什么?是否有客户端和服务器分离的 sso 模块以方便使用。

此外,我们没有生成日志文件。已验证文件夹的权限。

php mysql single-sign-on simplesamlphp

5
推荐指数
1
解决办法
4897
查看次数

使用 Identity Server 4 实施单点登录

给定 Identity Server 4,我们可以通过单个用户身份验证服务器实现由不同应用程序使用的单点登录吗?

如果是这样,我们该怎么做呢?有相同的参考资料吗?

single-sign-on identityserver4

5
推荐指数
1
解决办法
7239
查看次数

创建 OpenID Connect 服务器

我已经构建了一个身份验证系统,并希望将其设为联合身份验证和授权系统 (SSO),例如 Google+ 或 Facebook。经过研究,我发现 OAuth 2.0 之上的 OpenID Connect 是最好的选择。

我认为使用现有的经过良好测试的库比自己实现整个堆栈更好,因此我计划使用MITREID Connect。任何意见?

然而,还有一些事情我不确定:

  1. 我走在正确的轨道上吗?openid-connect-server 的代码库可以用于我想要构建的内容吗?
  2. 如果是这样,并且我使用 OpenID Connect 完成了系统扩展,我如何让 Web 应用程序开发人员在他们的 OpenID Connect/OAuth2 表单上显示我的登录系统?更清楚地说,我需要提供哪些数据或需要公开哪些 API 才能让客户端开始使用我的系统进行身份验证和授权?

如果我遗漏了任何关键点,请告诉我。如果我在错误的论坛上发帖,请随时将帖子移至适当的论坛。

java federated-identity openid-provider single-sign-on openid-connect

5
推荐指数
1
解决办法
8166
查看次数

SAML 2.0 协议是否应该用于桌面应用程序单点登录?

我正在尝试为桌面应用程序实现 SSO,目前正在研究什么是最好的工具。我接触过 SAML,但据我了解,SAML 确实适用于 Web 应用程序。有没有办法在桌面应用程序中使用 SAML 协议?

示例用例:用户登录到计算机,当他或她单击应用程序图标时,他们会自动登录。

identity saml single-sign-on saml-2.0

5
推荐指数
1
解决办法
3728
查看次数

带有移动客户端的 Saml SSO

我对 SAML 及其通过 Shibboleth 的实施有很多疑问。我已经做了相当多的研究,我想澄清一些事情。我有一个与我们的服务器通信的移动应用程序。我们的一个企业客户(我们称之为 StackOverflow University)希望使用 Shibboleth(或者我应该说 SAML?)向我们的系统提供 SSO。他们已经向我们发送了所有学生的电子邮件地址和基本个人资料信息。使用 OAuth2,我们确切地知道如何提供 SSO,但是,使用 SAML,我们无法专注于 IDP、SP、AuthnRequest、元数据等。

我们的假设。

  • IDP = StackOverflow 大学
  • SP = 我们的应用程序

我们的客户要求我们提供以下信息

请让我知道下一步。我至少需要以下信息来配置我们这边: - 您的服务提供商实体 ID - 您的服务提供商元数据(如果您不是 InCommon 的成员) - 我们应在 SAML 断言中向您发送的属性列表

我们不是 InCommon 的成员。

方法 学生下载我们的移动应用程序。他们选择自己的机构(StackOverflow 大学)。调用我们的服务器来检索 SSO 配置,其中包含 SAML 所需的信息。

  1. 移动客户端打开网络视图并导航到特定网址。该网址将创建一个登录屏幕。我们如何配置请求以使用下面这些 url 之一和 AuthnRequest?

<ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding" Location="https://webauth.xxx.edu:8443/idp/profile/SAML1/SOAP/ArtifactResolution" index="1"/>
<ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://webauth.xxx.edu:8443/idp/profile/SAML2/SOAP/ArtifactResolution" index="2"/>
<SingleSignOnService Binding="urn:mace:shibboleth:1.0:profiles:AuthnRequest" Location="https://webauth.xxx.edu/idp/profile/Shibboleth/SSO"/>
<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://webauth.xxx.edu/idp/profile/SAML2/POST/SSO"/>
<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://webauth.xxx.edu/idp/profile/SAML2/Redirect/SSO"/>
<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign" Location="https://webauth.xxx.edu/idp/profile/SAML2/POST-SimpleSign/SSO"/>
Run Code Online (Sandbox Code Playgroud)

  1. 用户输入他们的凭据
  2. 事情的发生让我无法理解。
  3. 我们的服务器如何接收声明、创建令牌以及客户端如何使用它与我们的系统进行通信。

鉴于我们知识的空白,有人可以帮助解释这个过程吗?

mobile saml shibboleth single-sign-on saml-2.0

5
推荐指数
1
解决办法
1264
查看次数