Oracle SSO背后的ASP.NET应用程序-匿名访问?
我们有一个ASP.NET应用程序,客户端希望通过Oracle SSO保护该应用程序,并允许匿名访问该应用程序 没有一个标准的Oracle SSO插件具有匿名访问选项,因此我们编写了一个自定义java SSO插件来检查门户/SSO会话cookie,并执行基本Oracle SSOServerAuth,否则,如果它们没有SSO cookie(匿名访问),则返回Oracle公共用户 有人有这样的场景可以正常工作吗?有更好的方法吗 我们使用的是Oracle SSO IIS插件,它在某些情况下可以工作-但我们在门户中看到一些奇怪的行为,这些行为是在将用户验证为Oracle公共用户后发生的: 登录表单不能在同一安全级别上与自定义插件和默认插件一起使用。由于自定义插件的安全级别低于默认插件,因此即使用户使用另一个帐户登录门户,也会以某种方式为合作伙伴应用程序保留公共身份验证 这是我们的自定义插件:Oracle SSO背后的ASP.NET应用程序-匿名访问?,asp.net,oracle,single-sign-on,Asp.net,Oracle,Single Sign On,我们有一个ASP.NET应用程序,客户端希望通过Oracle SSO保护该应用程序,并允许匿名访问该应用程序 没有一个标准的Oracle SSO插件具有匿名访问选项,因此我们编写了一个自定义java SSO插件来检查门户/SSO会话cookie,并执行基本Oracle SSOServerAuth,否则,如果它们没有SSO cookie(匿名访问),则返回Oracle公共用户 有人有这样的场景可以正常工作吗?有更好的方法吗 我们使用的是Oracle SSO IIS插件,它在某些情况下可以工作-但我
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);
}
}
公共类混合身份验证程序
扩展SSOServerAuth
实现IPASAuthInterface
{
公共混合身份验证程序()
{
}
公共IPASUserInfo身份验证(HttpServletRequest请求)
抛出IPASautheException,IPASuncientCredeException
{
布尔foundPortalUser=false;
Cookie[]cookies=request.getCookies();
如果(cookies!=null)
{
对于(int i=0;i结果是,在您尝试允许用户以非公共用户身份登录之前,删除IIS SSO插件创建的IAS_IDXXXXXXXX cookie。结果是,在您尝试允许用户以非公共用户身份登录之前,删除IIS SSO插件创建的IAS_IDXXXXXXXX cookie