SlideShare a Scribd company logo
Mastering Modern Authentication and Authorization
Techniques for SharePoint, Office 365 and Azure AD
Eric Shupps
President
BinaryWave
Level: Intermediate
About Me
Eric Shupps
Office Servers & Services MVP
@eshupps
sharepointcowboy
slideshare.net/eshupps
linkedin.com/in/eshupps
github.com/eshupps
Agenda
• Introduction
• Authentication
• Authorization
• Permissions
Introduction
Development Models
Full Trust
SSO*
NTLM/FBA
Inherited
Add-Ins
MSO
OAuth
Explicit
SPFx
MSO
OAuth
Inherited
Azure
SSO
OAuth
Multi-Tenant
Challenges
• User authentication on-premises and in the cloud
• Managing identities across different application types
• Obtaining, storing and processing authorization tokens
• Traversing applications within a single tenant context
• Deploying applications to multiple tenants
• Supporting mobile devices and apps
Authentication
Add-Ins
• Wide range of supported authentication types
– On-Premises: NTLM, FBA, Other
– Cloud: FBA, Azure AD, Other
– (NOTE: Anonymous with app-only permissions)
• Distributed identity management
• Instance-based consent framework
• Multiple contexts
– Explicit (PHA – JSOM, REST, Graph)
– Implicit (SHA - JSOM)
SPFx
• Inherits authentication type from parent
• Centralized identity management (out of scope)
• Instance-based consent framework
• Inherited context
• Limited native connectivity (GraphHttpClient,
SPHttpClient)
Azure AD
• Single sign on across all cloud applications
– Singe tenant
– Multi-tenant
• Centralized API-accessible identity management
• User or tenant consent framework (with optional group
assignment)
• Explicit context per endpoint
– SharePoint requires certificate exchange
DEMO
Single Sign-On in an Azure AD Web Application
Authorization
OAuth
• Open standard for app integration and authorization
• Authentication independent
• Token-based scheme for enforcement of explicit trust
relationships
• Permission scopes (grants) define access boundaries
• Explicit or inherited authorization context
OAuth Flow
• Authorization Endpoint
• Application Registration
• User/Admin Consent
• Authorization Code
• Access Token
• Refresh Token
User App Provider
User requests
access
App requests
Request Token
Provider returns
Request Token
App builds auth
link w/ Request
Token
User requests URL +
Request Token
Provider returns
access token
User requests URL +
Access Token
App validates
access token
Access token
validated
User granted
access
1
2
3
Reference: https://oauth.net/2/
Authorization Flows
Authorization
Exchange authorization
codes for access tokens
Refresh tokens enable
long-lived sessions
Designed for native
clients and server-side
API’s
Client
Credential
Requires app
authorization consent
from administrator
Shared secrets or
certificates used to
request tokens
Designed for interactive
apps and server-to-
server scenarios
Implicit
Retrieve access tokens
directly from single
endpoint
No refresh tokens (local
session management
only)
Designed for SPA's
(requires manifest
modification)
Token Management
• Use authorization/request tokens to obtain short-
lived access tokens
• Include access tokens in resource calls
• Store refresh tokens to obtain new access tokens
upon expiration
• Track tokens by tenant (multi-tenant), app or user
• Force token expiration to prompt authentication
• Utilize client secret only in confidential client apps
Token ConfigurationProperty Policy String Affects Default Minimum Maximum
Access Token Lifetime AccessTokenLifetime Access tokens, ID
tokens, SAML 2 tokens
1 hour 10 minutes 1 day
Refresh Token Max
Inactive Time
MaxInactiveTime Refresh tokens 90 days 10 minutes 90 days
Single-Factor Refresh
Token Max Age
MaxAgeSingleFactor Refresh tokens (for any
users)
Until revoked 10 minutes Until revoked
Multi-Factor Refresh
Token Max Age
MaxAgeMultiFactor Refresh tokens (for any
users)
Until revoked 10 minutes Until revoked
Single-Factor Session
Token Max Age
MaxAgeSessionSingleFa
ctor
Session tokens
(persistent and non-
persistent)
Until revoked 10 minutes Until revoked
Multi-Factor Session
Token Max Age
MaxAgeSessionMultiFac
tor
Session tokens
(persistent and non-
persistent)
Until revoked 10 minutes Until revoked
Reference: http://bit.ly/2IUuJNo
DEMO
Client Credential Authorization Flow in Azure AD Web Application
with Microsoft Graph
SPFx Authorization• ADAL.js* or msal.js
AadHttpClient &
MSGraphClient
• Manage permissions in Azure
portal via SharePoint Online
Client Extensibility app
• Include scope requests in
package-solution.json
• Tenant-wide admin consent
• Manageable via O365 admin
center
• BEWARE FREQUENT SIGN-
INS!
• EACH PAGE IS AN APP!
https://docs.microsoft.com/en-us/sharepoint/dev/spfx/use-aadhttpclient
Reference: http://bit.ly/2IUcqId
Web Parts
• ADAL.js implements a
single configuration
instance on the page
• Patch required to isolate
auth tokens to individual
web parts
• Specify web part ID in
configuration
• Page URL’s are part of
trusted contract with
Azure AD
Mobile Applications
• Register app in Azure
• Configure redirect URI
• Configure manifest with oauth2AllowImplicitFlow = true
• Assign permission grant
• Use ADAL.js for authorization
• Leverage the Authenticator for SSO across applications
Reference: http://bit.ly/2rTEzW1
DEMO
Using ADAL.js in an SPFx Web Part
Permissions
Add-In Permission Scopes
Scope URI Available Rights
http://sharepoint/content/tenant Read, Write, Manage, FullControl
http://sharepoint/content/sitecollection Read, Write, Manage, FullControl
http://sharepoint/content/sitecollection/web Read, Write, Manage, FullControl
http://sharepoint/content/sitecollection/web/list Read, Write, Manage, FullControl
http://sharepoint/bcs/connection Read
http://sharepoint/search QueryAsUserIgnoreAppPrincipal
http://sharepoint/social/tenant Read, Write, Manage, FullControl
http://sharepoint/social/core Read, Write, Manage, FullControl
http://sharepoint/social/microfeed Read, Write, Manage, FullControl
http://sharepoint/taxonomy Read,Write
Reference: http://bit.ly/2wW4lOr
SPFx Permissions• Graph (v2.0)
– Specify resource and scope in the
package-solution.json file (dynamic
consent)
• Azure AD
– Permission requests must be
approved by tenant admin
– Manage permission scopes via Azure
portal or O365 Admin Center
– Grants are TENANT SCOPED and
apply to all SPFx solutions
– Removing a solution DOES NOT
revoke permission grant(s)
– All grants associate with SharePoint
Online Client Extensibility service
principal
Reference: http://bit.ly/2IUcqId
PS C:> Enable-SPOTenantServicePrincipal
Azure AD Permission Grants
• Types
– Application
– Delegated
• Administrative Level
– Minimum: “Sign in and read user profile”
– Beware permission level restrictions for consent
• Resources
• Exchange Yammer Azure AD
• SharePoint Online Power BI Azure Management
• O365 Management Skype
Reference: http://bit.ly/2rV8FII
Consent Framework
• User must agree to accept defined permissions
– Consent applies only for that specific user
– Prompt identifies permission scopes
– Avoid unnecessary scopes
– Blocked from consent if admin scopes present
• Admin can agree on behalf of entire tenant
– Prevents user prompts
• Scope changes require new consent
Dynamic Consent
• Azure AD v2 endpoints
• Permission scopes defined in application manifest
• User provides consent “on the fly”
– Requires user interaction
• Not compatible with implicit flow
• Beware admin consent scopes
Reference: http://bit.ly/2XuEhUs
DEMO
Specifying Permissions for Azure AD Web Applications
https://www.slideshare.net/eshupps
https://www.github.com/eshupps

