Microsoft SharePoint 2010 Connector - Mule 3

Microsoft SharePoint 2010 Connector v1.0

2020 年 10 月の時点で、Microsoft は Sharepoint 2010 のサポートの提供を停止しています。詳細は、 この記事Leaving the Site を参照してください。これにより、基盤となる技術が Microsoft でサポートされなくなるため、Sharepoint 2010 用 Anypoint Connector は非推奨になります。

Sharepoint インテグレーションのニーズに対応できるように、次の Anypoint Connector は引き続き MulseSoft でサポートされます。

  • Sharepoint Connector - Mule 4

  • Sharepoint Online Connector - Mule 3

  • Sharepoint 2013 Connector - Mule 3

  • SharePoint On-Premise Connector - Mule 3

Microsoft SharePoint 2010 用 Anypoint Connector (SharePoint 2010 Connector) は、コンテンツとドキュメントの管理、イントラネットポータル、コラボレーション、エクストラネット、Web サイト、およびエンタープライズ検索用の Web アプリケーションプラットフォームです。このコネクタを使用すると、SOAP API を介した SharePoint 2010 とのインテグレーションが可能になります。

サポートされている操作

  • リストおよびリスト項目の API: リストおよびリスト項目の Create、Delete、Retrieve、Update

  • ファイルおよびフォルダーの API: フォルダーの Create、Delete、Retrieve。ファイルの Add、Retrieve content、Retrieve metadata、Delete、Check out、Undo check out、Check in、Publish、Unpublish、Approve、Deny、Copy

POM ファイル情報

Studio プロジェクトを Maven 化する場合、プロジェクトの pom.xml ファイルでこの情報を使用できます。

<dependency>
  <groupId>org.mule.modules</groupId>
  <artifactId>mule-module-sharepoint-2010</artifactId>
  <version>x.x.x</version>
  <classifier>mule-plugin</classifier>
</dependency>
xml

x.x.x​ を使用しているコネクタに対応するバージョンに置き換えます。

最新の ​pom.xml​ ファイル情報を取得するには、​ Anypoint ExchangeLeaving the Site​ でコネクタにアクセスし、​[Dependency Snippets (連動関係スニペット)]​ をクリックします。

コネクタをインストールする

  1. Anypoint Studio で、Studio タスクバーの Exchange アイコンをクリックします。

  2. Anypoint Exchange で ​[Login (ログイン)]​ をクリックします。

  3. コネクタを検索して ​[Install (インストール)]​ をクリックします。

  4. 画面の指示に従ってコネクタをインストールします。

ユースケースの例

ステップ 1: 新しい Mule プロジェクトの作成

Anypoint Studio が起動したら、新しいプロジェクトを作成します。

  1. メニューから ​[File (ファイル)]​ > ​[New (新規)]​ > ​[Mule Project (Mule プロジェクト)]​ を選択します。

  2. [New Mule Project (新規 Mule プロジェクト)]​ ウィンドウで、​[Project Name (プロジェクト名)]​ として​「sharepoint2010-demo」​を入力します。

  3. [Finish (完了)]​ をクリックします。

ステップ 2: 新しい SharePoint グローバル要素の作成および設定

SharePoint 2010 インスタンスに接続するようにコネクタを設定します。

  1. [Global Elements (グローバル要素)]​ タブをクリックします。

  2. [Create (作成)]​ をクリックして、​[Global Type (グローバル種別)]​ ダイアログボックスを表示します。

  3. [Filter (検索条件)]​ テキストボックスに​「sha」​と入力します。

  4. [Microsoft SharePoint 2010]​ を選択して ​[OK]​ をクリックします。

  5. 必須パラメーターを入力します。詳細は、接続設定を参照してください。

  6. [Test Connection (接続をテスト)]​ をクリックして、正しく接続されることを確認します。

  7. 正常に接続できたら、​[OK]​ をクリックします。

ステップ 3: SharePoint 2010 を照会するフローの作成

「共有ドキュメント」リストを照会するための Mule フローを作成します。

sharepointcanvas

