SP2013オンプレミス, フォームベース認証、クレームベース、カスタムログインページ、カスタムメンバーシップの組み合わせ。(sharepoint 2013 on-premise form based authentication (claims based) with custom login page and custom membership provider)

SharePoint 2010からクレームベース認証を使うのが推奨になりました。2013からは必須になったようです。
フォームベース認証をクレームベースにする場合には[sharepoint 2013 security token service(セキュリティトークンサービス)]のWeb.configのカスタマイズも必要になります。
また[custom membership provider(カスタムメンバーシッププロバイダー)]を使うと、さらに複雑になってきますのでポイントだけ書いておきます。

  1.  Configuring SharePoint2013 Forms-Based Authentication with Custom MemberShipProvider(フォームベース認証でカスタムメンバーシッププロバイダーを設定する)
    1. Image(MSDNより http://msdn.microsoft.com/en-us/library/office/hh394901(v=office.14).aspx) High-level claims-based authentication process
    2. Enable Form Based Authentication (FBA) – フォームベース認証を有効にする
      1. MSDNより、以下は SQL membershipだが自作のCustommbershipを追加する。
        clip_image003
      2. FBAのURLをいれておく xxxxxx/LoginPage.ASPX–>Web.configを書き換えてくれる。
      3. Allow Annonymousにする。
  2. Congiure  Web.config  of Sharepoint Application (アプリケーションページの設定)
    1. ASP.NET forms Auth Allowing access to Specific file Master page and  LoginPage.ASPX – ログインページとマスターページにアクセス許可しておく。
      1. <locationpath=“~/XXXXX/Default.aspx”> ~省略~<allow users=“*”/>~省略~
      2. <locationpath=“~/XXXXX/xxxx.master”~省略~<allow users=“*”/>~省略~
    2. Add  Custom membership provider (自分で作成した Custom membership providerを追加する。)
    3. Add  Custom memberShip provider to People Picker Pickup
      これでメンバーシップを読んでSharePointのユーザ等追加できるようになる。
  3. Configure Web.config of Sharepoint Security Token Service (セキュリティトークンサービス)
    1. Add Custom memership provider
      クレイムベース認証の際に、Windows認証だけでなく 自分で作成したCustom Membership Providerで認証できるようになる。
    2. Custom Membership Provider    のvalidateuser内でチェックがされるので、できたらここで認証チェックのプログラムを書く
  4. Configure Web.config of Sharepoint Central Administration (Sharepoint サーバの全体管理)
    1. Add Custom membership provider (自分で作成した Custom membership providerを追加する。)
    2. Add Custom memberShip provider to People Picker Pickup
  5. Custom LoginPage.apsx
    1. SPClaimsUtility.AuthenticateFormsUser method
      クレイムベース認証を行う。
    2. LoginPage.aspx.cs is inheritanced UnsecuredLayoutsPageBase
      これがないと anonymouse authenticationで 401  or 403 unauthorizedになる
    3. Add  true of AllowAnonymousAccess to LoginPage.aspx.cs
      これがないと anonymouse authenticationで 401  or 403 unauthorizedになる
  6. 注意
    1. alternate access mapping , host-based site  and pass-based site – 代替マッピング、 パスベース及びホスト名付きサイトコレクション、
      1. 設定をしておかないとstsでサイトの存在チェックをしているので、外部からの呼び出しには設定必要です。

Apps for SharePoint(office365) でテナント操作できるのですね。いいサンプル見つけた。

いいサンプルをみつけたので、報告します。

Apps for SharePointでリスト等は簡単にとれますが。

さて、テナントにサイトを作るとかはとても難しいですが、

動くサンプルありました!!

CodePlex

GitHub

 

たとえばこの中の以下のソリューションを開きます。

  • Samples\Provisioning.SiteCollectionCreation\Provisioning.SiteCollectionCreation.sln

 

配置先に自分の開発サイトを指定して、F5実行します。

sp_tenant010

Visual Studio2013でSharePoint用アプリの設定をみてみます。

テナントのアクセス許可 FullControlになっています。

Microsoft.Online.SharePoint.Client.Tenant というDllが参照されています。

これでOffice365のサイトコレクション(Site Collections)とかもとれそうです。

sp_tenant020

 

Apps for Office が Excel Onlineから追加できるようになりました!(Office用アプリ)

いままではローカルのOffice2013がないとアプリ追加できませんでしたが、

Excel Onlineからそのまま、アプリが追加できるようになりました!!

これはとても便利になる感じでした。

excelonlineAppbuton

 

それと、Excel Onlineって、同僚とかと共同編集するとカーソルの位置まで共有するので、ローカルのエクセルよりすごくなるじゃないと、Excel Onlineならではの機能に驚いた