SharePoint të Sigurimit Bazat e parë / Shmangni kurthet e përbashkët

UPDATE 12/18/07: Shih artikullin Paul Liebrand për disa pasoja teknike të hequr apo modifikuar emrat e grupit parazgjedhura (shih komentin e tij poshtë si).

Përmbledhje:

SharePoint security is easy to configure and manage. Megjithatë, it has proven to be difficult for some first-time administrators to really wrap their hands around it. Not only that, I have seen some administrators come to a perfect understanding on Monday only to have lost it by Friday because they didn’t have to do any configuration in the intervening time. (Unë e pranoj për të pasur këtë problem veten). This blog entry hopefully provides a useful SharePoint security primer and points towards some security configuration best practices.

Shënim i rëndësishëm:

This description is based on out of the box SharePoint security. My personal experience is oriented around MOSS so there may be some MOSS specific stuff here, but I believe it’s accurate for WSS. I hope that anyone seeing any errors or omissions will point that out in comments or email mua. I’ll make corrections post haste.

Bazat:

Për qëllimet e këtij shqyrtimi, ekzistojnë katër aspekte themelore të sigurisë: përdoruesit / grupe, objekte securable, Nivelet leje dhe trashëgimia.

Përdoruesit dhe Grupet prishen për:

  • Përdoruesit individualë: Nxorrën nga directory aktive apo krijuar drejtpërdrejtë në SharePoint.
  • Grupet: Mapped directly from active directory or created in SharePoint. Groups are a collection of users. Groups are global in a site collection. They are never "tied" në një objekt specifik securable.

Objekte Securable prishen në të paktën:

  • Sites
  • Document bibliotekat
  • Zërat individualë në listat dhe bibliotekat dokument
  • Dosjet
  • Settings ndryshme QZHB.

Ka objekte të tjera securable, por ju merrni foto.

Nivelet leje: Një pako e grimcuar / low level access rights that include such things as create/read/delete entries in lists.

Trashëgim: By default entities inherit security settings from their containing object. Sub-sites inherit permission from their parent. Document libraries inherit from their site. So on and so forth.

Përdoruesit dhe grupet lidhen me objekte securable nëpërmjet niveleve leje dhe trashëgimia.

Rregullat më të rëndësishme për të kuptuar Siguri, Ever 🙂 :

  1. Grupet janë thjesht koleksionet e përdoruesve.
  2. Grupet janë globale brenda një site collection (i.e. nuk ka asnjë gjë të tillë si një grup i caktuar në një nivel të faqes).
  3. Emri i grupit nuk qëndrojnë, grupe nuk, në vetvete, have any particular level of security.
  4. Groups have security in the context of a specific securable object.
  5. Ju mund të caktojë nivele të ndryshme leje për grupin e njëjtë për çdo objekt securable.
  6. Aplikimi Web politikat atu e gjithë kjo (shih më poshtë).

Administratorët Siguri humbura në një det të grupit dhe lista e përdoruesve gjithmonë mund të mbështeten në këto aksiomat për të menaxhuar dhe për të kuptuar konfigurimin e tyre të sigurisë.

