4

I have a requirement as follows. On a single web application extranet zone, multiple tips are installed using Site Minder.

Here is my question, when i try to access a site, site minder login page comes first and after entering my credentials it will authenticate against the database then when it comes to SharePoint i can see the drop down box with multiple providers name.

How can i avoid this page.. ? any idea?

1

3 Answers 3

1

There are different approaches you can take one such approach is detailed here: http://msdn.microsoft.com/en-us/library/hh237665.aspx

The article is really just replacing the default login page, with a new one that has will force authentication thru a chosen provider. This makes changes to the OOTB files, so remeber to:

  1. Always make a backup
  2. Keep your solution handy as it can be broken with hotfixes, CU's, and SP's.

Additonally, I would probably go a bit further and add the compiled project to an actual SharePoint solution so you dont have to manually update each server. Also the powershell bits is what hides the other providers from things like People Search, it's not required, but if no one will use the other authentication processes, then you dont need to see the accounts there.

You can also look at this codeplex solution provided by OrbitOne: http://spautomaticsignin.codeplex.com/releases/view/48105

3
  • Hi,Actually i am aware of the link which your provide above. But i am using "Site Minder" as a Trusted Identity Provider. Before coming to the SharePoint, user is authenticated against different database and IP-STS creates a Fed-auth cookie. After when it comes to sharepoint i can see the multi provider drop down list page. I am able to avoid page for windows authentication, but not able to do for IP-STS. As i need to create another token once it came to sharepoint am i right ? If so can you let me know how can i resolve this ?
    – Share
    Commented Sep 10, 2012 at 13:09
  • MSDN code is redirecting to the forms authentication default page. I dont want to redirect the user to forms authentication as user is authenticated against site minder. I think you got me..Let me know.
    – Share
    Commented Sep 10, 2012 at 13:13
  • The default process is you access your SP web first, which will then attempt to send you to the appropriate authentication source. For claims, your RP-STS will send a request back to your IP-STS, which includes the RP certificate. If you are hitting the IP-STS first, than you have to “tell” SharePoint what it is getting, hence needing the custom login page to consume the IP-STS without the selection of the provider. I’m not a claims expert so maybe someone else can give you a bit more detail. I would also contact CA, I'm sure they have a whitepaper or KB on this scenario. Commented Sep 10, 2012 at 15:58
0

To bypass the Multi authentication page you should override the default page provided with SharePoint. But this will change the behavior of the other sites. The better way to do this to do the following

  1. Make a copy of the Login folder with different name.
  2. Change the path of the login folder in the inetmgr for the particular web application to point out to the new folder
  3. Follow the below link to override the page.

http://msdn.microsoft.com/en-us/library/office/hh237665(v=office.14).aspx

You can change the logic of the redirection to your custom page instead of the Form Authentication page.

I hope by following the above points you can bypass the multi authentication page as well as the new page will not affect the other web applications.

0
SPWebApplication app = SPContext.Current.Site.WebApplication;
SPAlternateUrl u = app.AlternateUrls[Request.Url];
SPUrlZone zone = u.UrlZone;
SPIisSettings settings = app.IisSettings[zone];
string components = Request.Url.GetComponents(UriComponents.Query, UriFormat.SafeUnescaped);
string AuthProviderString;
if (flag == 1)
    AuthProviderString = "SAML_STS";
else
    AuthProviderString = "Staging External Users";
foreach (SPAuthenticationProvider provider in settings.ClaimsAuthenticationProviders)
{
    if (string.Compare(provider.DisplayName, AuthProviderString, true, System.Globalization.CultureInfo.CurrentUICulture) == 0
        || string.Compare(provider.ClaimProviderName, AuthProviderString, true, System.Globalization.CultureInfo.CurrentUICulture) == 0)
    {
        string url = provider.AuthenticationRedirectionUrl.ToString();


        SPUtility.Redirect(url, SPRedirectFlags.Default, this.Context, components);
    }
}

I had to take a copy of C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\IDENTITYMODEL\LOGIN and then override the default.aspx with my new class library.

http://blog.repsaj.nl/index.php/2010/05/sp2010-creating-a-mixed-mode-login-page-for-claims-based-authentication/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.