More Related Content

What's hot

Microsoft Office 365 Commercial Licensing from Atidan
Microsoft Office 365 Commercial Licensing from AtidanMicrosoft Office 365 Commercial Licensing from Atidan
Microsoft Office 365 Commercial Licensing from Atidan
David J Rosenthal
 
Log4j2 - A deep dive into the logging services in Mulesoft with On-Prem deplo...
Log4j2 - A deep dive into the logging services in Mulesoft with On-Prem deplo...Log4j2 - A deep dive into the logging services in Mulesoft with On-Prem deplo...
Log4j2 - A deep dive into the logging services in Mulesoft with On-Prem deplo...
MysoreMuleSoftMeetup
 
Running a Comprehensive Application Security Program with Checkmarx and Threa...
Running a Comprehensive Application Security Program with Checkmarx and Threa...Running a Comprehensive Application Security Program with Checkmarx and Threa...
Running a Comprehensive Application Security Program with Checkmarx and Threa...
Denim Group
 
Journey Through The Cloud - Security Best Practices
Journey Through The Cloud - Security Best Practices Journey Through The Cloud - Security Best Practices
Journey Through The Cloud - Security Best Practices
Amazon Web Services
 
Introducing AWS Fargate
Introducing AWS FargateIntroducing AWS Fargate
Introducing AWS Fargate
Amazon Web Services
 
IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)
MarkTaylorIBM
 
Monitor Azure Kubernetes Cluster With Prometheus by Mamta Jha
Monitor Azure Kubernetes Cluster With Prometheus by Mamta JhaMonitor Azure Kubernetes Cluster With Prometheus by Mamta Jha
Monitor Azure Kubernetes Cluster With Prometheus by Mamta Jha
CodeOps Technologies LLP
 
IBM MQ High Availability 2019
IBM MQ High Availability 2019IBM MQ High Availability 2019
IBM MQ High Availability 2019
David Ware
 
Upgrade to 3.1 Planning.pdf
Upgrade to 3.1 Planning.pdfUpgrade to 3.1 Planning.pdf
Upgrade to 3.1 Planning.pdf
Marna Walle
 
CCI2018 - Azure Network - Security Best Practices
CCI2018 - Azure Network - Security Best PracticesCCI2018 - Azure Network - Security Best Practices
CCI2018 - Azure Network - Security Best Practices
walk2talk srl
 
APIConnect Security Best Practice
APIConnect Security Best PracticeAPIConnect Security Best Practice
APIConnect Security Best Practice
Shiu-Fun Poon
 