Grackë e përbashkëta:

  • Emrat e grupeve rrejshëm nënkupton leje: Nga kutia, SharePoint defines a set of groups whose names imply an inherent level of security. Consider the group "Contributor". One unfamiliar with SharePoint security may well look at that name and assume that any member of that group can "contribute" to any site/list/library in the portal. That may be true but not because the group’s name happens to be "contributor". This is only true out of the box because the group has been provided a permission level that enables them to add/edit/delete content at the root site. Through inheritance, the "contributors" group may also add/edit/delete content at every sub-site. One can "break" the inheritance chain and change the permission level of a sub-site such that members of the so-called "Contributor" grup nuk mund të kontribuojë në të gjitha, por vetëm lexuar (për shembull). This would not be a good idea, qartë, pasi ajo do të jetë shumë konfuze.
  • Grupet nuk janë të definuara në një nivel të faqes. It’s easy to be confused by the user interface. Microsoft provides a convenient link to user/group management via every site’s "People and Groups" lidhje. It’s easy to believe that when I’m at site "xyzzy" and I create a group through xyzzy’s People and Groups link that I’ve just created a group that only exists at xyzzy. That is not the case. I’ve actually created a group for the whole site collection.
  • Grupet anëtarësimi nuk do të ndryshojnë nga faqja (i.e. ajo është e njëjtë kudo Grupi është përdorur): Consider the group "Owner" dhe dy vende, "HR" and "Logistics". It would be normal to think that two separate individuals would own those sites — an HR owner and a Logistics owner. The user interface makes it easy for a security administrator to mishandle this scenario. If I didn’t know better, Unë mund të hyni në njerëzit dhe grupet lidhjet nëpërmjet faqes së Burimeve Njerëzore, select the "Owners" group and add my HR owner to that group. A month later, Logistics comes on line. I access People and Groups from the Logistics site, add pull up the "Owners" group. I see the HR owner there and remove her, thinking that I’m removing her from Owners at the Logistics site. Në të vërtetë, I’m removing her from the global Owners group. Hilarity ensues.
  • Dështimin për të përmendur grupe të bazuara mbi rolin specifik: The "Approvers" group is a perfect example. What can members of this group approve? Where can they approve it? Do I really want people Logistics department to be able to approve HR documents? Of course not. Always name groups based on their role within the organization. This will reduce the risk that the group is assigned an inappropriate permission level for a particular securable object. Name groups based on their intended role. In the previous HR/Logistics scenario, Unë duhet të ketë krijuar dy grupe të reja: "HR Owners" and "Logistics Owners" dhe të caktojë nivele të ndjeshme leje për secilin dhe shuma minimale e nevojshme për ata përdorues që të bëjnë punën e tyre.

Referencat e tjera të dobishme:

Nëse ju keni bërë deri tani:

Please let me know your thoughts via the comments or email me. If you know other good references, ju lutemi të bëjë të njëjtën!

Technorati Tags:

Quick dhe Easy: Krijo një Dhënave Web Part Shiko (DVWP)

Nuk është një pasuri e madhe e informacionit mbi WSS 3.0 Të dhënat Pjesa Shiko Web-faqen (DVWP) on the web from several sources. Megjithatë, I found it to be surprisingly difficult to find information on this first very basic step. Here is another article in the "quick and easy" seri për të trajtuar atë.

Ndiqni këto hapa për të krijuar një pjesë të të dhënave web view (DVWP). They are based on an "Announcements" Pjesa web, por zbatohen për shumicën e listave të.

  1. Krijoni një pjesë web Shpallje dhe shtoni atë në një vend.
  2. Hapni faqen në SharePoint Designer.
  3. Hapni Default.aspx e faqes.
  4. Select the Announcements web part and right-click.
  5. Nga context menu, select "Convert to XSLT Data View".

SharePoint Designer ju njofton se kjo faqe është përshtatur tashmë nga përkufizimi i saj faqes. Kjo nuk është domosdoshmërisht e keqe, por ka implikime të rëndësishme (Performanca, përmirësuar, të tjerët) which are beyond the scope of this little "Quick and Easy" hyrje. To get more information on this subject, Unë rekomandoj dy libra këtu si dhe kërkimit tuaj të preferuar në internet.

Konfirmoj që ju e bëri atë të saktë:

  1. Mbylle dhe ri-hapur shfletuesin e Internetit (to avoid accidentally re-posting the original "add a new web part").
  2. Select the web part’s arrow drop-down and choose "Modify Shared Web Part" nga menyja.
  3. Paneli mjet hap të drejtë.
  4. Paneli ka ndryshuar nga mundësitë e saj të zakonshme të vendosur për këtë:
imazh

“Nuk mund të merrni skemen listë pronën kolonë nga lista SharePoint” — Përshkrimi i / punë-arounds

Këtë javë, ne fund riprodhohet një problem që kishte qenë raportuar nga një përdorues të largët: Kur ajo u përpoq për të eksportuar përmbajtjen e një liste të shkëlqejnë, gjërat duket se do të fillojnë të punojnë, por pastaj Excel do pop up një gabim: "Cannot get the list schema column property from the SharePoint list". She was running office 2003, windows XP and connecting to MOSS.

