【问题标题】:pysaml2 - AuthnContextClassRef, PasswordProtectedTransportpysaml2 - AuthnContextClassRef,PasswordProtectedTransport
【发布时间】:2020-05-16 09:54:19
【问题描述】:

我很难理解如何配置 pysaml2 并在我的请求中添加 AuthnContext。 我有一个 SP,我需要在客户端执行登录请求时添加以下请求:

<samlp:RequestedAuthnContext> 
<saml:AuthnContextClassRef>
urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
</saml:AuthnContextClassRef> 
</samlp:RequestedAuthnContext>

我很挣扎,因为我尽我所能,我相信可以在我的请求中添加它,因为在这里https://github.com/IdentityPython/pysaml2/blob/master/src/saml2/samlp.py

我可以看到:

AUTHN_PASSWORD = "urn:oasis:names:tc:SAML:2.0:ac:classes:Password"
AUTHN_PASSWORD_PROTECTED = \
    "urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"

我只是不知道如何引用它。我有一个像这样的简单配置:

"service": {
        "sp": {
            "name": "BLABLA",
            "allow_unsolicited": true,
            "want_response_signed": false,
            "logout_requests_signed": true,
            "endpoints": {
                "assertion_consumer_service": ["https://mywebste..."],
                "single_logout_service": [["https://mywebste...", "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"]]
            },
            "requestedAuthnContext" : true
        }
    }

有人知道如何添加上述配置吗? 即使通过阅读他们的文档,我也很难理解如何构建配置字典。有任何想法吗? 如果配置不允许,我很乐意直接在代码中添加“PasswordProtectedTransport”。但我不知道该怎么做。

谢谢, 回复

【问题讨论】:

  • 伙计们,我解决了我的问题。还是谢谢。
  • 如果您也可以发布解决方案会很棒

标签: python saml


【解决方案1】:

有时您的客户会致电create_authn_request(...) (或prepare_for_authenticate(...), 或prepare_for_negotiated_authenticate(...))。 你应该传递额外的参数requested_authn_context

requested_authn_contextsaml2.samlp.RequestedAuthnContext 类型的对象,其中包含所需的 AuthnContextClassRef

...

from saml2.saml import AUTHN_PASSWORD_PROTECTED
from saml2.saml import AuthnContextClassRef
from saml2.samlp import RequestedAuthnContext


requested_authn_context = RequestedAuthnContext(
    authn_context_class_ref=[
        AuthnContextClassRef(AUTHN_PASSWORD_PROTECTED),
    ],
    comparison="exact",
)
req_id, request = create_authn_request(
    ...,
    requested_authn_context=requested_authn_context,
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-30
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-05
    相关资源
    最近更新 更多