Developing Applications with Azure Active Directory: Principles of Authentication and Authorization for Architects and Developers