标签: single-sign-on

将 AWS CloudFront 连接到单点登录 (SSO)

我正在开发一个使用 S3 作为存储和 CloudFront CDN 部署到 AWS 的网站。它是一个静态网站,只有一个 html 文件,使用 JS 根据查询字符串显示内容。所有者是一家已经在其组织内建立了 SSO 的企业,他们使用 IBM Tivoli 作为 IdP。我缺少的部分是如何生成授权请求?

我读过这些:

http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html http://docs.aws。 amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp.html http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html http://docs.aws.amazon.com/ IAM/latest/UserGuide/id_roles_providers_create_saml.html http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html

其中许多都很接近,但偏离了目标。它不是 EC2 实例,也不是 Elastic Beanstalk,我没有尝试访问 AWS 控制台,而且他们不使用 AD 进行 SSO。这只是一个网站。

到目前为止我有:

  • 在 AWS 中创建 SAML 提供商并从其 IdP 导入元数据
  • 创建了 IAM 角色
  • 建立角色和提供者之间的信任关系
  • 为角色建立了 s3:getObject 权限
  • 向他们提供来自 AWS 的元数据以及需要提供的 SAML 断言的详细信息。

我的问题是两侧如何连接。当有人尝试访问该站点时,AWS 会自动执行此操作吗?企业是否在其门户中创建特殊链接来启动带有 SAML 的站点?如果用户只在浏览器中输入域名会发生什么?网站需要添加代码吗?

蒂亚,迈克

amazon-s3 amazon-web-services single-sign-on saml-2.0

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

SAML:即使用户有 IDP 会话,是否也可以强制用户完成登录过程

在 SAML 中,是否可以强制用户每次都执行 idp 登录过程,即使用户有活动的 idp 会话?

在这里举一个具体的例子:让我们将我的应用程序称为“SP”,我使用 SSOCirecle 作为 idp,并使用 POST 和重定向(SP 发起)。

为了进行测试,我将首先登录 SSOCircle 以获取活动的 idp 会话。然后当我尝试访问 SP 时,我应该被重定向到 idp。

通常,由于我已经有一个活动的 idp 会话,idp 会看到“哦,您之前已经通过了身份验证,您可以直接转到 SP!”

但我不希望这样,我希望 idp 强制用​​户每次都输入凭据,也许可以通过其中之一(我猜)

  1. 忽略活动的 IDP 会话
  2. 不要创建 IDP 会话

我想知道这是否可行。

saml single-sign-on saml-2.0 spring-saml

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

使用 Django REST 框架进行 SAML SSO 身份验证

我目前正在开发 AngularJS 前端和 Django REST 后端。我一直在使用django-rest-auth来验证两者之间的连接,但现在必须使用 SAML 集成 SSO 身份验证。

我环顾四周并决定使用python3-saml,但任何文档和用例示例(针对此包和任何其他包)都适用于纯 Django 应用程序。

我一直以 OneLogin 的django/flask 指南为基础,并尝试制作一个自定义中间件来捕获我的请求,但 OneLogin 提供的重定向的实现不适用于 REST 调用(显然)。我还看到一些人使用 AUTHENTICATION_BACKENDS Django 设置,我想知道这是否是我想要的。

感谢您的任何帮助。

authentication django saml single-sign-on django-rest-framework

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

OIDC IdP 提供商之上的代理,用于接受来自服务提供商的 SSO SAML 请求

上下文: 我们有一个无法控制的 OIDC IdP,但我们需要支持来自服务提供商 (SP) 的 SSO 的 SAML 请求。

想法: 构建位于 SP 和 OIDC 身份提供商之间的代理(应用程序)。来自 SP 的请求将发送到代理应用程序(充当 SP 的 SAML IdP),代理应用程序将请求转换为 OIDC 请求并将其转发到 OIDC 提供商。来自 OIDC 提供商的结果返回到代理应用程序,代理应用程序将其转换为 SAML 响应并将其转发到 SP。