Introduction to Amazon EKS
Introduction to Amazon EKSIntroduction to Amazon EKS
Introduction to Amazon EKS
Amazon Web Services
 
Azure Key Vault - Getting Started
Azure Key Vault - Getting StartedAzure Key Vault - Getting Started
Azure Key Vault - Getting Started
Taswar Bhatti
 
Nakivo overview
Nakivo overviewNakivo overview
Nakivo overview
Nick Luchkov
 
Event driven microservices
Event driven microservicesEvent driven microservices
Event driven microservices
Anthony Martin
 
Designing IBM MQ deployments for the cloud generation
Designing IBM MQ deployments for the cloud generationDesigning IBM MQ deployments for the cloud generation
Designing IBM MQ deployments for the cloud generation
David Ware
 
ZStack for Datacenter as a Service - Product Deck
ZStack for Datacenter as a Service - Product DeckZStack for Datacenter as a Service - Product Deck
ZStack for Datacenter as a Service - Product Deck
Ryo Ardian
 
Let's Talk About: Azure Networking
Let's Talk About: Azure NetworkingLet's Talk About: Azure Networking
Let's Talk About: Azure Networking
Pedro Sousa
 
Denver MuleSoft Meetup: Deep Dive into Anypoint Runtime Fabric Security
Denver MuleSoft Meetup: Deep Dive into Anypoint Runtime Fabric Security Denver MuleSoft Meetup: Deep Dive into Anypoint Runtime Fabric Security
Denver MuleSoft Meetup: Deep Dive into Anypoint Runtime Fabric Security
Stephanie Lawrence
 
Understanding Azure Networking Services
Understanding Azure Networking ServicesUnderstanding Azure Networking Services
Understanding Azure Networking Services
InCycleSoftware
 

What's hot (20)

Microsoft Office 365 Commercial Licensing from Atidan
Microsoft Office 365 Commercial Licensing from AtidanMicrosoft Office 365 Commercial Licensing from Atidan
Microsoft Office 365 Commercial Licensing from Atidan
 
Log4j2 - A deep dive into the logging services in Mulesoft with On-Prem deplo...
Log4j2 - A deep dive into the logging services in Mulesoft with On-Prem deplo...Log4j2 - A deep dive into the logging services in Mulesoft with On-Prem deplo...
Log4j2 - A deep dive into the logging services in Mulesoft with On-Prem deplo...
 
Running a Comprehensive Application Security Program with Checkmarx and Threa...
Running a Comprehensive Application Security Program with Checkmarx and Threa...Running a Comprehensive Application Security Program with Checkmarx and Threa...
Running a Comprehensive Application Security Program with Checkmarx and Threa...
 
Journey Through The Cloud - Security Best Practices
Journey Through The Cloud - Security Best Practices Journey Through The Cloud - Security Best Practices
Journey Through The Cloud - Security Best Practices
 
Introducing AWS Fargate
Introducing AWS FargateIntroducing AWS Fargate
Introducing AWS Fargate
 
IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)
 
Monitor Azure Kubernetes Cluster With Prometheus by Mamta Jha
Monitor Azure Kubernetes Cluster With Prometheus by Mamta JhaMonitor Azure Kubernetes Cluster With Prometheus by Mamta Jha
Monitor Azure Kubernetes Cluster With Prometheus by Mamta Jha
 
IBM MQ High Availability 2019
IBM MQ High Availability 2019IBM MQ High Availability 2019
IBM MQ High Availability 2019
 
Upgrade to 3.1 Planning.pdf
Upgrade to 3.1 Planning.pdfUpgrade to 3.1 Planning.pdf
Upgrade to 3.1 Planning.pdf
 
CCI2018 - Azure Network - Security Best Practices
CCI2018 - Azure Network - Security Best PracticesCCI2018 - Azure Network - Security Best Practices
CCI2018 - Azure Network - Security Best Practices
 
APIConnect Security Best Practice
APIConnect Security Best PracticeAPIConnect Security Best Practice
APIConnect Security Best Practice
 
Introduction to Amazon EKS
Introduction to Amazon EKSIntroduction to Amazon EKS
Introduction to Amazon EKS
 
Azure Key Vault - Getting Started
Azure Key Vault - Getting StartedAzure Key Vault - Getting Started
Azure Key Vault - Getting Started
 
Nakivo overview
Nakivo overviewNakivo overview
Nakivo overview
 
Event driven microservices
Event driven microservicesEvent driven microservices
Event driven microservices
 
Designing IBM MQ deployments for the cloud generation
Designing IBM MQ deployments for the cloud generationDesigning IBM MQ deployments for the cloud generation
Designing IBM MQ deployments for the cloud generation
 
ZStack for Datacenter as a Service - Product Deck
ZStack for Datacenter as a Service - Product DeckZStack for Datacenter as a Service - Product Deck
ZStack for Datacenter as a Service - Product Deck
 
Let's Talk About: Azure Networking
Let's Talk About: Azure NetworkingLet's Talk About: Azure Networking
Let's Talk About: Azure Networking
 
