安全断言标记语言(SAML)是一种标准,用于根据用户在另一个上下文中的会话将用户登录到应用程序中。
如何在 requirements.txt 中的包自动安装到 Heroku build 之前运行 pip install package?
我有一个 Python Django 项目,其中主分支自动部署到 Heroku。根据构建日志; 首先,使用构建包,然后安装依赖项,在此包之后...
最近我遇到了单点登录功能的问题,客户需要在他们的“应用程序生态系统”上使用它。 我有“身份提供者”和“服务提供者”
了解在 SSO 架构中是否可以实现多信任是很有趣的,例如基于 ADFS。 我的意思是以下。 假设我有 ADFS_0 和 ADFS_1(实际上我有 IdentityServe ...
如何在 Rust 中从 Google 身份验证获取 SAML 断言?
我已将我的 AWS IAM 作为身份提供商连接到 Google,一切都按预期工作。现在我想编写一个 Rust 客户端/桌面应用程序,它可以通过 Google 对用户进行身份验证,并检索 ...
如何使用 OKTA 作为身份提供者在普通的 ASP.NET 4.5 应用程序中实现 SSO
我有一个普通的 ASP.net 应用程序。我需要在登录屏幕中启用 SSO。我的身份提供者是 OKTA。我们已经从 OKTA 获得了元数据文件,但我不确定如何在我们的
Keycloak 用户和 AWS 管理的 Grafana 之间的身份验证问题
我已经在 AWS 控制台中安装了 AWS 管理的 Grafana。我已经在带有私有子网的小型 EC2 中安装了 keyclaok(允许安全组入站和出站所有端口)并配置了 Keycloak 的 Re...
Keycloak 用户与 AWS 管理的 Grafana 之间的身份验证问题
我已经在 AWS 控制台中安装了 AWS 管理的 Grafana。我已经在带有私有子网的小型 EC2 中安装了 keyclaok(允许安全组入站和出站所有端口)并配置了 Keycloak 的 Re...
我们正在将我们的应用程序从传统的数据库登录转移到 keycloak。旧系统使用 python-saml 包自行处理 SAML 登录。 现在,我们正试图让 keycloak 做...
如何从我的 Python-Django 项目中获取元数据以实现 SSO?
我有一个 Python-Django 项目,我正在尝试使用他们的 idp 与 C#/.NET 现有网站 SAML 身份验证集成。 我绝对需要生成一个元数据文件给任何人......
我们可以在 ASP.NET MVC 中使用多种身份验证方法吗
我正在做一个 ASP.NET MVC 项目,我们已经实现了用户名/密码身份验证。我们正在尝试向项目添加 SAML 身份验证 (Azure AD)。那可能吗?这些可以...
我们可以在.net framework MVC中使用多种身份验证方法吗
我正在做一个 ASP.NET Framework 项目,我们已经实现了用户名/密码身份验证。我们正在尝试向项目添加 SAML 身份验证 (Azure AD)。那可能吗?不能...
我有一个 MERN 堆栈 SPA 应用程序,其后端为 ExpressJS,前端为 ReactJS。我正在尝试使用来自大学 SAML 身份提供商的 SAML 身份验证。我有一个快速 API
任何人都可以建议以下是否是将 SignedInfo 元素传递给某些代码以对 xml 消息进行数字签名的正确格式? 任何人都可以建议以下是否是将 SignedInfo 元素传递给某些代码以对 xml 消息进行数字签名的正确格式? <ds:SignedInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"></ds:CanonicalizationMethod> <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></ds:SignatureMethod> <ds:Reference URI="#pfxffef2099-cc79-fd84-e7e8-5bdced364715"> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"></ds:Transform> <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></ds:Transform> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod> <ds:DigestValue>LC/2Thrnfl3SUqWp8LXfZFyXoZA=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> 下面的 python 代码应该完成这项工作吗? from cryptography.hazmat.primitives.asymmetric import utils from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import serialization from cryptography.hazmat.primitives.asymmetric import padding from cryptography.hazmat.primitives import hashes with open("mysaml_pr_key.pem", "rb") as key_file: private_key = serialization.load_pem_private_key( key_file.read(), password=None, backend=default_backend() ) mypadding_for_signature=padding.PSS( mgf=padding.MGF1(hashes.SHA1()), salt_length=padding.PSS.MAX_LENGTH ) hasher2 = hashes.Hash(hashes.SHA1()) hasher2.update(to_be_signed.encode()) digest_of_signed_info=hasher2.finalize() signature_before_64encode=private_key.sign(digest_of_signed_info,mypadding_for_signature,utils.prehashed(hashes.SHA1())) signature=base64.b64encode(signature_before_64encode) 响应被SP拒绝,原因是“未能验证签名”。 根据 SP 的文档,我确实上传了 IDP 证书和签署它的 CA,它们应该用于签名验证。此外,我确实尝试在第三方工具中验证签名并返回相同的响应(签名验证失败。).. 我预计是以下两个原因之一导致失败: XML 元素的语法或规范化<SignedInfo> 是错误的。根据我的理解,签名是 <SignedInfo> 元素的 SHA1 摘要签名的产生。请注意,<DigestValue> 是 XML 节点的散列,其 ID 在 <reference> 元素中给出。我确认我的哈希值与第三方工具(在线 SAML 工具)生成的哈希值相同 也许我用来对元素进行签名的python代码是错误的。我需要使用 SHA1 然后使用我的私钥签名 W3C XML签名规范中使用的RSA算法是指RFC 3447中描述的RSASSA-PKCS1-v1_5算法。使用的填充方法是 PKCS#1 v1.5。您的 python 代码使用 PSS 填充 终于成功了: 最终的 signedinfo 元素是: <ds:SignedInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></ds:CanonicalizationMethod> <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></ds:SignatureMethod> <ds:Reference URI="#pfxffef2099-cc79-fd84-e7e8-5bdced364715"> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></ds:Transform> <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></ds:Transform> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod> <ds:DigestValue>YeKgITtMiXZjSnfQ1I+byM6aOoQ=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> 我认为问题是提到了错误的规范化方法。 唱歌的密码是: with open("mysaml_pr_key.pem", "rb") as key_file: private_key = serialization.load_pem_private_key( key_file.read(), password=None, backend=default_backend() ) signature_before_64encode = private_key.sign(to_be_signed,padding.PKCS1v15(),hashes.SHA1()) signature=base64.b64encode(signature_before_64encode) 其中 to_be_signed 是 singedinfo 字符串的 .encode() 结果。
【keycloak saml 身份验证】重定向 idp 提供商时无需输入密码
我开发了带有 keycloak saml 身份验证的示例应用程序。 在开发过程中,我了解到当我访问应用程序时,会生成 saml 请求并重定向 keycloak 控制台登录菜单。 经过...
在 Symfony 4.2 中动态修改 access_control
我正在使用 Symfony 4.2.12 和 hslavich/OneloginSamlBundle 进行 SAML SSO 实现,用户可以启用或禁用它。启用后,我需要修改 security.yaml
我使用了 git 存储库中的库 java-saml-toolkit 为了测试工具包中的示例,我关注了 https://developers.onelogin.com/saml/java 但它无法解析 Auth 类
使用 spring boot 和 spring security 在 saml 中使用 okta 实现 SSO 时出错
我使用此链接作为实施 SSO 的参考:https://medium.com/digital-software-architecture/spring-boot-spring-security-with-saml-2-83d87df5b470 如果 spring boot st ...
我正在使用 Java8,我尝试了 OpenSAML(v3) 和 OneLogin,但都没有用。 验证检查工具:https://samltool.io/ 仅签署断言:有效 仅签名响应:有效 签约
是否有办法使用.net core控制台应用程序进行SAML 2请求?我的AzureAD有一个外部SAML端点,比如https:/login.microsoftonline.com {TENANTE_ID} saml2,但我找不到 ...
我需要在一个基于web表单的webb站点中实现SAML SSO,有人能给我举个例子吗?