Mule フローを作成する手順は、次のとおりです。

  1. [Message Flow (メッセージフロー)]​ タブをクリックします。

  2. 「http」​を検索し、​HTTP​ Connector をキャンバスにドラッグします。これにより、新しいフローが作成されます。

  3. 「sharepoint」​を検索し、​[Microsoft SharePoint 2010]​ を ​HTTP​ Connector の横の ​[Process (プロセス)]​ 領域にドラッグします。

  4. 「json」​を検索し、​[Object to JSON]​ トランスフォーマーを ​[Microsoft SharePoint 2010]​ の横にドラッグします。

  5. HTTP​ Connector をダブルクリックします。​[Connector Configuration (コネクタ設定)]​ リストの横にある ​[+]​ をクリックします。

  6. [HTTP Listener Configuration (HTTP リスナー設定)]​ ウィンドウで、​[Protocol (プロトコル)]​ を ​[HTTP]​ に設定し、​[Host (ホスト)]​ を ​[All Interfaces [0.0.0.0] (Default) (すべてのインターフェース [0.0.0.0] (デフォルト))]​ に設定し、​[Port (ポート)]​ を ​[8081]​ に設定します。​[OK]​ をクリックします。

  7. [Basic Settings (基本設定)]​ の下で、​[Path (パス)]​ を ​[/query]​ に設定します。

  8. [Microsoft Dynamics SharePoint 2010]​ をダブルクリックして、次の設定値を更新します。

    1. [Connector Configuration (コネクタ設定)]​ リストで、以前に作成した ​[Microsoft SharePoint 2010]​ 設定を選択します。

    2. [Operation (操作)]​ リストから、​[List Item query (リスト項目クエリ)]​ を選択します。

    3. [Language (言語)]​ リストから、​[DataSense Query Language (DataSense クエリ言語)]​ を選択します。

    4. [Query Builder…​ (クエリビルダー…​)]​ をクリックします。

    5. [Types (種別)]​ のリストから、​[Shared Documents (共有ドキュメント)]​ を選択します。

    6. [Fields (項目)]​ のリストから、​[ID]​ と ​[Title (タイトル)]​ を選択します。

    7. [Order By (並び替え基準)]​ リストから、​[Title (タイトル)]​ を選択します。

    8. [Direction (方向)]​ リストから、​[DESCENDING (降順)]​ を選択します。

      sharepointquerybuilder
  9. [OK]​ をクリックします。

ステップ 4: フローの実行

  1. Package Explorer​ で ​[sharepoint2010-demo]​ を右クリックし、​[Run As (別のユーザーとして実行)]​ > ​[Mule Application (Mule アプリケーション)]​ を選択します。

  2. アプリケーションの起動時にコンソールを確認します。エラーが発生していない場合、「DEPLOYED」メッセージが表示されます。

  3. ブラウザーを開き、​http://localhost:8081/query​ に移動します。

  4. ファイル名の降順で並び替えられたドキュメントのリストが JSON 形式で返されます (結果は SharePoint インスタンスに応じて異なります)。

    [{"_ModerationStatus":"0","Editor":{"id":"8","lookUpListName":"User Information List"},"MetaInfo":"vti_parserversion:SR|14.0.0.7015\r\nvti_modifiedby:SR|i:0#.w|mule\\\\muletest\r\nListOneRef:IW|1\r\nvti_folderitemcount:IR|0\r\nvti_foldersubfolderitemcount:IR|0\r\nContentTypeId:SW|0x01010003DD4D13EF6C8446AB329E6FC42FE7BE\r\nvti_title:SW|\r\nvti_author:SR|i:0#.w|mule\\\\muletest\r\n","owshiddenversion":"2","lookUpListName":"Shared Documents","FileLeafRef":"error.txt","UniqueId":"{F0F6C9B9-6942-4866-B254-063EE8B70D59}","_Level":"1","PermMask":"0x7fffffffffffffff","ProgId":"","Last_x0020_Modified":"2015-04-09 16:21:35","Modified":"2015-04-09 16:21:20","DocIcon":"txt","ID":"1","FSObjType":"0","Created_x0020_Date":"2015-04-09 14:57:18","FileRef":"Shared Documents/error.txt"}]
    text

認証スキーム

Microsoft SharePoint 2010 Connector では、次の認証スキームがサポートされます。

  • NTLM Authentication

  • Kerberos 認証

  • クレームベース認証

NTLM Authentication

sharepointntlmconfig

NTLM 認証スキームには次のパラメーターがあります。

パラメーター 説明

Username (ユーザー名)

認証するユーザー。

Password (パスワード)

認証するユーザーのパスワード。

Domain (ドメイン)

SharePoint インスタンスのドメイン。

Site URL (サイト URL)