Denver MuleSoft Meetup: Deep Dive into Anypoint Runtime Fabric Security
Denver MuleSoft Meetup: Deep Dive into Anypoint Runtime Fabric Security Denver MuleSoft Meetup: Deep Dive into Anypoint Runtime Fabric Security
Denver MuleSoft Meetup: Deep Dive into Anypoint Runtime Fabric Security
 
Understanding Azure Networking Services
Understanding Azure Networking ServicesUnderstanding Azure Networking Services
Understanding Azure Networking Services
 

Similar to Mastering Modern Authentication and Authorization Techniques for SharePoint, Office 365 and Azure AD

Mastering Modern Authentication and Authorization for SharePoint and Office A...
Mastering Modern Authentication and Authorization for SharePoint and Office A...Mastering Modern Authentication and Authorization for SharePoint and Office A...
Mastering Modern Authentication and Authorization for SharePoint and Office A...
Eric Shupps
 
[Shupps] Introduction to Azure Web Applications for Office and SharePoint Dev...
[Shupps] Introduction to Azure Web Applications for Office and SharePoint Dev...[Shupps] Introduction to Azure Web Applications for Office and SharePoint Dev...
[Shupps] Introduction to Azure Web Applications for Office and SharePoint Dev...
European Collaboration Summit
 
ECS 2018: Introduction to Azure Web Applications
ECS 2018: Introduction to Azure Web ApplicationsECS 2018: Introduction to Azure Web Applications
ECS 2018: Introduction to Azure Web Applications
Eric Shupps
 
Api security
Api security Api security
Api security
teodorcotruta
 
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
Brian Campbell
 
SPUnite17 Introduction to Azure Web Applications
SPUnite17 Introduction to Azure Web ApplicationsSPUnite17 Introduction to Azure Web Applications
SPUnite17 Introduction to Azure Web Applications
NCCOMMS
 
Integration step up session
Integration step up sessionIntegration step up session
Integration step up session
Amit Behere
 
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Atlassian
 
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Atlassian
 
Understanding SharePoint Apps, authentication and authorization infrastructur...
Understanding SharePoint Apps, authentication and authorization infrastructur...Understanding SharePoint Apps, authentication and authorization infrastructur...
Understanding SharePoint Apps, authentication and authorization infrastructur...
SPC Adriatics
 
Oauth Nightmares Abstract OAuth Nightmares
Oauth Nightmares Abstract OAuth Nightmares Oauth Nightmares Abstract OAuth Nightmares
Oauth Nightmares Abstract OAuth Nightmares
Nino Ho
 
Two-factor Authentication
Two-factor AuthenticationTwo-factor Authentication
Two-factor Authentication
PortalGuard dba PistolStar, Inc.
 
Building an Effective Architecture for Identity and Access Management.pdf
Building an Effective Architecture for Identity and Access Management.pdfBuilding an Effective Architecture for Identity and Access Management.pdf
Building an Effective Architecture for Identity and Access Management.pdf
Jorge Alvarez
 
APIs_ An Introduction.pptx
APIs_ An Introduction.pptxAPIs_ An Introduction.pptx
APIs_ An Introduction.pptx
AkashThorat25
 
Securing SharePoint Apps with OAuth
Securing SharePoint Apps with OAuthSecuring SharePoint Apps with OAuth
Securing SharePoint Apps with OAuth
Kashif Imran
 
Identity Access and Management with Globus
Identity Access and Management with GlobusIdentity Access and Management with Globus
Identity Access and Management with Globus
Globus
 
How to Use Stormpath in angular js
How to Use Stormpath in angular jsHow to Use Stormpath in angular js
How to Use Stormpath in angular js
Stormpath
 
Jenkins Terraform Vault
Jenkins Terraform VaultJenkins Terraform Vault
Jenkins Terraform Vault
Shrivatsa Upadhye
 
Claims-Based Identity in SharePoint 2010
Claims-Based Identity in SharePoint 2010Claims-Based Identity in SharePoint 2010
Claims-Based Identity in SharePoint 2010
Danny Jessee
 
An Authentication and Authorization Architecture for a Microservices World
An Authentication and Authorization Architecture for a Microservices WorldAn Authentication and Authorization Architecture for a Microservices World
An Authentication and Authorization Architecture for a Microservices World
VMware Tanzu
 

Similar to Mastering Modern Authentication and Authorization Techniques for SharePoint, Office 365 and Azure AD (20)

Mastering Modern Authentication and Authorization for SharePoint and Office A...
Mastering Modern Authentication and Authorization for SharePoint and Office A...Mastering Modern Authentication and Authorization for SharePoint and Office A...
Mastering Modern Authentication and Authorization for SharePoint and Office A...
 
[Shupps] Introduction to Azure Web Applications for Office and SharePoint Dev...
[Shupps] Introduction to Azure Web Applications for Office and SharePoint Dev...[Shupps] Introduction to Azure Web Applications for Office and SharePoint Dev...
[Shupps] Introduction to Azure Web Applications for Office and SharePoint Dev...
 
ECS 2018: Introduction to Azure Web Applications
ECS 2018: Introduction to Azure Web ApplicationsECS 2018: Introduction to Azure Web Applications
ECS 2018: Introduction to Azure Web Applications
 
Api security
Api security Api security
Api security
 
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
 