问题:

我对 SAML IdP(实施方面)的了解非常有限。这种方法对我来说似乎很黑客:)感觉有很多事情我需要考虑。因此,对于我做错的地方需要一些帮助和指导。我想问的几件事是:

  • 这种方法有任何意义吗?
  • 这种方法的安全影响是什么?
  • 是否还有其他更简单/更好的解决方案或类似的用例?

任何形式的帮助将不胜感激。

谢谢!

saml single-sign-on openid-connect idp

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

SAML 响应签名丢失

我正在尝试实施 SAML2 SSO,但收到错误saml2.sigver.SignatureError: Signature missing for response。我正在使用djangosaml2,反过来使用pysaml2。寻找签名时似乎遇到了问题:https://github.com/IdentityPython/pysaml2/blob/master/src/saml2/sigver.py#L1648

看起来它正在尝试在响应属性中查找签名,但是我的 IDP 在响应属性中没有返回签名,但是可以在响应中找到签名作为其自己的元素ns2:Signature

我是否应该要求 IDP 提供不同的响应,或者我是否缺少配置选项?

Login process started
Trying binding urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST for IDP None
Redirecting user to the IdP via urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST binding.
Saving the session_id in the OutstandingQueries cache
Invalid or malformed SAML Assertion.
Traceback (most recent call last):
  File "/usr/local/lib/python3.4/dist-packages/djangosaml2/views.py", line 271, in assertion_consumer_service
    response = client.parse_authn_request_response(xmlstr, BINDING_HTTP_POST, outstanding_queries)
  File "/usr/local/lib/python3.4/dist-packages/saml2/client_base.py", line 712, in parse_authn_request_response
    binding, **kwargs)
  File "/usr/local/lib/python3.4/dist-packages/saml2/entity.py", line 1150, in …
Run Code Online (Sandbox Code Playgroud)

python single-sign-on saml-2.0

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

SAML SSO 密钥库证书的重要性

我是证书和密钥库的新手。

SAML SSO 的密钥库和证书的重要性和工作原理是什么(在 Spring boot SAML SSO 的上下文中)?

我看到.jks.pem.cer.der等正在使用。这些是什么?

saml x509certificate single-sign-on spring-boot spring-saml

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

PingFederate SSO 应用程序端点和 SSO 服务位置之间的区别

我已在 PingFederate 中配置了 IDP 发起的 SSO,它显示SSO 应用程序端点为:https://myserver/idp/startSSO.ping?PartnerSpId=sp_id

但是,当我下载此 SP 连接的元数据时,在元数据中,SSO 服务位置显示为:https://myserver/idp/SSO.saml2

为什么元数据文件显示不同的 SSO URL?

single-sign-on pingfederate

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

Google auth - 有什么方法可以在重定向 URL 中发回自定义数据吗?

我正在通过 Google 在我的网站中实现单点登录,并且工作正常,但是:我需要它来支持网站的各种实例。

这是一个问题,因为 Google 似乎不支持重定向 URL 中的任何形式的动态性。来自有关重定向 URL 的文档

确定用户完成授权流程后 API 服务器将用户重定向到的位置。该值必须与您在 API 控制台中配置的 OAuth 2.0 客户端的授权重定向 URI 之一完全匹配。

至少可以说,这很烦人;没有通配符,没有查询字符串变体 - 必须与您在控制台中存储的值完全匹配。

所以我的问题是:有谁知道有什么方法可以告诉 Google 的身份验证服务返回附加到重定向 URL 的自定义数据吗?

我在想类似的事情

$google->setRedirectUri('http://example.com/foo');

//pseudo code...
$google->setCustomRedirectData([
    'foo' => 'bar'
]);
Run Code Online (Sandbox Code Playgroud)

...这会产生

http://example.com/foo?code=...&other_google_params=...&foo=bar
Run Code Online (Sandbox Code Playgroud)

有什么办法可以做到这一点,或者我别无选择,只能手动指定每个重定向 URL?

