SharePoint セキュリティ基礎入門 / 一般的な落とし穴を避けるため

更新プログラム 12/18/07: 削除するか、既定のグループ名の変更のポール Liebrand のいくつかの技術の結果をご覧ください。 (以下の彼のコメントを見る).

概要:

SharePoint のセキュリティは構成し、管理が容易. ただし, それは本当にその周りに手をラップするいくつかの初めての管理者ことが難しいことを証明して. それだけでなく, その間に構成を行うには持っていなかったので、金曜日までにそれを失っているだけに月曜日に完璧な理解に来ていくつかの管理者を見ています。. (自分自身、この問題を認める). このブログのエントリがうまくいけば有用な SharePoint セキュリティ入門を提供し、いくつかのセキュリティの構成のベスト プラクティスを指して.

重要な注意事項:

この説明は、SharePoint のセキュリティ ボックスから基づいてください。. ここでいくつかのコケ特定のものがありますので、私の個人的経験を向きモス周辺, WSS のため正確だと思いますが、. 私は願って、すべてのエラーまたは不作為を見て誰もが指摘コメントまたは 私にメールします。. ポスト急いで訂正を作ってあげる.

基礎:

この概要の目的のため, セキュリティの 4 つの基本的な側面があります。: ユーザー/グループ, セキュリティ保護可能なオブジェクト, アクセス許可レベルと継承.

ユーザーとグループ ダウンを破る:

  • 個々 のユーザー: ディレクトリまたは SharePoint で直接作成されたアクティブから引っ張ら.
  • グループ: Active directory から直接マップされたまたは作成できる SharePoint. グループは、ユーザーのコレクション. グループは、サイト コレクションのグローバル. 決して「縛られています。" 特定のセキュリティ保護可能なオブジェクトを.

セキュリティ保護可能なオブジェクト 少なくともダウンを破る:

  • サイト
  • ドキュメント ライブラリ
  • リストおよびドキュメント ライブラリ内の個々 のアイテム
  • フォルダー
  • BDC のさまざまな設定.

ありますその他のセキュリティ保護可能なオブジェクト, しかし、画像を取得.

アクセス許可レベル: 粒状のバンドル / リストにエントリを作成、読み取り、削除のようなものは、低レベルのアクセス権.

継承: 既定のエンティティによってそれぞれの格納オブジェクトからセキュリティ設定を継承します。. サブサイトが親からアクセス許可を継承します。. ドキュメント ライブラリは、サイトから継承します。. などなどなど.

ユーザーおよびグループに関連するセキュリティ保護可能なオブジェクトのアクセス許可レベルと継承を介して.

最も重要なセキュリティの規則を理解するには, これまで🙂 :

  1. グループはユーザーの集まりです。.
  2. グループがグローバル サイト コレクション内で (すなわち. サイト レベルで定義されているグループのようなものはありません。).
  3. グループ名は耐されていません, グループにはありません。, 自分の, セキュリティの特定のレベルがあります。.
  4. グループは、特定のセキュリティ保護可能なオブジェクトのコンテキストのセキュリティを持っています。.
  5. すべてのセキュリティ保護可能なオブジェクトの同じグループに異なるアクセス許可レベルを割り当てることがあります。.
  6. Web アプリケーションのポリシーをすべてを切り札 (以下を参照してください。).

セキュリティ管理者グループおよびユーザーのリストの海で失われた常に管理し、セキュリティの構成を理解するこれらの公理を頼ることができます。.