I searched the Internets and saw some speculation but nothing 100% definitive. Hence, këtë post.

The problem: Exporting a view to excel that contains a date (date = the data type of the column).

What worked for us: Convert the date to a "single line of text". Pastaj, convert it back to a date.

That solved it. It was nice to see that the conversion worked, në të vërtetë. It was quite nervous that converting things this way would fail, but it did not.

This bug has thrown a huge shadow over the date data type in the client’s mind, so we’re going to be seeking out a definitive answer from Microsoft and hopefully I’ll post and update here in the next short period of time with their official answer and hotfix information.

Other references:

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

<fund>

Abonohen në blogun tim.

Technorati Tags: ,

Shpejtë dhe i thjeshtë: Dërgo një email me hyperlink ngulitur nga workflow SharePoint Designer

Një herë ose dy herë në muaj, Postimet e dikush një pyetje forum: "How do I include hyperlinks to URL’s that are clickable from a SharePoint Designer email?"

Paraqitur pa koment të mëtejshëm: (mirë, në fakt atje është komentuar më tej pas imazhit):

imazh

Becky Isserman vijon me një shpjegim të dobishme se si të embed një lidhje me një artikull në e-mail: 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

Lirimi i ri: SharePoint Designer Workflow Extensions (Funksionet e manipulimit string)

UPDATE: Shiko këtu për mendimet e mia në komercializimin e këtij projekti: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!569.entry

Unë kam qenë i zënë duke punuar në CodePlex projektin tim i cili është fokusuar aktualisht në sigurimin e zgjerimeve manipulimesh string për të krijuar menu me anë të SharePoint Designer.

Shiko këtu për detaje:

Shtëpi projekt: http://www.codeplex.com/spdwfextensions

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

Version 1.0 përfshin këto karakteristika të reja:

Funksion Përshkrim (në qoftë se nuk e njëjtë si. funksion Net)
Num-entries() Kthehet "numri hyra" in a string as per a specified delimiter.

Për shembull: Num-entries in a string "a,b,c" with delimiter "," = 3.

Entry() Returns the nth token in a string as per a specified delimiter.
Length String.Length
Replace() String.Replace()
Përmban() String.Contains()
Returns the word "true" or the word "false".
Substring(start) String.Substring(start)
Substring(start,length) String.Substring(start,length)
ToUpper() String.ToUpper()
ToLower() String.ToLower()
StartsWith() String.StartsWith()
Returns the word "true" or the word "false".
EndsWith() String.EndsWith()
Returns the word "true" or the word "false".

Një gabim QZHB Runtime shpjegoi

Unë shkaktuar një gabim QZHB këtë javë se manifestuar veten në ndërfaqen e përdoruesit dhe në 12 hive log at runtime.

I parë, kjo u shfaq në ndërfaqen e përdoruesit:

Nuk mund të gjejnë fusha për të futur të gjitha vlerat identifikues për të ekzekutuar saktë një MethodInstance SpecificFinder me Emri … Ensure input Parameters have TypeDescriptors associated with every Identifier defined for this Entity.

Ja një e shtënë ekran:

clip_image001

I could also cause this message to appear in the 12 hive log at will (using my patented high-tech-don’t-try-this-at-home "mysterious errors" metodë):

11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C SharePoint Portal Server Business Data 6q4x High Exception in BusinessDataWebPart.OnPreRender: System.InvalidOperationException: The Identifier value ”, of Type ”, is invalid. Expected Identifier value of Type ‘System.String’. at Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Object[] subIdentifierValues, LobSystemInstance lobSystemInstance) at Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Entity entity, Object[] userValues, LobSystemInstance lobSystemInstance) at Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(View desiredView) at Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() at Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()

I searched around and found some leads in the MSDN forum, but they weren’t enough for me to understand what I was doing wrong. I watched a webcast by Ted Pattison that my company has squirreled away on a server and came to realize my problem.

