質問

私は、バックエンドシステムからデータを取得するためのカスタムBCSモデルを実装しています。それ独自のユーザー管理バックエンドの用途として、私はサービスアカウントからアクセスしています。

このすべてがうまく機能し、私は、SharePointにデータをプルすることができます。それはサービスアカウントに通されますので、しかし、誰もが悪いである、それをアクセスすることができます。

缶誰も私の方法は、実装するためにいくつかのヒントを与えて?バックエンドは、私のNT ACLを与えるものではありませんが、私は何とかちょうど「偽」彼らできたのだろうか? (基本的には良い十分です「これNTグループは、リードアクセスが持っている」と言って)ます。

私は、検索結果のためのISecurityTrimmer2の承知していますが、それは同様に外部リストに適用されるように、理想的に私は、BCSモデル内部のカバーのセキュリティにしたいです。私は、セキュアなストレージを使用し、バックエンドに個々のユーザをマッピングしないようにしたい。

役に立ちましたか?

解決

ガット答えここを。私はWindowsSecurityDescriptorFieldするBCSモデルにフィールドを設定することができますし、私はACLを作成するには、私のBCSの方法でカスタムコードを使用することができます:

Byte[] GetSecurityDescriptor(string domain, string username)
{
    NTAccount acc = new NTAccount(domain, username);
    var sid = (SecurityIdentifier)acc.Translate(typeof(SecurityIdentifier));
    CommonSecurityDescriptor sd = new CommonSecurityDescriptor(false, false,
        ControlFlags.None,sid,null, null, null);
    sd.SetDiscretionaryAclProtection(true, false);

    //Deny access to everyone
    SecurityIdentifier everyone = new SecurityIdentifier(
        WellKnownSidType.WorldSid, null);
    sd.DiscretionaryAcl.RemoveAccess(AccessControlType.Allow, everyone, 
      unchecked((int)0xffffffffL), InheritanceFlags.None, PropagationFlags.None);

    //Grant full access to specified user
    sd.DiscretionaryAcl.AddAccess(AccessControlType.Allow, sid,
      unchecked((int)0xffffffffL), InheritanceFlags.None, PropagationFlags.None);

    byte[] secDes = new Byte[sd.BinaryLength];
    sd.GetBinaryForm(secDes, 0);

    return secDes;
}

このはうまく機能し、私はバックエンドシステムとActive Directoryの間でユーザーを翻訳した後、私はカスタムACLを作成することができます。

私はまだBCSモデルの一部としてセキュリティを持っている場合、誰かが別の方法を持っている場合は聞いて興味を持っています。

他のヒント

あなたがセキュアストアを避けたい場合は、

は、それが唯一の選択肢のように聞こえるパススルーです。キャッチは、あなたがNTLMを使用することができないということです。あなたは、外部システムへのSharePointサーバーにユーザーの資格情報を渡しているので、NTLMは、ID委任のために許可していないので、あなたは、Kerberosを使用する必要があります。そのADは、アイデンティティを委任することが許可されていることを知っているので、ID委任のためにKerberosを使用して、あなたはあなたのサービスのためのSPN(サービスプリンシパル名)を作成する必要があります。

の認証あなたへ外部システム

を参照してください。のKerberos認証 SPNを作成するため、この記事でます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top