2006-12-22

Extranät med SQL membership provider

Här kommer en hyfsat kortfattad instruktion för hur man sätter WSS med formulärbaserad inloggning och ASP.Net 2.0 SQL Membership Provider. Instruktionerna är mest menade som minnesanteckningar; de förutsätter grundläggande kunskap om IIS 6.0, SSL och ASP.Net 2.0 provider model.

Genom att utöka (extend) en Web Appication får du två eller flera IIS-webbar som visar samma innehåll ur SharePoint. Du kan ge IIS-webbarna olika egenskaper; i det här fallet låter jag den första IIS-webben använda integrerad säkerhet, medan den utökade IIS-webben får formulärbaserad inloggning med ASP.Net 2.0 Membership Provider.

Instruktionerna är mest menade som minnesanteckningar; de förutsätter grundläggande kunskap om IIS 6.0, SSL, ASP.Net 20 och Membership Providers.

Förberedelse: Installera WSS eller MOSS

Installera server och se till att det finns en Web Application med integrerad säkerhet (NTML eller Kerberos). Verifiera att det finns en Site Collection och att du kan logga in.

Skapa en membership-databas

Generera script för att skapa en ASP.Net membership database:
aspnet_regsql -A all -d Moss_AspNetDb -sqlexportonly <filename>

Eventuellt räcker det med -A mp eller -A m.

Kör filen i SQL Server Management Studio, verifiera att databasen ser korrekt ut.

Lägg till servicekontot för IIS-webbarnas application pool till databasrollen AspNet_Membership_BasicAccess. Lägg till ditt eget domänkonto till rollen AspNet_Membership_FullAccess.

Anslut till databasen och skapa en användare

Skapa ett nytt Web Site-projekt i Visual Studio 2005, och konfigurera det med inställningar för membership providern.

Lägg till sektionen connection strings under noden configuration:

<!--Connection strings for membership provider-->

<connectionStrings>

  <add name="Moss_AspNetDb_ConnectionString"

    connectionString="Data Source=DBSERVER;Initial Catalog=Moss_AspNetDb;Integrated Security=True"

    providerName="System.Data.SqlClient" />

</connectionStrings>

Lägg till sektionen membership section under noden system.web:

<!-- membership provider -->

<membership defaultProvider="Extranet">

  <providers>

    <add name="Extranet"

      type="System.Web.Security.SqlMembershipProvider, System.Web,Version=2.0.0.0,

        Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

      connectionStringName="Moss_AspNetDb_ConnectionString"

      enablePasswordRetrieval="false"

      enablePasswordReset="true"

      requiresQuestionAndAnswer="false"

      applicationName="MossExtranet"

      requiresUniqueEmail="true"

      passwordFormat="Hashed"

      maxInvalidPasswordAttempts="5"

      minRequiredPasswordLength="8"

      minRequiredNonalphanumericCharacters="1"

      passwordAttemptWindow="10"

      passwordStrengthRegularExpression="" />

  </providers>

</membership>

Angående val av providernamn: man kan givetvis använda standardnamnet AspNetSqlMembershipProvider. Jag valde att istället använda ”Extranet” eftersom användarkontonamnen får detta som prefix i SharePoint (till exempel Extranet:TestUser).

Application name kan lämnas default ("/"). Men om du, som jag, ändrar till något annat, så måste det vara lika för alla ASP.Net providers i din applikation, annars får du problem.

Testa att inställningarna fungerar genom att starta ASP.Net Configuration (ASP.Net Web Site Administration Tool). Skapa en testanavändare.

Nu är databasen och providern förberedd. Dags att titta på IIS och SharePoint.

Utöka din Web Application

Skapa en ny IIS Web Site och förbered den med SSL med hjälp av IIS Administration tools.

I Central Administration, fliken Application Management, klicka på Create or extend Web application, och välj Extend an existing Web application.

  • Välj den Web Application som ska utökas.
  • Välj din nya IIS Web Site som ska användas för utökningen (eller skapa ny)
  • Port 443 för SSL.
  • Behåll SSL.
  • Kontrollera URL:en, samt ange zon Extranet. Detta kommer att lägga till URL:en som en ”alternate access mapping”, dvs en alternativ adress för din Web Application.

Klicka Ok. Verifiera att du kan logga in på den nya adressen, och att du ser samma innehåll som på den första adressen.

Nu har du två IIS-webbar som visar samma SharePoint-site på två olika URL:er.

Uppdatera web.config båda IIS-webbarna

Lägg till inställningar för SQL membership providern i båda IIS-webbarna. Varför inte bara i den utökade IIS-webben där formulärinloggning ska användas? Jo, för den IIS-webben med integrerad säkerhet kommer att användas för att hantera SharePoint-grupper – och då behöver du söka och lägga till användare från membership providern. Därför måste även den IIS-webben få dessa inställningar.

Tag inställarna i web.config från Web Site-projektet och lägg till i web.config för båda IIS-webbarna (ja, ja,  sluta tjata).

Uppdatera elementet PeoplePickerWildCards med namnet på providern:

<PeoplePickerWildcards>

  <clear />

  <add key="Extranet" value="%" />

</PeoplePickerWildcards>

Eventuellt kan man lägga till en role-provider också, men det har inte jag gjort i det här fallet.

Konfigurera web.config för Central Administration

Det rekommenderas att man lägger till inställningar för membership providern även i Central Administration. Detta är nödvändigt i de fall man centralt behöver tilldela behörigheter eller en policy till en användare från providern.

Jag hoppade över detta tills vidare.

Konfigurera autentiseringsmetod i SharePoint

I Central administration, fliken Application Management, klicka på Authentication Providers.

Ange rätt webbapplikation och klicka på zonen Extranet.

Ändra Authentication Type till ”Forms” och ange ”Extranet” som Membership provider name. Spara inställningarna.

Test

Logga in på den första IIS-webben som vanligt. Ge behörigheter till testanvändaren du skapade tidigare. Det ska fungera att hitta användaren med people pickern.

Öppna den utökade IIS-webben. Du ska nu se SharePoints inloggningsformulär. Verifiera att det går att logga in med testanvändaren.

Administration av användare

Vidareutveckla din Web Site i Visual Studio med sidor för att administrera användare.  Placera webbapplikationen under Central Administration (http://CentralAdminSite:port/MyUserAdministration).

Pretty simple and straight forward.

God Jul.

Technorati tags: ,

0 Comments:

Skicka en kommentar

Links to this post:

Skapa en länk

<< Home