我正在开发一个使用 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 的站点?如果用户只在浏览器中输入域名会发生什么?网站需要添加代码吗?
蒂亚,迈克
在 SAML 中,是否可以强制用户每次都执行 idp 登录过程,即使用户有活动的 idp 会话?
在这里举一个具体的例子:让我们将我的应用程序称为“SP”,我使用 SSOCirecle 作为 idp,并使用 POST 和重定向(SP 发起)。
为了进行测试,我将首先登录 SSOCircle 以获取活动的 idp 会话。然后当我尝试访问 SP 时,我应该被重定向到 idp。
通常,由于我已经有一个活动的 idp 会话,idp 会看到“哦,您之前已经通过了身份验证,您可以直接转到 SP!”
但我不希望这样,我希望 idp 强制用户每次都输入凭据,也许可以通过其中之一(我猜)
我想知道这是否可行。
我目前正在开发 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
上下文: 我们有一个无法控制的 OIDC IdP,但我们需要支持来自服务提供商 (SP) 的 SSO 的 SAML 请求。
想法: 构建位于 SP 和 OIDC 身份提供商之间的代理(应用程序)。来自 SP 的请求将发送到代理应用程序(充当 SP 的 SAML IdP),代理应用程序将请求转换为 OIDC 请求并将其转发到 OIDC 提供商。来自 OIDC 提供商的结果返回到代理应用程序,代理应用程序将其转换为 SAML 响应并将其转发到 SP。
问题:
我对 SAML IdP(实施方面)的了解非常有限。这种方法对我来说似乎很黑客:)感觉有很多事情我需要考虑。因此,对于我做错的地方需要一些帮助和指导。我想问的几件事是:
任何形式的帮助将不胜感激。
谢谢!
我正在尝试实施 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) 我是证书和密钥库的新手。
SAML SSO 的密钥库和证书的重要性和工作原理是什么(在 Spring boot SAML SSO 的上下文中)?
我看到.jks、.pem、.cer、.der等正在使用。这些是什么?
我已在 PingFederate 中配置了 IDP 发起的 SSO,它显示SSO 应用程序端点为:https://myserver/idp/startSSO.ping?PartnerSpId=sp_id
但是,当我下载此 SP 连接的元数据时,在元数据中,SSO 服务位置显示为:https://myserver/idp/SSO.saml2
为什么元数据文件显示不同的 SSO 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?
我想将 AWS SSO 配置为企业 SAML 连接。我试图通过窃取Auth0 的其他 SAML IdP 示例来拼凑正确的配置,但我还没有能够让它工作。
在 AWS SSO 中:
https://<AUTH0 TENANT>.auth0.com/login/callbackurn:auth0:<AUTH0 TENANT>:<AUTH0 CONNECTION NAME>在 Auth0 中:
目前,在我的 Auth0 SAML 连接上单击“测试”会重定向到 AWS SSO,我可以登录,但随后出现错误“缺少主题的 nameId 格式”。
是否有人成功将 AWS SSO 配置为 Auth0 Enterprise SAML 连接?
需要说明的是,我并不是要尝试将 Auth0 配置为我的 AWS IdP,因此Auth0 集成 AWS sso 文档不适用
我有一个 .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
single-sign-on ×10
saml ×4
saml-2.0 ×3
spring-saml ×2
.net ×1
amazon-s3 ×1
auth0 ×1
django ×1
google-api ×1
google-oauth ×1
idp ×1
okta ×1
owin ×1
php ×1
pingfederate ×1
python ×1
samesite ×1
spring-boot ×1