php google-api single-sign-on google-oauth

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

如何将 AWS SSO 设置为 Auth0 Enterprise SAML 连接

我想将 AWS SSO 配置为企业 SAML 连接。我试图通过窃取Auth0 的其他 SAML IdP 示例来拼凑正确的配置,但我还没有能够让它工作。

在 AWS SSO 中:

  • 配置了一个新的应用程序
  • 应用程序 ACS URL设置为https://<AUTH0 TENANT>.auth0.com/login/callback
  • 将应用程序 SAML 受众设置为 urn:auth0:<AUTH0 TENANT>:<AUTH0 CONNECTION NAME>
  • 下载证书
  • 分配用户

在 Auth0 中:

  • 配置企业 SAML 连接
  • 选择 IdP 域
  • 上传证书,粘贴来自 AWS SSO 的登录和注销 URL

目前,在我的 Auth0 SAML 连接上单击“测试”会重定向到 AWS SSO,我可以登录,但随后出现错误“缺少主题的 nameId 格式”。

是否有人成功将 AWS SSO 配置为 Auth0 Enterprise SAML 连接?

需要说明的是,我并不是要尝试将 Auth0 配置为我的 AWS IdP,因此Auth0 集成 AWS sso 文档不适用

amazon-web-services single-sign-on auth0

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

在 Asp.Net Web 应用程序中使用 Okta 时,OpenIdConnectProtocolValidationContext.Nonce 为 null

我有一个 .Net Asp.Net WebApplication,我正在尝试将 Okta 用于单点登录功能。除了使用 Google Chrome 80+ 登录时,我的所有代码都在运行和运行。当我登录 Okta 并被调回我的应用程序时,我收到以下错误。以下是我迄今为止尝试过的步骤。这适用于所有其他浏览器,但很可能由于 Chrome 80 年代的 SameSite cookie 属性更改而失败。

“/”应用程序中的服务器错误。

IDX21323:RequireNonce 是“[隐藏 PII]”。OpenIdConnectProtocolValidationContext.Nonce 为空,OpenIdConnectProtocol.ValidatedIdToken.Payload.Nonce 不为空。无法验证随机数。如果您不需要检查随机数,请将 OpenIdConnectProtocolValidator.RequireNonce 设置为“false”。请注意,如果找到“nonce”,将对其进行评估。说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。

异常详情:

Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectProtocolInvalidNonceException: IDX21323: RequireNonce 是 '[PII is hidden]'。OpenIdConnectProtocolValidationContext.Nonce 为空,OpenIdConnectProtocol.ValidatedIdToken.Payload.Nonce 不为空。无法验证随机数。如果您不需要检查随机数,请将 OpenIdConnectProtocolValidator.RequireNonce 设置为“false”。请注意,如果找到“nonce”,将对其进行评估。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常来源和位置的信息。

堆栈跟踪:

[OpenIdConnectProtocolInvalidNonceException: IDX21323: RequireNonce 是 '[PII is hidden]'。OpenIdConnectProtocolValidationContext.Nonce 为空,OpenIdConnectProtocol.ValidatedIdToken.Payload.Nonce 不为空。无法验证随机数。如果您不需要检查随机数,请将 OpenIdConnectProtocolValidator.RequireNonce 设置为“false”。请注意,如果找到“随机数”,则将对其进行评估。]
Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectProtocolValidator.ValidateNonce(OpenIdConnectProtocolValidationContext validationContext) +1374
Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectProtocolValidator.ValidateAuthenticationResponse(OpenId2ProContexttovalidation)
Microsoft.Owin.Security.OpenIdConnect.d__11.MoveNext() +3770 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +27

  1. .Net 版本升级到 4.7.2
  2. 将 Microsoft.Owin 的 Nuget 包升级到 4.1
  3. 在启动时添加了 SameSite 配置
  4. 添加了 web.config 值
  5. 添加了 …

.net single-sign-on owin okta samesite

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