一般的な落とし穴:

  • グループ名を偽って示唆アクセス許可: ボックスのうち, SharePoint は、その名前が示す固有のレベルのセキュリティ グループのセットを定義します. 「投稿者」グループを検討してください. 不慣れな SharePoint のセキュリティのいずれか可能性がありますもその名前を見て、そのグループのすべてのメンバー」が貢献できると仮定" 任意のサイト/リスト/ライブラリは、ポータル内に. することがないので、グループの名前がたまたま「投稿者」. グループはルート サイトにコンテンツを追加/編集/削除することができますアクセス許可レベルを提供されていますので、箱から出して場合のみです。. 継承を通じて, 「貢献者" グループの可能性がありますもすべてのサブサイトでコンテンツを追加/編集/削除. 1 つことができる"破る" 継承チェーンとサブ サイトのアクセス許可レベルを変更してそのメンバーがいわゆる「寄稿者" グループは全然貢献できません。, しかし、読み取りのみ (たとえば). これは良い考えではないだろう, 明らかに, それは非常に混乱すると思いますので.
  • グループは、サイト レベルで定義されていません. ユーザー インターフェイスが混同する簡単です。. マイクロソフトは、すべてのサイトの"ユーザーとグループでユーザー/グループ管理に便利なリンクを提供しています" リンク. それは簡単には私のサイト"xyzzy で信じ" xyzzy の人々 を使用してグループを作成して、グループは、xyzzy でのみ存在するグループを作成したリンク. それはケースではないです。. 私は実際に全体のサイト コレクションのグループを作成しました.
  • グループ メンバーシップがサイトによって変化しません。 (すなわち. それはどこでも同じグループの使用): グループ所有者"を考慮します。" 2 つのサイト, 「HR" 「物流」. それは通常の 2 つの別々 の個人はこれらのサイトを所有するいると思うだろう — HR 所有者と物流の所有者. セキュリティ管理者がこのシナリオを誤って処理するが簡単なユーザー インターフェイス. 私はよく知っていない場合, HR サイトを介してユーザーとグループのリンクをアクセス可能性があります。, "所有者を選択します。" グループし、そのグループに私の HR の所有者を追加. 1 ヶ月後, 物流がオンラインになります。. 物流サイトからユーザーとグループにアクセスします。, "所有者をプルを追加します。" グループ. 人事担当者にして彼女を削除, 物流現場の所有者から彼女を削除いることを考えてください。. 実際, グローバルの所有者グループから彼女を削除して. はしゃぎのすさまじい.
  • 特定の役割に基づく名前グループの失敗: 「承認者" グループは、完璧な例. 何ができるこのグループ承認のメンバー? 彼らはそれを承認することができます。? 私は本当に人々 物流部門人事文書を承認することができるをたく? コースではないです。. 組織内の役割に基づいてグループの名前を常に. これはグループが特定のセキュリティ保護可能なオブジェクトに対して不適切なアクセス許可レベルに割り当てられているリスクを軽減します。. 彼らの意図されていた役割に基づくグループの名前. 前の HR/ロジスティクス シナリオで, 2 つの新しいグループを作成する必要があります。: 「HR の所有者" "物流の所有者" およびそれらのユーザーを自分の仕事を行うに必要な最小限の各の良識があるアクセス許可レベルを割り当てる.

その他の有用な参照:

加えた場合それこれまでのところ:

私のコメントを介して自分の考えを知っている、または私にメールを教えてください。. 他の良い参照を知っている場合, 同じにしないでください。!

Technorati のタグ:

迅速で簡単な: データ ビュー Web パーツを作成します。 (DVWP)

WSS の偉大な情報が満載です。 3.0 データ ビュー Web パーツ (DVWP) 複数のソースから web 上. ただし, 意外にもこの最初の非常に基本的なステップに関する情報を見つけることは困難であることを発見しました。. ここでは、別の記事"クイックと簡単" それに対処するシリーズ.

データ ビュー web パーツを作成する手順に従ってください。 (DVWP). 「お知らせに基づいています。" web パーツ, しかし、ほとんどのリストに適用されます。.

  1. お知らせ web パーツを作成し、サイトを追加.
  2. SharePoint Designer でサイトを開く.
  3. サイトの default.aspx を開く.
  4. お知らせ web パーツを選択し、右クリック.
  5. コンテキスト メニューから, 選択して"変換する XSLT データ ビュー".

SharePoint デザイナーはこのサイトが今そのサイト定義からカスタマイズされた通知します。. それは必ずしも悪いわけではないです。, しかし、重要な意味があります。 (パフォーマンス, アップグレード, その他) この小さな"簡単で使いやすいの範囲外であります。" エントリ. このテーマに関する詳細情報を取得するには, 両方の本をお勧め ここで お好みのインターネット検索だけでなく、.