SPUnite17 Introduction to Azure Web Applications
SPUnite17 Introduction to Azure Web ApplicationsSPUnite17 Introduction to Azure Web Applications
SPUnite17 Introduction to Azure Web Applications
 
Integration step up session
Integration step up sessionIntegration step up session
Integration step up session
 
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
 
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
 
Understanding SharePoint Apps, authentication and authorization infrastructur...
Understanding SharePoint Apps, authentication and authorization infrastructur...Understanding SharePoint Apps, authentication and authorization infrastructur...
Understanding SharePoint Apps, authentication and authorization infrastructur...
 
Oauth Nightmares Abstract OAuth Nightmares
Oauth Nightmares Abstract OAuth Nightmares Oauth Nightmares Abstract OAuth Nightmares
Oauth Nightmares Abstract OAuth Nightmares
 
Two-factor Authentication
Two-factor AuthenticationTwo-factor Authentication
Two-factor Authentication
 
Building an Effective Architecture for Identity and Access Management.pdf
Building an Effective Architecture for Identity and Access Management.pdfBuilding an Effective Architecture for Identity and Access Management.pdf
Building an Effective Architecture for Identity and Access Management.pdf
 
APIs_ An Introduction.pptx
APIs_ An Introduction.pptxAPIs_ An Introduction.pptx
APIs_ An Introduction.pptx
 
Securing SharePoint Apps with OAuth
Securing SharePoint Apps with OAuthSecuring SharePoint Apps with OAuth
Securing SharePoint Apps with OAuth
 
Identity Access and Management with Globus
Identity Access and Management with GlobusIdentity Access and Management with Globus
Identity Access and Management with Globus
 
How to Use Stormpath in angular js
How to Use Stormpath in angular jsHow to Use Stormpath in angular js
How to Use Stormpath in angular js
 
Jenkins Terraform Vault
Jenkins Terraform VaultJenkins Terraform Vault
Jenkins Terraform Vault
 
Claims-Based Identity in SharePoint 2010
Claims-Based Identity in SharePoint 2010Claims-Based Identity in SharePoint 2010
Claims-Based Identity in SharePoint 2010
 
An Authentication and Authorization Architecture for a Microservices World
An Authentication and Authorization Architecture for a Microservices WorldAn Authentication and Authorization Architecture for a Microservices World
An Authentication and Authorization Architecture for a Microservices World
 

More from Eric Shupps

Microsoft Ignite 2022 - Scaling, Securing, Managing, and Publishing Power Pla...
Microsoft Ignite 2022 - Scaling, Securing, Managing, and Publishing Power Pla...Microsoft Ignite 2022 - Scaling, Securing, Managing, and Publishing Power Pla...
Microsoft Ignite 2022 - Scaling, Securing, Managing, and Publishing Power Pla...
Eric Shupps
 
Scaling, Securing, Managing, and Publishing Power Platform Custom Connectors....
Scaling, Securing, Managing, and Publishing Power Platform Custom Connectors....Scaling, Securing, Managing, and Publishing Power Platform Custom Connectors....
Scaling, Securing, Managing, and Publishing Power Platform Custom Connectors....
Eric Shupps
 
A Beginners Guide to Custom Connectors for Power Apps and Power Automate
A Beginners Guide to Custom Connectors for Power Apps and Power AutomateA Beginners Guide to Custom Connectors for Power Apps and Power Automate
A Beginners Guide to Custom Connectors for Power Apps and Power Automate
Eric Shupps
 
App to AppExchange - A Journey from Idea to Market for Salesforce Developers
App to AppExchange - A Journey from Idea to Market for Salesforce DevelopersApp to AppExchange - A Journey from Idea to Market for Salesforce Developers
App to AppExchange - A Journey from Idea to Market for Salesforce Developers
Eric Shupps
 
Beginners Guide to Custom Connectors for Power Apps and Power Automate
Beginners Guide to Custom Connectors for Power Apps and Power AutomateBeginners Guide to Custom Connectors for Power Apps and Power Automate
Beginners Guide to Custom Connectors for Power Apps and Power Automate
Eric Shupps
 
OSW06 - A Real World Guide to Building Highly Available Fault Tolerant ShareP...
OSW06 - A Real World Guide to Building Highly Available Fault Tolerant ShareP...OSW06 - A Real World Guide to Building Highly Available Fault Tolerant ShareP...
OSW06 - A Real World Guide to Building Highly Available Fault Tolerant ShareP...
Eric Shupps
 
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the EnterpriseOSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
Eric Shupps
 
Developing SharePoint Framework Solutions for the Enterprise (SPC 2019)
Developing SharePoint Framework Solutions for the Enterprise (SPC 2019)Developing SharePoint Framework Solutions for the Enterprise (SPC 2019)
Developing SharePoint Framework Solutions for the Enterprise (SPC 2019)
Eric Shupps
 
Developing SharePoint Framework Solutions for the Enterprise - SEF 2019
Developing SharePoint Framework Solutions for the Enterprise - SEF 2019Developing SharePoint Framework Solutions for the Enterprise - SEF 2019
Developing SharePoint Framework Solutions for the Enterprise - SEF 2019
Eric Shupps
 
