2009-05-07 7 views
2

У нас есть приложение 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); 
    } 
    } 

ответ

0

Оказывается, ответ на этот вопрос должен был удалить куки IAS_IDXXXXXXXX созданный плагин IIS SSO, прежде чем пытаться разрешить пользователю войти в систему в качестве непубличных пользователя.

Смежные вопросы