Sign In
Sep 01
Webinar Series – Using Azure Active Directory to Secure Your Apps

I have presented at many conferences, SharePoint Saturdays and user groups about leveraging Azure Active Directory (Azure AD) for your application authentication and authorization. But, seventy-five minutes is never enough to sufficiently cover the topic. There is just so much information.

Thanks to my friends at ITUnity, I have much more time to dig thru the topic. Starting today (September 2, 2015), I am presenting a three-part series on Azure AD. This gives me the opportunity to go deeper and show more demos. Even some Q & A!

You need to register for the individual events. They will be recorded, and your registration allows you to view the recording at a time that is convenient for you. To register, visit the following links:

​Part 1: Introduction to Azure AD​Wed, Sep 2, 2015 10:00 AM – 11:00 AM CDT
​Part 2: Integrating Azure AD​Wed, Sep 16, 2015 10:00 AM – 11:00 AM CDT
​Part 3: Advanced Azure AD​Wed, Sep 3010:00 AM – 11:00 AM CDT

I hope to see you there!

Jun 01
Azure AD Token Lifetime
May 27
Upcoming Events – June 2015

Fresh on the heels of the //build/ and Ignite conferences, I will be at many events during June. I would be delighted to meet any readers of the blog at these events. Say hi if you are there!

SharePoint Saturday Atlanta – May 30

I'll be delivering two sessions: Getting Started with Office 365 Development and Deep Dive into the Office 365 API for Azure AD. These sessions provide the foundation for apps that consume Office 365 services.

Critical Path Training webinar series – June 4

For this webinar, I'll be talking about Cloud-based Identity for Applications. As your organization moves to the cloud, the need for cloud-based authorization and authentication grows. This talk provides a roadmap for getting up to speed on the options.

Build Tour 2015 Chicago – June 10

This event will cover all the announcements from Build, not just Office 365. I'll be there supporting specifically to answer questions about O365/SharePoint development.

SharePoint Saturday Boston – June 13

Again, I'm presenting the Getting Started with Office 365 Development talk.

DFW SharePoint UG – June 16

For this event, I'm providing my perspectives on SharePoint customization. The talk is titled "Business Solutions in SharePoint - a story of transformation" and covers how we built solutions on SharePoint in the past and how we will do so in the future.

DevCamp: Office – June 18

Free, hands-on training from the DX Group at Microsoft. Bring your laptop with Visual Studio and you'll have a few apps add-ins done before you go home.

SPTechCon Developer Days – June 24-26

This is my first time presenting at an SPTechCon event and I cannot wait! Since this is a developer-focussed event, I have a couple of sessions that go beyond the basics: "A Developer's Guide to SharePoint Search" and "Deep Dive into Native Universal Add-in Development with Office 365 APIs." Be sure to use code SCHAEFLEIN when you register for a discount.

Apr 10
Sharing Content in SharePoint Online
Mar 21
GRDevDay talk on Cloud Identity

I had a wonderful weekend in western Michigan, which included two sessions at the GRDevDay conference. (Think SharePoint Saturday, but for all things developer.) My thanks to the organizers for a job very well done!

The slides from my talk on Cloud Identity are posted on ITUnity.

The Office 365 session can be found on Microsoft Virtual Academy, with the slides and code on GitHub.

Mar 09
SPS DFW Wrap-up

I had a terrific time at the SharePoint Saturday event in Irving, TX this weekend. The developer track consistently had about 20 attendees in the room, which is way more than I've seen at SPS events in the past. In addition, there was a Q&A room, and attendees had Eric and me going for another full hour.

My presentation was taken directly from the O365 TPM group (thanks Jeremy!) and can be found on Microsoft Virtual Academy, with the slides and code on GitHub.

Also, I want to thank the organizers (Eric, Eric, Rich, Corey, Jen, Miguel, Kyle and others I have likely missed) and sponsors (Amazon Web Services, Slalom, Planet Technologies, K2, Metalogix, RBA) for making the event a smashing success!

Feb 13
Who is managing Windows Update for your SharePoint farm?

Microsoft announced this week, via a blog by Senior Escalation Engineer Stefan Goßner that SharePoint CUs will be included in Windows Update. The comments on that post indicated the risk for many SharePoint deployments.