SharePoint and Office 365 Development Workshop
SharePoint and Office 365 Development WorkshopSharePoint and Office 365 Development Workshop
SharePoint and Office 365 Development Workshop
Eric Shupps
 
SharePoint 24x7x365 Architecting for High Availability, Fault Tolerance and D...
SharePoint 24x7x365 Architecting for High Availability, Fault Tolerance and D...SharePoint 24x7x365 Architecting for High Availability, Fault Tolerance and D...
SharePoint 24x7x365 Architecting for High Availability, Fault Tolerance and D...
Eric Shupps
 
Overcoming Gender Imbalance in the Technical Field
Overcoming Gender Imbalance in the Technical FieldOvercoming Gender Imbalance in the Technical Field
Overcoming Gender Imbalance in the Technical Field
Eric Shupps
 
Enterprise Content Management Solutions in SharePoint and Office 365
Enterprise Content Management Solutions in SharePoint and Office 365Enterprise Content Management Solutions in SharePoint and Office 365
Enterprise Content Management Solutions in SharePoint and Office 365
Eric Shupps
 
Introduction to the Office Dev PnP Core Libraries
Introduction to the Office Dev PnP Core LibrariesIntroduction to the Office Dev PnP Core Libraries
Introduction to the Office Dev PnP Core Libraries
Eric Shupps
 
SharePoint and Office Development Workshop
SharePoint and Office Development WorkshopSharePoint and Office Development Workshop
SharePoint and Office Development Workshop
Eric Shupps
 
From Zero to Hero: A Real World Guide to Building High Availability SharePoin...
From Zero to Hero: A Real World Guide to Building High Availability SharePoin...From Zero to Hero: A Real World Guide to Building High Availability SharePoin...
From Zero to Hero: A Real World Guide to Building High Availability SharePoin...
Eric Shupps
 
SharePoint and Office 365 Performance Best Practices
SharePoint and Office 365 Performance Best PracticesSharePoint and Office 365 Performance Best Practices
SharePoint and Office 365 Performance Best Practices
Eric Shupps
 
Introduction to Azure Web Applications for Office and SharePoint Developers
Introduction to Azure Web Applications for Office and SharePoint DevelopersIntroduction to Azure Web Applications for Office and SharePoint Developers
Introduction to Azure Web Applications for Office and SharePoint Developers
Eric Shupps
 
Introduction to Azure Web Applications for Office and SharePoint Developers
Introduction to Azure Web Applications for Office and SharePoint DevelopersIntroduction to Azure Web Applications for Office and SharePoint Developers
Introduction to Azure Web Applications for Office and SharePoint Developers
Eric Shupps
 
Rev Your Engines - SharePoint Performance Best Practices
Rev Your Engines - SharePoint Performance Best PracticesRev Your Engines - SharePoint Performance Best Practices
Rev Your Engines - SharePoint Performance Best Practices
Eric Shupps
 

More from Eric Shupps (20)

Microsoft Ignite 2022 - Scaling, Securing, Managing, and Publishing Power Pla...
Microsoft Ignite 2022 - Scaling, Securing, Managing, and Publishing Power Pla...Microsoft Ignite 2022 - Scaling, Securing, Managing, and Publishing Power Pla...
Microsoft Ignite 2022 - Scaling, Securing, Managing, and Publishing Power Pla...
 
Scaling, Securing, Managing, and Publishing Power Platform Custom Connectors....
Scaling, Securing, Managing, and Publishing Power Platform Custom Connectors....Scaling, Securing, Managing, and Publishing Power Platform Custom Connectors....
Scaling, Securing, Managing, and Publishing Power Platform Custom Connectors....
 
A Beginners Guide to Custom Connectors for Power Apps and Power Automate
A Beginners Guide to Custom Connectors for Power Apps and Power AutomateA Beginners Guide to Custom Connectors for Power Apps and Power Automate
A Beginners Guide to Custom Connectors for Power Apps and Power Automate
 
App to AppExchange - A Journey from Idea to Market for Salesforce Developers
App to AppExchange - A Journey from Idea to Market for Salesforce DevelopersApp to AppExchange - A Journey from Idea to Market for Salesforce Developers
App to AppExchange - A Journey from Idea to Market for Salesforce Developers
 
Beginners Guide to Custom Connectors for Power Apps and Power Automate
Beginners Guide to Custom Connectors for Power Apps and Power AutomateBeginners Guide to Custom Connectors for Power Apps and Power Automate
Beginners Guide to Custom Connectors for Power Apps and Power Automate
 
OSW06 - A Real World Guide to Building Highly Available Fault Tolerant ShareP...
OSW06 - A Real World Guide to Building Highly Available Fault Tolerant ShareP...OSW06 - A Real World Guide to Building Highly Available Fault Tolerant ShareP...
OSW06 - A Real World Guide to Building Highly Available Fault Tolerant ShareP...
 
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the EnterpriseOSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
 
Developing SharePoint Framework Solutions for the Enterprise (SPC 2019)
Developing SharePoint Framework Solutions for the Enterprise (SPC 2019)Developing SharePoint Framework Solutions for the Enterprise (SPC 2019)
Developing SharePoint Framework Solutions for the Enterprise (SPC 2019)
 
