#python #saml #saml-2.0
#python #saml #saml-2.0
Вопрос:
Каков правильный формат данных для инициализации клиента pysaml2? Библиотека жалуется на это Missing entity_id specification
, несмотря на наличие entityID
в xml (ниже).
spConfig = Saml2Config()
spConfig.load({
'metadata': {
'inline': [idp_metadata],
},
'service': {
'sp': {
'endpoints': {
'assertion_consumer_service': [
(acs_url, BINDING_HTTP_REDIRECT),
(acs_url, BINDING_HTTP_POST),
(https_acs_url, BINDING_HTTP_REDIRECT),
(https_acs_url, BINDING_HTTP_POST)
],
},
# Don't verify that the incoming requests originate from us via
# the built-in cache for authn request ids in pysaml2
'allow_unsolicited': True,
# Don't sign authn requests, since signed requests only make
# sense in a situation where you control both the SP and IdP
'authn_requests_signed': False,
'logout_requests_signed': True,
'want_assertions_signed': True,
'want_response_signed': False,
},
},
})
saml_client = Saml2Client(config=spConfig)
XML:
<?xml version="1.0" encoding="UTF-8"?>
<md:EntityDescriptor
entityID="http://www.okta.com/[redacted]"
xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata">
...
Версия библиотеки является самой последней. python
3.10 работает на macOS Catalina.
Ответ №1:
Частичный ответ: pysaml2 хотел дополнительный параметр:
settings = {
'metadata': {
'inline': [idp_metadata],
},
'entityid': ...
Документация ужасна, и очень неясно, является ли это полноценным решением.