In summary, Stefan acknowledges that due to the number of configurations possible with SharePoint that no guarantee can be made about causing issues in existing code (called a regression). Stefan also points out that production servers should not take updates directly. While many agree with this position, I find that small business administrators (who deal with everything, not just SharePoint) are not well versed in SharePoint patching and just accept the default values.

So, if this situation applies to you, I suggest you look at your Windows Update settings. I'm off to update my DSC configuration to make these changes to my VMs.

Feb 11
Secure storage of credentials in PowerShell

If you search the internet, you will find many different blog/forum posts that show how to store credentials for later use in PowerShell. Most of these will point you toward one of these approaches:

  • Pipe a secure string to a text file
  • Read a secure string from the "host" (doesn't really work in unattended scenarios)
  • Encrypt using the private key of a certificate

Each of these has its disadvantages, which range from deleting the file to exposing the password.

I've settled on a new approach that balances the ease-of-use that PowerShell brings with the security required for sensitive data. The Office Developer Patterns and Practices (OfficeDevPnP) group has a library of cmdlets that includes Get-SPOStoredCredential. Despite the name, it can be used in *all* PowerShell scenarios.

TO use the cmdlet, you first log on to the computer using the appropriate account. Then, run the Credential Manager program that is included in Windows. Create a Generic credential (under Windows Credential). The cmdlet will read the credentials and return a NetworkCredential (for on-premises), a SharePoint Online Credential (for O365) or a PSCredential (which can be used anywhere).

You can get the code for the cmdlets from the GitHub repo, from which you can create an installer or xcopy-like deployment script.

Feb 01
Microsoft Azure IaaS Governance, Provisioning and Desired State Configuration

I have a confession to make…for the last six months, I have been working as a SharePoint architect in an infrastructure group.

Yes, I had to hear about how bad developers are. Yes, I've had to hear the crazy ideas that developers have for deploying code. Yes, I've had to walk a mile in their shoes. Yes, I am a better developer for it.

But, I left the place better than when I arrived. The group has a service request framework that uses out of the box SharePoint functionality. They have a set of automation tools that make their job easier. They have a better understanding of what us developers are trying to do.

This global organization has embraced the cloud service model of IT. (Most services that the business units consume are from a private cloud, but from the BU perspective, that does not matter.) The resources that comprise these services are hosted in Azure IaaS (Virtual Machines). But instead of just using tried and true manual processes for provisioning virtual machines, we put in place an automated framework comprising of SharePoint, PowerShell, Azure and Office 365. The solution provides a flexible, reliable and scalable platform to meet the needs of the business.

I am really excited to be able to tell some of the story in a presentation at the SharePoint Evolutions Conference in London in April 2015. I have a talk that is in the Azure track, with the audience of both IT Pro and Developer. The talk is titled: Microsoft Azure Iaas Governance, Provisioning and Desired State Configuration.

The talk will introduce the high-level goals of the organization. Lots of Visio and PowerPoint, just like an IT Pro. (Yes, this old dog learned a new trick or two.) We will then move into the details around the governance model that leverages SharePoint. Like most large organizations, there are policies to consider, firewalls to configure and chargeback codes to acquire.

Next is the actual provisioning of Azure and Office 365 assets. Both platforms have a rich API. But APIs are not always easy to understand for an administrator who is focused on his servers. I have some examples that leverage compiled code, PowerShell and even javascript. Lastly, the resources require monitoring. Again, the talk will cover the automation available to ensure the environment works as it should. You will learn how to apply configuration declaratively, correct configuration drift and learn of system issues.

It promises to be an information-packed session. But this is just one of many such sessions at the information-packed conference. And, no one puts on a conference like the folks at Combined Knowledge.

I hope to see you there!

Jan 20
Formatting numbers as string in PowerShell

I had to look this up again today (easily the 5th time in the last month). So, to make it easier to look up the 6th time, I'm putting it here.

If you want to format a number as a string, the quickest way is with the –f operator:

    $serverName = "ABC{0:000}D" –f $srvID

The above line, with the $srvID variable equal to 13 will set the $serverName variable to "ABC013D"

More information: http://social.technet.microsoft.com/wiki/contents/articles/4250.string-formatting-in-powershell.aspx#NET_formatting

1 - 10Next