In my ADF, I’m connecting to a SQL database as shown:

            <Pronë Emër="RdbCommandText" Lloj="System.String">
              <![CDATA[
                SELECT
                      SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      COUNTRY, ADDRESS1, ADDRESS2, ADDRESS3, ADDRESS4, CITY, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      COUNTY, STATE, POSTAL, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, PHONE, EXTENSION, FAX, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG
                FROM
                      dbo.PS_CARRIER_ID_VW WITH (nolock)
                WHERE
                  (SETID <> 'SHARE') dhe
                  (lower(CARRIER_ID) >= lower(@MinId)) dhe
                  (lower(CARRIER_ID) <= lower(@ MaxId)) dhe
                  (lower(DESCR) LIKE lower(@InputDescr))
                ]]>
            </Pronë>

I was provided that SQL from a DBA person and I’m given to understand that it’s a i veçantë view they created just for me. The unique key there is CARRIER_ID.

Here is the bug I introduced:

      <Identifiers>
        <Identifier Emër="CARRIER_ID" TypeName="System.String" />
        <Identifier Emër="DESCR" TypeName="System.String" /> 
</Identifiers>

Somewhere along the line, Kisha arritur të ngatërruar veten mbi kuptimin e <Identifiers> and added DESCR even though it’s not actually an identifier. I took DESCR out of the identifiers set and presto! Ajo ka punuar të gjithë.

I hope this saves someone some grief 🙂

Technorati Tags: , , ,

Ju nuk mund të mundi Reach SharePoint së

Gjatë dy ditëve të fundit, I have participated in two meetings during which we presented the results of a SharePoint project. The CIO and his team joined the first meeting. That’s standard and not especially notable. The IT department is obviously involved in an enterprise rollout of any technology project. The second meeting expanded to include a V.P. nga marketingu, disa drejtorë që përfaqësojnë HR, Logjistikë, Prodhim, Projektet kapitale, Cilësi, Blerje, Zhvillimi Corporate dhe departamentet e tjera (disa prej të cilëve nuk ishin edhe direkt të përfshirë në fazën e tanishme). That’s a mighty wide audience.

Në jetën time të mëparshme, I primarily worked on ERP and CRM projects. They both have a fairly wide solution domain but not as wide as SharePoint. To be fully realized, SharePoint projects legitimately and necessarily reach into every nook and cranny of an organization. How many other enterprise solutions have that kind of reach? Not many.

SharePoint clearly represents an enormous opportunity for those of us fortunate enough to be in this space. It provides a great technical opportunity (e cila është kthyer disi mbi kokën e tij këtu under "Technologies You Must Master"). But even better, SharePoint exposes us to an extensive and wide range of business processes through these engagements. How many CRM specialists work with the manufacturing side of the company? How many ERP consultants work with human resources on talent acquisition? SharePoint exceeds them both.

Ashtu si çdo gjë, ajo nuk është e përkryer, por kjo është një vend i mirë për të mallkuar.

Për dashurinë e [plotësoni në personin tuaj më të dashur / të lartë të qenit], don’t change the ‘Title’ Kolona faqe.

On the SharePoint forums, someone occasionally asks about "changing the label of Title" or about "removing title from lists".

Bottom line: A nuk e bëjmë atë!

Mjerisht, user interface lejon një ndryshim njëkahësorësh e asaj etiketë kolonën siç tregohet:

imazh

Title is a column associated with the "Item" tipi i përmbajtjes. Shumë, shumë, many CT’s use this column and if you change it here, it ripples out everywhere. There’s a good chance that you didn’t intend for that to happen. You were probably thinking to yourself, "I have a custom lookup list and ‘Title’ just doesn’t make sense as a column name, so I’m going to change it to ‘Status Code’ and add a description column." But if you follow through on that thought and rename ‘Title’ to ‘Status Code’, every list’s title (including document libraries) changes to "Status Code" and you probably didn’t intend for that to happen.

The real problem is that this is a one-way change. The UI "knows" that "title" is a reserved word. Kështu, if you try and change "Status Code" back to "Title", it will prevent you and now you’ve painted yourself into a corner using paint that never dries 🙂