Developing SharePoint Framework Solutions for the Enterprise - SEF 2019
Developing SharePoint Framework Solutions for the Enterprise - SEF 2019Developing SharePoint Framework Solutions for the Enterprise - SEF 2019
Developing SharePoint Framework Solutions for the Enterprise - SEF 2019
 
SharePoint and Office 365 Development Workshop
SharePoint and Office 365 Development WorkshopSharePoint and Office 365 Development Workshop
SharePoint and Office 365 Development Workshop
 
SharePoint 24x7x365 Architecting for High Availability, Fault Tolerance and D...
SharePoint 24x7x365 Architecting for High Availability, Fault Tolerance and D...SharePoint 24x7x365 Architecting for High Availability, Fault Tolerance and D...
SharePoint 24x7x365 Architecting for High Availability, Fault Tolerance and D...
 
Overcoming Gender Imbalance in the Technical Field
Overcoming Gender Imbalance in the Technical FieldOvercoming Gender Imbalance in the Technical Field
Overcoming Gender Imbalance in the Technical Field
 
Enterprise Content Management Solutions in SharePoint and Office 365
Enterprise Content Management Solutions in SharePoint and Office 365Enterprise Content Management Solutions in SharePoint and Office 365
Enterprise Content Management Solutions in SharePoint and Office 365
 
Introduction to the Office Dev PnP Core Libraries
Introduction to the Office Dev PnP Core LibrariesIntroduction to the Office Dev PnP Core Libraries
Introduction to the Office Dev PnP Core Libraries
 
SharePoint and Office Development Workshop
SharePoint and Office Development WorkshopSharePoint and Office Development Workshop
SharePoint and Office Development Workshop
 
From Zero to Hero: A Real World Guide to Building High Availability SharePoin...
From Zero to Hero: A Real World Guide to Building High Availability SharePoin...From Zero to Hero: A Real World Guide to Building High Availability SharePoin...
From Zero to Hero: A Real World Guide to Building High Availability SharePoin...
 
SharePoint and Office 365 Performance Best Practices
SharePoint and Office 365 Performance Best PracticesSharePoint and Office 365 Performance Best Practices
SharePoint and Office 365 Performance Best Practices
 
Introduction to Azure Web Applications for Office and SharePoint Developers
Introduction to Azure Web Applications for Office and SharePoint DevelopersIntroduction to Azure Web Applications for Office and SharePoint Developers
Introduction to Azure Web Applications for Office and SharePoint Developers
 
Introduction to Azure Web Applications for Office and SharePoint Developers
Introduction to Azure Web Applications for Office and SharePoint DevelopersIntroduction to Azure Web Applications for Office and SharePoint Developers
Introduction to Azure Web Applications for Office and SharePoint Developers
 
Rev Your Engines - SharePoint Performance Best Practices
Rev Your Engines - SharePoint Performance Best PracticesRev Your Engines - SharePoint Performance Best Practices
Rev Your Engines - SharePoint Performance Best Practices
 

Recently uploaded

Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
David Brossard
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 

Recently uploaded (20)

Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 

