クライアントがASP.NET SSO および経由で保護したいASP.NETアプリケーションも、アプリケーションへの匿名アクセスを許可しています。Oracle SSOの背後にあるASP.NETアプリケーション - 匿名アクセス?
標準のOracle SSOプラグインには匿名アクセスオプションがありません。したがって、Portal/SSOセッションCookieをチェックしてベースのOracle SSOServerAuthを実行するためのカスタムJava SSOプラグインを作成し、そうでない場合はSSO cookie(匿名アクセス) - Oracle PUBLICユーザーを戻します。
誰かがこのようなシナリオを実際に正しく実行していますか?これを行うより良い方法はありますか?
我々は、Oracle SSO IISプラグインを使用している、そしてそれはいくつかのケースで動作します - しかし、我々は、Oracle PUBLICユーザとしてユーザを認証した後に発生Portalでいくつかの奇妙な行動を見ている:
ログインフォーム同じセキュリティレベルのカスタムプラグインとデフォルトプラグインでは動作しません。また、カスタムプラグインがデフォルトプラグインよりも低いセキュリティレベルで使用されている場合、ユーザーが別のアカウントで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);
}
}