So what happens if you already changed it? I haven’t seen the answer we all want, which is a simple and easy method to change the label back to ‘Title’. Right now, the best advice is to change it to something like "Doc/Item Title". That’s a generic enough label that may not be too jarring for your users.

I have few other ideas which are on my to-do list of things to research:

  • Contact Microsoft.
  • Do something with the object model, maybe in conjunction with a feature.
  • Figure out the database schema and manually update SQL. (You should contact Microsoft before doing this though; it will likely void your support contract).

If anyone knows how to solve this, ju lutem postoni një koment.

Update late afternoon, 11/15: I found this link that describes a method for creating a type of list that does not have a title column: http://www.venkat.org/index.php/2007/09/03/how-to-remove-title-column-from-a-custom-list/

QZHB FSHZH dhe shoku juaj, CDATA

Unë kam vënë re disa vështirë dhe e panevojshme dore kodifikimin e RdbCommandText në disa shembuj (duke përfshirë dokumentacionin MSDN).

I wanted to point out to newcomers to BDC that commands can be wrapped inside a CDATA tag in their "natural" form. Kështu, Ky ndërtim i vështirë:

<Pronë Emër="RdbCommandText" Lloj="System.String">
SELECT dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement nga dbo.MCRS_SETTLEMENT
WHERE (id &gt;= @ MinID) DHE (id &lt;= @ MaxId)
</Pronë>

mund të jetë më mirë e përfaqësuar në këtë mënyrë:

<Pronë Emër="RdbCommandText" Lloj="System.String">
<![CDATA[
SELECT dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement nga dbo.MCRS_SETTLEMENT
WHERE (id >= @ MinID) DHE (id <= @ MaxId)
]]>
</Pronë>

</fund>

Shembull QZHB

Intro të QZHB

Shembull funksionale: QZHB FSHZH që lidhet me bazën e të dhënave SQL ngulitur me ID e përdoruesit dhe fjalë-kalimin

I needed to wire up MOSS to a SQL database via BDC. For testing/POC purposes, I wanted to embed the SQL account user id and password in the ADF. Starting with Kjo template (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), Unë të krijova një FSHZH-se lidhet me një rast të veçantë SQL server dhe në shkrimet me një ID e përdoruesit dhe fjalë-kalimin dhe specifik treguar në këtë copë:

  <LobSystemInstances>
    <LobSystemInstance Emër="ClaimsInstance">
      <Prona të paluajtshme>
        <Pronë Emër="AuthenticationMode" Lloj="System.String">PassThrough</Pronë>
        <Pronë Emër="DatabaseAccessProvider" Lloj="System.String">SqlServer</Pronë>
        <Pronë Emër="Të dhënat RdbConnection Burimi" Lloj="System.String">server aktuale  shkallës aktuale</Pronë>
        <Pronë Emër="Katalogu RdbConnection fillestare" Lloj="System.String">Katalogu aktuale fillestare</Pronë>
        <Pronë Emër="RdbConnection Integruar të Sigurimit" Lloj="System.String">SSPI</Pronë>
        <Pronë Emër="Grumbullimi RdbConnection" Lloj="System.String">i rremë</Pronë>

        <!-- Këto janë vlerat kryesore: -->
        <Pronë Emër="User ID RdbConnection" Lloj="System.String">njëID ctual përdoruesin</Pronë>
        <Pronë Emër="Fjalëkalimi RdbConnection" Lloj="System.String">Fjalëkalimi aktual</Pronë>
        <Pronë Emër="Trusted_Connection RdbConnection" Lloj="System.String">i rremë</Pronë>

      </Prona të paluajtshme>
    </LobSystemInstance>
  </LobSystemInstances>

Kjo nuk është një praktikë e mirë, but it’s useful for a quick and simple configuration for testing. This was surprisingly difficult to figure out. I never found a functional example with search keywords:

  • FSHZH userid ngulitur dhe fjalëkalimi
  • embed userid dhe password në FSHZH
  • embed userid dhe password në FSHZH QZHB
  • SharePoint abetare QZHB
  • SharePoint id embed përdoruesit dhe fjalëkalimin në FSHZH

</fund>

Abonohen në blogun tim.