如果颁发者和身份提供者 ID 不同,如何启用 SSO 严格模式?

How can I enable SSO strict mode if the issuer and identity provider ID are different?

我正在从事我最近接手的一个项目,以使其做好生产准备。其中一项任务是为 SSO 启用严格模式,但是一旦我这样做,它就会立即失败。

我正在利用 'python-saml' 库为应用程序提供 SSO 功能。经过一些调试后,脚本在这里失败了:

    # Checks the issuers
    issuers = self.get_issuers()
    for issuer in issuers:
        if issuer is None or issuer != idp_entity_id:
            raise OneLogin_Saml2_ValidationError(
                'Invalid issuer in the Assertion/Response (expected %(idpEntityId)s, got %(issuer)s)' %
                {
                    'idpEntityId': idp_entity_id,
                    'issuer': issuer
                },
                OneLogin_Saml2_ValidationError.WRONG_ISSUER

这告诉我,颁发者与身份提供者 ID 不同,实际上是不同的。

我对 SSO 的了解有限,但是,这似乎很奇怪,这会有所不同。

如何解决这个问题,或者如果这些是故意不同的,我该如何启用严格模式?

问题出在对 idp 实体 ID 值的理解上。这应该与 SAML 响应中的 Issuer 相同。