WSO2 API единый вход — пассивный режим и анонимный доступ к хранилищу

#wso2is #wso2-am

#wso2-api-manager #wso2-сервер идентификации

Вопрос:

Мы используем WSO2 API Manager 2.6 с включенным SSO. В файле site.json в приложении store jaggery мы настроили следующие параметры:

 "ssoConfiguration" : {
"enabled" : "true",
"issuer" : "API_STORE",
"identityProviderURL" : "https://identity.it/samlsso",
"keyStorePassword" : "",
"identityAlias" : "",
"responseSigningEnabled":"true",
"assertionSigningEnabled":"true",
"verifyAssertionValidityPeriod":"true",
"timestampSkewInSeconds":"300",
"audienceRestrictionsEnabled":"true",
"keyStoreName" :"",
"passive" : "true",
...
  

}

Когда мы перемещаемся по сайту магазина в качестве приглашенного пользователя (без входа в систему), магазин автоматически перенаправляет все запросы на https://identity.it/samlsso (без запроса учетных данных) до перехода на целевую страницу. Как мы можем позволить гостевому пользователю перемещаться по веб-сайту магазина, не перенаправляя все запросы на удостоверение?

В версии 2.1, чтобы получить его, мы настроили для параметра passive значение false, в этой версии он не работает, потому что перенаправляет все запросы на страницу входа.

Ответ №1:

У меня была такая же проблема. После долгих поисков я нашел это утверждение

 if ((!session.get("hasTriedSSO") || Boolean(user)) amp;amp; site.ssoConfiguration.enabled == "true" amp;amp; site.ssoConfiguration.passive == "true") {
  jagg.includeBlock("sso/filter", {});
}

  

Я думаю, что это условие неверно. Потому что он должен включать блокировку только тогда, когда site.ssoConfiguration.passive значение false не равно true.

Он расположен в

 repositorydeploymentserverjaggeryappsstoresiteblocksapiapi-infoblock.jag
repositorydeploymentserverjaggeryappsstoresiteblockssitepageslist-apis.jag
  

Я изменил это site.ssoConfiguration.enabled == "false" , и у меня это сработало. Но я не уверен, что это лучшее решение.