正しくそれをしたことを確認します:

  1. 閉じ、再度 web ブラウザーを開く (誤って、元"新しい web パーツを追加「再投稿を避けるために).
  2. Web パーツの矢印ドロップダウンを選択し、「共有 Web パーツの変更を選択します" メニューから.
  3. [ツール] パネルの右側に開きます.
  4. パネルはその通常の set オプションの中からこのように変更するには:
イメージ

“SharePoint リストからリスト スキーマの列プロパティを取得できません。” — 説明-回避

今週, 私たち最後に報告された問題を再現するリモート ユーザー: 彼女は excel にリストの内容をエクスポートしようとしました。, 作業を開始することがようであろう, しかし、[Excel エラーをぽんと鳴る: 「SharePoint リストからリスト スキーマの列プロパティを取得できません」. 彼女はオフィスを実行していた 2003, windows XP および MOSS への接続.

インターネットで検索し、いくつかの憶測が、何もを見た 100% 決定的な. それゆえ, このポスト.

問題: ビューを excel にエクスポートする日付が含まれています。 (日付列のデータ型 =).

何が私たちの仕事: 「1 行のテキスト」を日付に変換します。. [, 日付に変換します。.

それを解決します。. 変換が働いて会えて嬉しかった, 実際には. それはことこの方法を変換すると失敗することかなりの緊張でした。, それはしませんでしたが、.

このバグは、クライアントの心の日付データ型に巨大な影を投げています。, だから我々 はマイクロソフトからの決定的な答えを追求するつもりだとうまくいけば、私はポスト、ここで次の短い期間の時間の公式の答えや修正プログラムの情報を更新.

その他の参照:

http://www.kevincornwell.com/blog/index.php/cannot-get-the-list-schema-column-property-from-the-sharepoint-list/

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2383611&SiteID=1

<終了>

私のブログを購読します。.

Technorati のタグ: ,

迅速かつ簡単な: メールに埋め込まれたハイパーリンクを SharePoint Designer ワークフローから送信します。

月 1 回か 2 回, 誰かのフォーラムの質問を投稿します。: "どのように私は、SharePoint Designer メールからクリック可能な URL へのハイパーリンクをは?"

さらにコメントなしを表示: (も, 実際にはそれ以上のコメント後の画像):

イメージ

ベッキー Isserman を参考に説明とのメール アイテムへのリンクを埋め込む方法を追う: http://www.sharepointblogs.com/mosslover/archive/2007/11/20/addition-to-paul-galvin-s-post-about-sending-an-e-mail-with-hyperlinks-in-spd.aspx

新しいリリース: SharePoint Designer ワークフローの拡張機能 (文字列操作関数)

更新プログラム: ここでこのプロジェクトを実用化私の考えを参照してください。: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!569.entry

私は、現在 SharePoint Designer で作成したワークフローの操作拡張機能文字列を提供することに焦点を当てている私の Codeplex プロジェクトに取り組んで忙しかった.

詳細はこちら:

プロジェクト ホーム: http://www.codeplex.com/spdwfextensions

リリース: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=spdwfextensions&ReleaseId=8280

バージョン 1.0 次の新しい機能が含まれています:

関数 説明 (ない同じ場合。Net 関数)
Num エントリ() 番号の"のエントリを返します" 指定された区切り文字に従って文字列で.

たとえば: 文字列内の Num エントリ"a,b,c" 区切り文字"," = 3.

エントリ() 指定された区切り記号に従って文字列の n 番目のトークンを返します.
長さ String.Length
置換() 無害()
含まれています() 文字列()
単語"true"を返します" または単語"false".
部分文字列(開始) String.Substring(開始)
部分文字列(開始,長さ) String.Substring(開始,長さ)
ToUpper() String.ToUpper()
ToLower() String.ToLower()
StartsWith() String.StartsWith()
単語"true"を返します" または単語"false".
EndsWith() String.EndsWith()
単語"true"を返します" または単語"false".

BDC のランタイム エラーは説明しました。

私は自体、ユーザ ・ インタ フェースと明示、BDC エラー数: 原因、 12 ハイブのログ 実行時に.

最初, これは、ユーザー インターフェイスで登場:

すべての識別子は SpecificFinder MethodInstance 名前を正しく実行する値を挿入するフィールドが見つかりませんでした。 … 入力パラメーターがこのエンティティに対して定義されているすべての識別子に関連付けられている TypeDescriptors.

ここではスクリーン ショット:

clip_image001

私はこのメッセージを表示可能性がありますまた、 12 時ハイブ ログは (私の特許取得済みの high-tech-don't-try-this-at-home を使用してください。 「神秘的なエラー" メソッド):

11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C SharePoint Portal サーバー ビジネス データ 6q4x 高例外 BusinessDataWebPart.OnPreRender: されて: 識別子の値 ”, 型の ”, 無効です。. 型 'System.String' の予想される識別子の値. Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific で(オブジェクト[] subIdentifierValues, LobSystemInstance lobSystemInstance) Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity で(エンティティのエンティティ, オブジェクト[] userValues, LobSystemInstance lobSystemInstance) Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance で(ビュー desiredView) Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance で() Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties で()

周りを検索し、いくつかのリードを発見した、 MSDN フォーラム, 彼らは私が何をしていたかを理解するための十分が間違っています。. キャストを見ていた テッド パティソン会社 サーバーと私の問題を実現するために来たにしまい込んでいます。.

ADF で, 示すように、SQL データベースに接続します。:

            <プロパティ 名前="RdbCommandText" タイプ="System.String">
              <![CDATA[
                SETID を選択します。, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      国, 住所 1, 住所 2, 住所 3, ADDRESS4, 市, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      郡, 状態, 郵便, GEO_CODE, IN_CITY_LIMIT, カントリー コード, 携帯電話, 拡張機能, FAX, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG から dbo.PS_CARRIER_ID_VW と (nolock)
                どこ
                  (SETID <> ' 共有 ') と
                  (低い(CARRIER_ID) >= 低(@MinId)) と
                  (低い(CARRIER_ID) <= 低(@MaxId)) と
                  (低い(DESCR) 下のように(@InputDescr))
                ]]>
            </プロパティ>

提供された私はその SQL DBA の人からは理解することそれを与えていて、 特別です 彼らは私のためだけに作成されたビュー. そこの一意キーが CARRIER_ID.

ここでは紹介したバグ:

      <識別子>
        <識別子 名前="CARRIER_ID" TypeName="System.String" />
        <識別子 名前="DESCR" TypeName="System.String" /> 
</識別子>

どこかにラインに沿って, 意味に自分自身を混乱させる管理していた <識別子> にもかかわらず、それは実際に識別子ではありません DESCR を追加. 識別子のセットとプレストから DESCR を取り出した。! それは働きました.

私は、これは誰か、いくつかの悲しみを節約できます願っています🙂

Technorati のタグ: , , ,

SharePoint のリーチを打つことができません。

最後の 2 日間, SharePoint プロジェクトの結果を提案する 2 つの会議に参加しました. CIO と彼のチームの最初の会議に参加しました. それは標準と特に注目されていません。. IT 部門は、技術プロジェクトの全社的展開で明らかに関与しています。. 第 2 回は、V.P を含むように拡張. マーケティングから, いくつかの役員人事を表す, 物流, 製造業, 資本プロジェクト, 品質, 購入, 企業の開発および他の部門 (いくつかの人は、現在のフェーズにも直接関わっていません。). それは強大な幅広い視聴者です。.

私の以前の生活の中で, 私は主に ERP と CRM プロジェクトに取り組んで. かなり広いソリューション ドメインをある SharePoint と同じ幅ではないです。. 完全に実現すること, SharePoint プロジェクトに合法的と必ずしも組織の隅々 に到達します。. 他のどのように多くのエンタープライズ ソリューションがあるのようなものに到達します。? 多くはないです。.

SharePoint は、明らかにこれらの私たちの幸運にこの空間にある巨大な機会を表します. それは技術の絶好の機会を提供します (これがどういうわけかその頭の上になっています。 ここで 「技術習得しなければならない」の下で). しかし、さらに良い, SharePoint はこれらのサービスを介してビジネス プロセスの広範かつ広い範囲に私たちを公開します。. どのように多くの CRM 専門家が会社の製造側で動作します。? どのように多くの ERP のコンサルタントは人材の獲得に人材と仕事します。? SharePoint は、それらの両方を超えています.

何かのよう, 完璧ではないです。, しかし、それはのろわれた良い場所になります。.

愛のため [あなた最も愛する人高等で記入します。], 変更しない、' タイトル’ サイト内の列.

に、 SharePoint のフォーラム, 誰かが時々「タイトルのラベル変更について尋ねる" 削除について「タイトル リストから」.

一番下の行: それをしないでください。!

悲しいことに, ユーザー インターフェイスを示すように、列ラベルの方向変更をできます。:

イメージ

タイトルは「項目に関連付けられた列です" コンテンツ タイプ. 多く, 多く, 多くの CT のこの列を使用し、ここでそれを変更するかどうか, それはどこに波紋します。. そのためには意図していなかった良いチャンスがあります。. あなたがおそらくあなた自身に考えて, 「カスタム ルックアップ リストがあると ' タイトル’ ちょうど列名として意味をなさない, それを変更する ' ステータス コード’ [説明] 列を追加します。" その思考でフォロースルーの名前を変更すると、' タイトル’ 「ステータス コード」に, 各リストのタイトル (ドキュメント ライブラリを含む) "状態コードを変更する" おそらく 発生することが意図していません。.

本当の問題は、これは一方向の変更. UI"を知っています。" その"タイトル" 予約語は、します。. だから, しようとすると"状態コードを変更" 「タイトル」に戻る, それはあなたを防ぐことし、今あなたは コーナーに自分自身を描いた using paint that never dries 🙂

それでは既に変更した場合は、? すべての私たちが望む答えを見ていません。, ラベルを 'Title' に変更するシンプルで簡単な方法であります。. 今すぐ, 最高のアドバイスは「ドキュメント/アイテムのタイトル」のようなものに変更するには. それは、ユーザーの不快感もないかもしれない十分な汎用ラベルです。.

私は私の片付けなくてはいけない事リストに研究することである他のいくつかのアイデアを持っています。:

  • マイクロソフトへの問い合わせ.
  • オブジェクト モデルを使って何か, 多分、機能と組み合わせて.
  • データベース スキーマを理解し、SQL を手動で更新. (しかしこれを行う前に Microsoft にお問い合わせください。; それはサポート契約が無効に可能性が高い).

誰もこの問題を解決する方法を知っている場合, くださいコメントを投稿します。.

更新午後遅く, 11/15: タイトル列がない一覧のタイプを作成する方法について説明しますこのリンクを発見: http://www.venkat.org/index.php/2007/09/03/how-to-remove-title-column-from-a-custom-list/

BDC ADF およびあなたの友人, CDATA

私はいくつか厄介な不要な手-エンコーディングおよびいくつかの例で RdbCommandText に気づいた (MSDN のドキュメントを含む).

コマンド、CDATA タグは「自然の中に折り返すことができます BDC への新規参入を指摘したいですが。" フォーム. だから, この厄介な建設:

<プロパティ 名前="RdbCommandText" タイプ="System.String">
SELECT dbo。MCRS_SETTLEMENT.id, dbo.Dbo から MCRS_SETTLEMENT.settlement。MCRS_SETTLEMENT
どこ (id &gt;@ MinId =) と (id &lt;= @MaxId)
</プロパティ>

この方法をより良い表されることができます。:

<プロパティ 名前="RdbCommandText" タイプ="System.String">
<![CDATA[
SELECT dbo。MCRS_SETTLEMENT.id, dbo.Dbo から MCRS_SETTLEMENT.settlement。MCRS_SETTLEMENT
どこ (id >@ MinId =) と (id <= @MaxId)
]]>
</プロパティ>

</終了>

BDC のプライマー

BDC へのイントロ

機能の例: 組み込みのユーザー id とパスワードで SQL データベースに接続する BDC ADF

BDC を介して SQL データベースにモスを接続するために必要な. テスト/POC 用, ADF の SQL アカウントのユーザー id とパスワードを埋め込みたいです。. 始まる このテンプレート (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), 特定の SQL server インスタンスに接続し、特定のユーザー id とパスワードでログインする ADF を作成このスニペットで表示:

  <LobSystemInstances>
    <LobSystemInstance 名前="ClaimsInstance">
      <プロパティ>
        <プロパティ 名前="認証モード" タイプ="System.String">パススルー</プロパティ>
        <プロパティ 名前="DatabaseAccessProvider" タイプ="System.String">SqlServer</プロパティ>
        <プロパティ 名前="RdbConnection データ ソース" タイプ="System.String">実際の serveractual インスタンス</プロパティ>
        <プロパティ 名前="RdbConnection 初期カタログ" タイプ="System.String">実際の初期カタログ</プロパティ>
        <プロパティ 名前="RdbConnection 統合セキュリティ" タイプ="System.String">SSPI</プロパティ>
        <プロパティ 名前="RdbConnection プール" タイプ="System.String">false</プロパティ>

        <!-- これらのキーの値が: -->
        <プロパティ 名前="RdbConnection ユーザー ID" タイプ="System.String">ctual ユーザー ID</プロパティ>
        <プロパティ 名前="RdbConnection パスワード" タイプ="System.String">実際のパスワード</プロパティ>
        <プロパティ 名前="RdbConnection Trusted_Connection" タイプ="System.String">false</プロパティ>

      </プロパティ>
    </LobSystemInstance>
  </LobSystemInstances>

ベスト プラクティスではないです。, 迅速かつ簡単な構成をテストするために便利ですが、. 今回は意外にも困難を理解するには. 決して、検索キーワード機能例を発見しました。:

  • adf 埋め込まれたユーザー id とパスワード
  • adf でユーザー id とパスワードを埋め込む
  • bdc adf にユーザー id とパスワードを埋め込む
  • sharepoint の bdc のプライマー
  • sharepoint は、adf でユーザー id とパスワードを埋め込む

</終了>

私のブログを購読します。.