SharePoint 2010 에서 FBA를 구성 하는 방법과 Custom Login Page를 만드는 방법을 정리 해 봤습니다.
1. 중앙 관리 사이트 Membership, Role Provider설정하기 | 중앙 관리 사이트 web.config 파일을 열어 아래와 같이 추가 하여 수정한다. <configuration />안쪽에 <connectionStrings> <add name="SQLConnectionString" connectionString="data source=SQLServerName;Integrated Security=SSPI;Initial Catalog=aspnetdb" /> </connectionStrings> <system.web></system.web> 사이에 <roleManager defaultProvider="AspNetWindowsTokenRoleProvider" enabled="true" cacheRolesInCookie="false"> <providers> <add connectionStringName="SQLConnectionString" applicationName="/" description="Stores and retrieves roles from SQL Server" name="SQL-RoleManager" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </providers> </roleManager> <membership defaultProvider="SQL-MembershipProvider"> <providers> <add connectionStringName="SQLConnectionString" passwordAttemptWindow="5" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="true" passwordFormat="Hashed" description="Stores and Retrieves membership data from SQL Server" name="SQL-MembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </providers> </membership> 아래와 같이 "PeoplePickerWildcards" 노드를 찾아 추가한다. <PeoplePickerWildcards> <clear /> <add key="AspNetSqlMembershipProvider" value="%" /> <add key="SQL-MembershipProvider" value="%" /> </PeoplePickerWildcards> |
2. Security Token Service Membership, Role Provider설정하기 | STS서비스의 web.config 파일은 %programfiles%\common files\Microsoft Shared\web server extensions\14\WebServices\SecurityToken 에 있음. <configuration />안쪽에 <connectionStrings> <add name="SQLConnectionString" connectionString="data source=SQLServerName;Integrated Security=SSPI;Initial Catalog=aspnetdb" /> </connectionStrings> <system.web> <roleManager defaultProvider="c" enabled="true" cacheRolesInCookie="false"> <providers> <add name="c" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthRoleProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" /> <add connectionStringName="SQLConnectionString" applicationName="/" description="Stores and retrieves roles from SQL Server" name="SQL-RoleManager" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </providers> </roleManager> <membership defaultProvider="i"> <providers> <add name="i" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" /> <add connectionStringName="SQLConnectionString" passwordAttemptWindow="5" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="true" passwordFormat="Hashed" description="Stores and Retrieves membership data from SQL Server" name="SQL-MembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </providers> </membership> </system.web> |
3. ASPNET Membership DB설치 | 1. SharePoint 2010 서버에서 명령 프롬프트를 연다. 2. C:\Windows\Micrsooft .Net\Framework64\v2.0.50727 폴더로 이동 3. “aspnet_regsql.exe” 실행. 실행 하면 아래와 같은 마법사가 나옴. Database 이름을 <default>로 놓고 진행하면 "aspnetdb" 라는 멤버쉽 db가 생성됨. 4. Aspnetdb에 SharePoint Service Application Pool 계정이 읽고 쓰기 권한을 할당 함. |
4. Web Application 생성 | Form Based Authentication을 지원하는 Web Application을 아래와 같이 생성한다. 1. 중앙 관리사이트를 연다. 2. 응용프로그램 관리 아래의 웹 응용프로그램 관리 클릭 3. 리본 메뉴의 "new" 클릭 4. 페이지 상단 Claims based Authentication 선택 a. Claims Based Authentication 선택 a. Host Header와 Port 지정 c. 익명 인증 설정 d. \Membership Provider와 Role Provider 이름 설정 e. Custom Sign In Page 지정 f. Contents Database이름 변경 g. Save를 눌러 실행한다. 5. 사이트 모음 생성하기. a. 앞서 실행 결과 화면에서 "Create Site Collection"을 클릭 b. 창을 닫았다면 응용 프로그램 관리 클릭 후 사이트 모음 생성 클릭 c. 웹 응용프로그램 선택 확인 d. 사이트 제목과 템플릿 지정 e. 사이트 관리자 지정 f. OK버튼을 눌러 생성완료 |
5. 생성된 Web Application web.config 수정 | C:\inetpub\wwwroot\wss\VirtualDirectories\ 아래에서 생성한 Web Application 폴더내의 web.config 파일을 연다. <configuration />안쪽에 <connectionStrings> <add name="SQLConnectionString" connectionString="data source=SQLServerName;Integrated Security=SSPI;Initial Catalog=aspnetdb" /> </connectionStrings> <system.web></system.web> 사이에 <roleManager defaultProvider="c" enabled="true" cacheRolesInCookie="false"> <providers> <add name="c" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthRoleProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" /> <add connectionStringName="SQLConnectionString" applicationName="/" description="Stores and retrieves roles from SQL Server" name="SQL-RoleManager" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </providers> </roleManager> <membership defaultProvider="i"> <providers> <add name="i" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" /> <add connectionStringName="SQLConnectionString" passwordAttemptWindow="5" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="true" passwordFormat="Hashed" description="Stores and Retrieves membership data from SQL Server" name="SQL-MembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </providers> </membership> 아래와 같이 "PeoplePickerWildcards" 노드를 찾아 추가한다. <PeoplePickerWildcards> <clear /> <add key="AspNetSqlMembershipProvider" value="%" /> <add key="SQL-MembershipProvider" value="%" /> </PeoplePickerWildcards> Command Prompt에서 IISRESET 이후 사이트를 연다. |