Mastering Modern Authentication and Authorization Techniques for SharePoint, Office 365 and Azure AD

  • 1. Mastering Modern Authentication and Authorization Techniques for SharePoint, Office 365 and Azure AD Eric Shupps President BinaryWave Level: Intermediate
  • 2. About Me Eric Shupps Office Servers & Services MVP @eshupps sharepointcowboy slideshare.net/eshupps linkedin.com/in/eshupps github.com/eshupps
  • 3. Agenda • Introduction • Authentication • Authorization • Permissions
  • 6. Challenges • User authentication on-premises and in the cloud • Managing identities across different application types • Obtaining, storing and processing authorization tokens • Traversing applications within a single tenant context • Deploying applications to multiple tenants • Supporting mobile devices and apps
  • 8. Add-Ins • Wide range of supported authentication types – On-Premises: NTLM, FBA, Other – Cloud: FBA, Azure AD, Other – (NOTE: Anonymous with app-only permissions) • Distributed identity management • Instance-based consent framework • Multiple contexts – Explicit (PHA – JSOM, REST, Graph) – Implicit (SHA - JSOM)
  • 9. SPFx • Inherits authentication type from parent • Centralized identity management (out of scope) • Instance-based consent framework • Inherited context • Limited native connectivity (GraphHttpClient, SPHttpClient)
  • 10. Azure AD • Single sign on across all cloud applications – Singe tenant – Multi-tenant • Centralized API-accessible identity management • User or tenant consent framework (with optional group assignment) • Explicit context per endpoint – SharePoint requires certificate exchange
  • 11. DEMO Single Sign-On in an Azure AD Web Application
  • 13. OAuth • Open standard for app integration and authorization • Authentication independent • Token-based scheme for enforcement of explicit trust relationships • Permission scopes (grants) define access boundaries • Explicit or inherited authorization context
  • 14. OAuth Flow • Authorization Endpoint • Application Registration • User/Admin Consent • Authorization Code • Access Token • Refresh Token User App Provider User requests access App requests Request Token Provider returns Request Token App builds auth link w/ Request Token User requests URL + Request Token Provider returns access token User requests URL + Access Token App validates access token Access token validated User granted access 1 2 3 Reference: https://oauth.net/2/
  • 15. Authorization Flows Authorization Exchange authorization codes for access tokens Refresh tokens enable long-lived sessions Designed for native clients and server-side API’s Client Credential Requires app authorization consent from administrator Shared secrets or certificates used to request tokens Designed for interactive apps and server-to- server scenarios Implicit Retrieve access tokens directly from single endpoint No refresh tokens (local session management only) Designed for SPA's (requires manifest modification)
  • 16. Token Management • Use authorization/request tokens to obtain short- lived access tokens • Include access tokens in resource calls • Store refresh tokens to obtain new access tokens upon expiration • Track tokens by tenant (multi-tenant), app or user • Force token expiration to prompt authentication • Utilize client secret only in confidential client apps
  • 17. Token ConfigurationProperty Policy String Affects Default Minimum Maximum Access Token Lifetime AccessTokenLifetime Access tokens, ID tokens, SAML 2 tokens 1 hour 10 minutes 1 day Refresh Token Max Inactive Time MaxInactiveTime Refresh tokens 90 days 10 minutes 90 days Single-Factor Refresh Token Max Age MaxAgeSingleFactor Refresh tokens (for any users) Until revoked 10 minutes Until revoked Multi-Factor Refresh Token Max Age MaxAgeMultiFactor Refresh tokens (for any users) Until revoked 10 minutes Until revoked Single-Factor Session Token Max Age MaxAgeSessionSingleFa ctor Session tokens (persistent and non- persistent) Until revoked 10 minutes Until revoked Multi-Factor Session Token Max Age MaxAgeSessionMultiFac tor Session tokens (persistent and non- persistent) Until revoked 10 minutes Until revoked Reference: http://bit.ly/2IUuJNo
  • 18. DEMO Client Credential Authorization Flow in Azure AD Web Application with Microsoft Graph
  • 19. SPFx Authorization• ADAL.js* or msal.js AadHttpClient & MSGraphClient • Manage permissions in Azure portal via SharePoint Online Client Extensibility app • Include scope requests in package-solution.json • Tenant-wide admin consent • Manageable via O365 admin center • BEWARE FREQUENT SIGN- INS! • EACH PAGE IS AN APP! https://docs.microsoft.com/en-us/sharepoint/dev/spfx/use-aadhttpclient Reference: http://bit.ly/2IUcqId
  • 20. Web Parts • ADAL.js implements a single configuration instance on the page • Patch required to isolate auth tokens to individual web parts • Specify web part ID in configuration • Page URL’s are part of trusted contract with Azure AD
  • 21. Mobile Applications • Register app in Azure • Configure redirect URI • Configure manifest with oauth2AllowImplicitFlow = true • Assign permission grant • Use ADAL.js for authorization • Leverage the Authenticator for SSO across applications Reference: http://bit.ly/2rTEzW1
  • 22. DEMO Using ADAL.js in an SPFx Web Part
  • 24. Add-In Permission Scopes Scope URI Available Rights http://sharepoint/content/tenant Read, Write, Manage, FullControl http://sharepoint/content/sitecollection Read, Write, Manage, FullControl http://sharepoint/content/sitecollection/web Read, Write, Manage, FullControl http://sharepoint/content/sitecollection/web/list Read, Write, Manage, FullControl http://sharepoint/bcs/connection Read http://sharepoint/search QueryAsUserIgnoreAppPrincipal http://sharepoint/social/tenant Read, Write, Manage, FullControl http://sharepoint/social/core Read, Write, Manage, FullControl http://sharepoint/social/microfeed Read, Write, Manage, FullControl http://sharepoint/taxonomy Read,Write Reference: http://bit.ly/2wW4lOr
  • 25. SPFx Permissions• Graph (v2.0) – Specify resource and scope in the package-solution.json file (dynamic consent) • Azure AD – Permission requests must be approved by tenant admin – Manage permission scopes via Azure portal or O365 Admin Center – Grants are TENANT SCOPED and apply to all SPFx solutions – Removing a solution DOES NOT revoke permission grant(s) – All grants associate with SharePoint Online Client Extensibility service principal Reference: http://bit.ly/2IUcqId PS C:> Enable-SPOTenantServicePrincipal
  • 26. Azure AD Permission Grants • Types – Application – Delegated • Administrative Level – Minimum: “Sign in and read user profile” – Beware permission level restrictions for consent • Resources • Exchange Yammer Azure AD • SharePoint Online Power BI Azure Management • O365 Management Skype Reference: http://bit.ly/2rV8FII
  • 27. Consent Framework • User must agree to accept defined permissions – Consent applies only for that specific user – Prompt identifies permission scopes – Avoid unnecessary scopes – Blocked from consent if admin scopes present • Admin can agree on behalf of entire tenant – Prevents user prompts • Scope changes require new consent
  • 28. Dynamic Consent • Azure AD v2 endpoints • Permission scopes defined in application manifest • User provides consent “on the fly” – Requires user interaction • Not compatible with implicit flow • Beware admin consent scopes Reference: http://bit.ly/2XuEhUs
  • 29. DEMO Specifying Permissions for Azure AD Web Applications