У нас есть приложение ASP.NET, которое клиент хотел бы защитить через Oracle SSO и также разрешает анонимный доступ к приложению.Приложение ASP.NET за Oracle SSO - Анонимный доступ?
Ни один из стандартных плагинов Oracle SSO не имеет возможности анонимного доступа, поэтому мы написали пользовательский плагин Java-SSO для проверки cookie сеансов Portal/SSO и базового Oracle SSOServerAuth, и в противном случае, если у них нет единого входа cookie (анонимный доступ) - возвращает пользователя Oracle PUBLIC.
У кого-нибудь есть такой сценарий, чтобы он действительно работал правильно? Есть лучший способ сделать это?
Мы используем плагин Oracle SSO IIS, и он работает в некоторых случаях - но мы видим некоторое странное поведение в Portal, что происходит после аутентификации пользователя в качестве оракула ОБЩЕСТВЕННОГО пользователя:
Логина формы не работают с настраиваемым и плагином по умолчанию на одном уровне безопасности. И с настраиваемым плагином на более низком уровне безопасности, чем плагин по умолчанию, аутентификация PUBLIC каким-то образом сохраняется для партнерского приложения, даже если пользователь входит в Портал с другой учетной записью.
Вот наш пользовательский плагин:
public class MixedAuthenticator
extends SSOServerAuth
implements IPASAuthInterface
{
public MixedAuthenticator()
{
}
public IPASUserInfo authenticate(HttpServletRequest request)
throws IPASAuthException, IPASInsufficientCredException
{
boolean foundPortalUser = false;
Cookie[] cookies = request.getCookies();
if(cookies != null)
{
for(int i=0; i<cookies.length; i++)
{
Cookie cookie = cookies[i];
if(cookie.getName().equalsIgnoreCase("portal"))
{
foundPortalUser = true;
}
}
}
if(foundPortalUser)
{
return super.authenticate(request);
}
else
{
IPASUserInfo anonUser = new IPASUserInfo("PUBLIC");
return anonUser;
}
public URL getUserCredentialPage(HttpServletRequest request, String message)
{
return super.getUserCredentialPage(request, message);
}
}