Microsoft SharePoint サイトへのパス (​https://sharepoint.myorganization.com/site​)。

Disable Cn Check (Cn チェックを無効化)

HTTPS 証明書を処理するとき、証明書に信頼するパートナーの署名がない場合、サーバーから例外が返されることがあります。これを防止するために、CN (一般名) チェックを無効にすることができます。​注意:​ 本番環境では推奨されません。

Kerberos 認証

sharepointkerberosconfig

Kerberos 認証スキームには次のパラメーターがあります。

パラメーター 説明

Username (ユーザー名)

認証するユーザー。

Password (パスワード)

認証するユーザーのパスワード。

Domain (ドメイン)

SharePoint インスタンスのドメイン。

Site URL (サイト URL)

Microsoft SharePoint サイトへのパス (​https://sharepoint.myorganization.com/site​)。

Disable Cn Check (Cn チェックを無効化)

HTTPS 証明書を処理するとき、証明書に信頼するパートナーの署名がない場合、サーバーから例外が返されることがあります。これを防止するために、CN (一般名) チェックを無効にすることができます。​注意:​ 本番環境では推奨されません。

Service Principal Name (SPN) (サービスプリンシパル名 (SPN))

SPN は「host/SERVER-NAME.MYREALM.COM」のようになります。

Realm (レルム)

ユーザーが属するドメイン。この値は大文字と小文字が区別されます。Active Directory で定義されたとおりに正確に指定する必要があります。

KDC

通常、これはドメインコントローラー (サーバー名または IP) です。

高度な Kerberos 設定

環境が複雑であり、詳細な設定が必要な場合は、Kerberos 設定ファイルを手動で作成し、コネクタの接続設定で参照する必要があります。

高度なシナリオでは次のパラメーターを使用できます。

  • Login Properties File Path (ログインプロパティファイルパス)​: カスタマイズされたログインプロパティファイルへのパス。Kerberos ログインモジュール (Krb5LoginModule) は、シナリオ固有の設定を使用し、JAAS ログイン設定ファイルを定義して調整できます。指定しないと、通常であればほとんどのケースで機能するデフォルト値がセットアップされます。このプロパティを設定するための 2 つのオプションがあります。

    • ファイルをクラスパス (通常は ​src/main/resources​ の下) に配置して、プロパティの値を ​classpath:jaas.conf​ に設定します。

    • C:\kerberos\jaas.conf​ のようにファイルへのフルパスを指定します。

  • Kerberos Properties File path (Kerberos プロパティファイルパス)​: カスタマイズされた Kerberos プロパティファイルへのパス。このプロパティを設定するための 2 つのオプションがあります。

    • ファイルをクラスパス (通常は ​src/main/resources​ の下) に配置して、プロパティの値を ​classpath:krb5.conf​ に設定します。

    • C:\kerberos\krb5.conf​ のようにファイルへのフルパスを指定します。

JAAS ログイン設定ファイル

以下は、Kerberos ログインモジュールの JAAS ログイン設定ファイルのサンプルです。

Kerberos {
    com.sun.security.auth.module.Krb5LoginModule required
    debug=true
    refreshKrb5Config=true;
};

Kerberos ログインモジュールの JAAS ログイン設定ファイルの作成方法についての詳細は、 「Krb5LoginModule」Leaving the Site​を参照してください。

Kerberos 設定ファイル

Kerberos 設定ファイルのコンテンツの例を次に示します。

[libdefaults]default_realm = MYREALM.COM[realms]MYREALM.COM = { kdc = mydomaincontroller.myrealm.com default_domain = MYREALM.COM}[domain_realm].myrealm.com = MYREALM.COMmyrealm.com = MYREALM.COM

重要:​ realm と default_domain は大文字と小文字が区別されます。Active Directory で定義されたとおりに正確に指定する必要があります。接続のテスト中に受信する「Message stream modified (41) (メッセージストリームが変更されました (41))」というエラーは、ドメイン名の形式が正しくないことを示しています。

Kerberos 設定ファイルの作成方法についての詳細は、 「krb5_conf」Leaving the Site​を参照してください。

クレームベース認証

sharepointclaimsconfig

クレームベース認証スキームには次のパラメーターがあります。

パラメーター 説明

Username (ユーザー名)

認証するユーザー。

Password (パスワード)

認証するユーザーのパスワード。

Domain (ドメイン)

SharePoint インスタンスのドメイン。

Site URL (サイト URL)

Microsoft SharePoint サイトへのパス (​https://sharepoint.myorganization.com/site​)。

Security Token Service URL (STS URL) (セキュリティトークンサービス URL (STS URL))

ユーザーを認証するためのユーザー名とパスワードを受け入れて WS-Trust 1.3 プロトコルを理解する STS エンドポイント。STS が Microsoft の ADFS (Active Directory フェデレーションサービス) の場合、通常、この URL は次のようになります: https://youradfs.com/adfs/services/trust/13/usernamemixed

Security Token Service (STS) App Identifier (Scope) (セキュリティトークンサービス (STS) アプリケーション識別子 (スコープ))

この文字列は STS 内の SharePoint サイトを識別します。これは、​依存パーティ ID​、​クライアント ID​、​スコープ​、または​領域​とも呼ばれます。STS が Microsoft の ADFS の場合、この値を AD FS 管理コンソールの [AD FS] > [Trust Relationships (信頼関係)] > [Relying Party Trusts (証明書利用者信頼)] > (Sharepoint サイトの証明書利用者プロパティ) > [Identifiers (識別子)] タブで見つけることができます。

Disable Cn Check (Cn チェックを無効化)

HTTPS 証明書を処理するとき、証明書に信頼するパートナーの署名がない場合、サーバーから例外が返されることがあります。これを防止するために、CN (一般名) チェックを無効にすることができます。​注意:​ 本番環境では推奨されません。

注意​: STS アプリケーション識別子​は、Web ブラウザーでサイト URL を開くことでアクセスする SharePoint サイトにログインして取得できます。サイトで複数の認証プロバイダーが設定されている場合、ドロップダウンにいくつかのオプションが表示されます。目的の STS を選択すると、STS のログインページにリダイレクトされます。この時点で、Web ブラウザーのアドレスバーには、クエリパラメーター ​wa=wsignin1.0&wtrealm=uri%3amule%3asp80​ を含む URL が含まれます。パラメーター ​wa​ は、サインインが開始されていることを STS に伝えます。​wtrealm​ には、URL エンコードされた値の STS アプリケーション識別子が含まれます。この例では、​uri%3amule%3asp80​ は ​uri:mule:sp80​ です。エンコードされていない値は、コネクタの設定用のパラメーターです。

セキュリティトークン認証

SAML セキュリティトークンを使用して、SharePoint にログインできます。POST 要求を介して XML 本文を提供することで、Studio の [Security Token (セキュリティトークン)] 項目に入力したセキュリティトークンを取得することができます。

セキュリティトークンを取得するには、次の XML 本文で ​https://login.microsoftonline.com/extSTS.srf​ に POST 要求を実行します。

この要求の応答の <wsse:BinarySecurityToken> タグの間にセキュリティトークンが含まれます。

セキュリティトークンを取得したら、Studio でトークン値を指定します。

  • Security token (セキュリティトークン): 取得したセキュリティトークンを入力します。

  • Site URL (サイト URL): SharePoint サイトの URL を入力します。

リストおよびリスト項目の API 操作

  • List Create

    指定された名前、説明、およびリストテンプレート ID に基づいて現在のサイトにリストを作成します。

  • List Get

    指定されたリストのスキーマを返します。

  • List Get All

    すべての SharePoint リストを取得します。

  • List Delete

    指定されたリストを削除します。

  • List Update

    指定されたリストプロパティに基づいてリストを更新します。

  • List Item Create

    既存の SharePoint リスト内で新しい項目を作成します。

    sharepointobjectbuilder
  • List Item Delete

    SharePoint リストから項目を削除します。

  • List Item Update

    SharePoint リストの項目を更新します。

    sharepointobjectbuilder
  • List Item Query

    SharePoint リストに対してクエリを実行し、指定条件と一致するリスト項目を返します。

    選択した項目に加えて、次の項目が常に返されます。

    • Created: 項目の作成日

    • FileRef: ドキュメントまたは写真ライブラリの場合、ファイルの相対 URL。

    • FSObjType

    • _Level

    • MetaInfo

    • _ModerationStatus

      モデレーションが有効になっているライブラリにファイルが属している場合、ファイルのモデレーション状況。

    • Modified: 項目の変更日

    • PermMask

    • showshiddenversion

    • UniqueId

  • Folder Create

    ドキュメントまたは写真ライブラリにフォルダーを作成します。

  • Folder Delete

    ドキュメントまたは写真ライブラリからフォルダーを削除します。

  • Folder Query

    指定条件と一致するすべてのフォルダーを取得します。

    選択した項目に加えて、次の項目が常に返されます。

    • Created: 項目の作成日

    • Created_x0020_Date

    • Editor: ユーザー

    • FileLeafRef: フォルダーの名前

    • FileRef: フォルダーの相対 URL

    • FSObjType

    • Last_x0020_Modified*

    • _Level

    • MetaInfo

    • _ModerationStatus

      モデレーションが有効になっているライブラリにファイルが属している場合、ファイルのモデレーション状況。

    • Modified: 項目の変更日

    • PermMask

    • ProgId

    • showshiddenversion

    • UniqueId

  • File Add

    ドキュメントまたは写真ライブラリにファイルを追加します。

  • File Get Content

    ファイルのコンテンツを取得します。

  • File Get Metadata

    ファイルのメタデータを取得します。

  • File Delete

    ドキュメントまたは写真ライブラリからファイルを削除します。

  • File Check Out

    ドキュメントライブラリからファイルをチェックアウトします。

  • File Undo Check Out

    ファイルの既存のチェックアウトを元に戻します。

  • File Check In

    ドキュメントライブラリにファイルをチェックインします。

  • File Publish

    内容の承認を申請します。

  • File Unpublish

    内容の承認からファイルを削除するか、メジャーバージョンのパブリッシュを解除します。

  • File Approve

    内容の承認が申請されたファイルを承認します。

  • File Deny

    コンテンツの承認が申請されたファイルの承認を拒否します。

  • File Copy To

    宛先 URL にファイルをコピーします。

  • File Query

    指定条件と一致するフォルダーからすべてのファイルを取得します。

    選択した項目に加えて、次の項目が常に返されます。

    • Created: 項目の作成日

    • Created_x0020_Date

    • DocIcon

    • Editor: ユーザー

    • FileLeafRef: フォルダーの名前

    • FileRef: フォルダーの相対 URL

    • FSObjType

    • Last_x0020_Modified

    • _Level

    • MetaInfo

    • _ModerationStatus

      モデレーションが有効になっているライブラリにファイルが属している場合、ファイルのモデレーション状況。

    • Modified

      項目の変更日

    • PermMask

    • ProgId

    • showshiddenversion

    • UniqueId

オブジェクトの参照

クエリで SharepointListReference または SharepointListMultiValueReference を返すように選択した場合、​[Retrieve full objects for reference fields (参照項目のすべてのオブジェクトを取得)]​ パラメーターの値に応じて項目の戻り値は異なります。

  • オフ: 参照オブジェクトの ID と参照オブジェクトリストの ID を含む概要オブジェクト。

    {
        "Title": "A title",
        "LookupField":
            {
                "id": "1",
                "lookupListName": "aaaa-1111-bbbb-2222"
            },
        "MultiValueLookupField":
            {
                "ids":
                    [
                        "1",
                        "2",
                        "3"
                    ],
                "lookupListName": "cccc-3333-dddd-4444"
            }
    }
    json

    resolve メソッド:

    両方の概要オブジェクト (SharepointListReference または SharepointListMultiValueReference) で、​resolve​ と呼ばれるメソッドを使用できます。

    このメソッドをコールすると、完全に参照されるオブジェクトが返され、項目内の概要オブジェクトが、この解決された参照で置き換えられます。

    たとえば、​LookupField​ で ​resolve​ メソッドをコールすると、リストの ID 「1」とタイトル「aaaa-1111-bbbb-2222」を持つ項目が返され、項目には次の内容が含まれます。

    {
        "Title": "A title",
        "LookupField":
            {
                "ID": "1",
                "lookupListName": "aaaa-1111-bbbb-2222"
                "Title": "Another title",
                "Property": "A property",
                ...
            },
        "MultiValueLookupField":
            {
                "ids":
                    [
                        "1",
                        "2",
                        "3"
                    ],
                "lookupListName": "cccc-3333-dddd-4444"
            }
    }
    json
  • オン: グラフで取得する完全なオブジェクト。

    サイクルがある場合は、概要参照オブジェクトが表示されます。

    "Title": "A title",
        "LookupFieldId":
            {
                "Title": "Another title",
                "Id": "1",
                Property1": "A value",
                ...
            },
        "MultiValueLookupFieldId":
            [
                {
                    "Title": "Another title",
                    "Id": "1",
                    "Property1": "A value",
                    ...
                },
                {
                    "Title": "Another title",
                    "Id": "2",
                    "Property1": "A value",
                    ...
                }
            ]
    }
    json

    注意​: このオプションをオンにすると、多くの参照項目がある大きな項目の取得に時間がかかることがあります。