Monday, December 21, 2015

Identity models for Office365

There are three identity models available for tenants using Office 365 (O365). Choosing one of the models will impact the way user accounts are managed and how users would log in to their Office 365 subscriptions.

The models available are:
  1. Cloud identity model : All user accounts are store on the cloud in Azure Active Directory(AD). The Azure AD is the active directory used by O365 The tenant administrators could manage users through the O365 admin center.
  2. Synchronized identity model: In this model the user identity is managed in an on-premises server and the accounts and password hashes are synchronized to the cloud. The user enters the same password on-premises as they do in the cloud, and at sign-in the password is verified by Azure AD. This model uses the Microsoft Azure Active Directory Sync Tool (DirSync). Link: http://go.microsoft.com/fwlink/p/?LinkID=510956
  3. Federated identity model: This model also requires a synchronized identity, however the on-premise AD would validate the user credentials. This model uses ADFS or any other third party Identity provided supported by Microsoft. The identity providers supported are given here 

Upgrading Content Types in SharePoint 2010/2013

Most developers who used SharePoint 2007 faced issues with adding fields to content types post deployment. The fields were usually not propagated to the lists and libraries when deployed through the solution package.

SharePoint 2010 introduced new elements in the CAML schema to offer a solution for this problem.

The solution was providing an  element within the element to indicate that a feature has to be upgraded. The UpgradeActions element can have a child element  to add a new field to the already provisioned content type. 

Using this technique allows for propagation of changes to the content type to the child lists and content types.

Please find the usage below:

xml version="1.0" encoding="utf-8" ?>
<Feature xmlns="http://schemas.microsoft.com/sharepoint/">
  <UpgradeActions>
    <VersionRange BeginVersion="1.0.0.0" EndVersion="2.0.0.0">
      <AddContentTypeField
              ContentTypeId="0x010XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
              FieldId="{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"
              PushDown="TRUE"/>   
    </VersionRange>
  </UpgradeActions>

</Feature>