SlideShare a Scribd company logo
OAuth & LinkedIn
Why Should We Integrate
LinkedIn?
• Users can bring their LinkedIn profile and
network in your site
• Access to a network of over 80 million users
• Authentication to your site using LinkedIn APIs
• Search for profiles, connections
• Update LinkedIn status from your site
And many more….
LinkedIn Platform Guidelines
• No LinkedIn data can be stored
– Exceptions: Storing the Member ID for subsequent API calls & User’s profile data
when given explicit user permission by the owner of the profile
• Don't share your API keys and secrets with anyone
• Data gathered from one user's LinkedIn account/network may not be
exposed to another user
• You must show the agreement screen in its own window
– URL is visible
– Same browser window/tab or pop-up but NOT an Iframe into the current page
• You cannot provide API access to your customers
• http://developer.linkedin.com/docs/DOC-1091
LinkedIn OAuth's Authentication
Model
• You get an API key from LinkedIn. (Consumer Key in OAuth terminology)
• You build a feature into your site that leverages the user's LinkedIn network
• Your user clicks on your UI to request to use that feature.
• You make a call to LinkedIn to ask to use our authentication. This is called getting a Request Token.
• LinkedIn replies with an OAuth Token indicating that you can use the authentication system.
• You send your user to a LinkedIn URL. That URL includes the OAuth Token you got and a few other parameters
such as a URL for LinkedIn to return the user to after granting access.
• The user grants access to your application by signing into that page.
• Upon successful signon, LinkedIn will return the user to your site.
• You will then make a call to LinkedIn to get an Access Token.
• LinkedIn replies with an Access Token for the user. You use that Access Token for any API calls to LinkedIn to
identify the user on whose behalf you are making the call.
Anatomy of an OAuth Request
1. Establish a requestToken
– HTTP Method (POST)
– Request URI (https://api.linkedin.com/uas/oauth/requestToken)
– oauth_callback
– oauth_consumer_key
– oauth_nonce
– oauth_signature_method
– oauth_timestamp
– oauth_version
Sample response:
oauth_token=94ab03c4-ae2c-45e4-8732-
0e6c4899db63&oauth_token_secret=be6ccb24-bf0a-4ea8-a4b1-
0a70508e452b&oauth_callback_confirmed=true&oauth_expire
s_in=599
Anatomy of an OAuth Request
2. Redirect the User to our Authorization Server
• Forward the user to LinkedIn’s authorization server where they'll
authorize your application
• User decides whether to authorize your application or deny the
request using our standard authenication screen
• One Click Login - Automatically (and immediately) redirect to the
callback URL, if
a. The current user is logged into LinkedIn.
b. The current user has already granted an access token to your application.
c. The access token has not expired.
http://localhost/oauth_callback?oauth_token=94ab03c4-ae2c-45e4-8732-0e6c4899db63&
oauth_verifier=98295
• Cancel Button - either the "Integration URL" you defined for your
application, or, if that value is blank, the OAuth callback URL
Anatomy of an OAuth Request
3. Request the Access Token
• Last step - Obtain an access token that actually gives you the agency to make requests
on behalf of the LinkedIn member.
– HTTP Method (POST)
– Request URI (https://api.linkedin.com/uas/oauth/accessToken)
– oauth_consumer_key
– oauth_nonce
– oauth_signature_method
– oauth_timestamp
– oauth_token
– oauth_verifier
– oauth_version
• As a response to your request for an accessToken, your accessToken will be in the
"oauth_token" field and an oauth_token_secret.
oauth_token=f862f658-ad89-4fcb-995b-7a4c50554ff6&oauth_token_secret=a252d40e-f7f0-
4f31-a362-3451e168d5a5
4. Signing out
LinkedIn API
• People
– Profile API
• http://api.linkedin.com/v1/people/~
• http://api.linkedin.com/v1/people/id=abcdefg
• http://api.linkedin.com/v1/people/url=<public-profile-url>
– Connections API
• http://api.linkedin.com/v1/people/~/connections
– People Search API
• Network Updates / Status
– Get Network Updates API
– Post Network Updates
– Commenting on & Reading Comments in Network Updates
– Share API
• Communications
– Messaging Between Connections
– Invitation API
Throttle Limits
• Designed to ensure maximum performance for all developers and to protect the user experience
of all users on LinkedIn.
• Three types of throttles applied to all API keys:
– Application throttles: Limit the number of each API call your application can make using its API key.
– User throttles: Limit the number of calls for any individual user of your application.
– Developer throttles: For people listed as developers on their API keys. Approximately four times higher
than the user throttles for most calls.
• Throttled Responses
– 403 HTTP status code with a response body containing an XML document.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<error>
<status>403</status>
<timestamp>1264619093714</timestamp>
<error-code>0000</error-code>
<message>Throttle limit for calls to this resource is reached.</message>
</error>
Linkedin & OAuth
Linkedin & OAuth

More Related Content

What's hot

Oauth2 and OWSM OAuth2 support
Oauth2 and OWSM OAuth2 supportOauth2 and OWSM OAuth2 support
Oauth2 and OWSM OAuth2 support
Gaurav Sharma
 
Mohanraj - Securing Your Web Api With OAuth
Mohanraj - Securing Your Web Api With OAuthMohanraj - Securing Your Web Api With OAuth
Mohanraj - Securing Your Web Api With OAuth
fossmy
 

What's hot (20)

Oauth2 and OWSM OAuth2 support
Oauth2 and OWSM OAuth2 supportOauth2 and OWSM OAuth2 support
Oauth2 and OWSM OAuth2 support
 
OAuth - Open API Authentication
OAuth - Open API AuthenticationOAuth - Open API Authentication
OAuth - Open API Authentication
 
O auth2 with angular js
O auth2 with angular jsO auth2 with angular js
O auth2 with angular js
 
Securing your APIs with OAuth, OpenID, and OpenID Connect
Securing your APIs with OAuth, OpenID, and OpenID ConnectSecuring your APIs with OAuth, OpenID, and OpenID Connect
Securing your APIs with OAuth, OpenID, and OpenID Connect
 
OAuth Tokens
OAuth TokensOAuth Tokens
OAuth Tokens
 
Mohanraj - Securing Your Web Api With OAuth
Mohanraj - Securing Your Web Api With OAuthMohanraj - Securing Your Web Api With OAuth
Mohanraj - Securing Your Web Api With OAuth
 
OAuth2 + API Security
OAuth2 + API SecurityOAuth2 + API Security
OAuth2 + 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...
 
OAuth2 & OpenID Connect
OAuth2 & OpenID ConnectOAuth2 & OpenID Connect
OAuth2 & OpenID Connect
 
Best Practices in Building an API Security Ecosystem
Best Practices in Building an API Security EcosystemBest Practices in Building an API Security Ecosystem
Best Practices in Building an API Security Ecosystem
 
SharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the CloudSharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
 
Claims-Based Identity in SharePoint 2010
Claims-Based Identity in SharePoint 2010Claims-Based Identity in SharePoint 2010
Claims-Based Identity in SharePoint 2010
 
Microservice with OAuth2
Microservice with OAuth2Microservice with OAuth2
Microservice with OAuth2
 
SharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the CloudSharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
 
Presentation
PresentationPresentation
Presentation
 
A How-to Guide to OAuth & API Security
A How-to Guide to OAuth & API SecurityA How-to Guide to OAuth & API Security
A How-to Guide to OAuth & API Security
 
User Management with LastUser
User Management with LastUserUser Management with LastUser
User Management with LastUser
 
Rest API Security
Rest API SecurityRest API Security
Rest API Security
 
API Security & Federation Patterns - Francois Lascelles, Chief Architect, Lay...
API Security & Federation Patterns - Francois Lascelles, Chief Architect, Lay...API Security & Federation Patterns - Francois Lascelles, Chief Architect, Lay...
API Security & Federation Patterns - Francois Lascelles, Chief Architect, Lay...
 
D@W REST security
D@W REST securityD@W REST security
D@W REST security
 

Viewers also liked

Viewers also liked (9)

How to automate boring public relations tasks
How to automate boring public relations tasksHow to automate boring public relations tasks
How to automate boring public relations tasks
 
Practical Core Bluetooth in IoT & Wearable projects @ AltConf 2016
Practical Core Bluetooth in IoT & Wearable projects @ AltConf 2016Practical Core Bluetooth in IoT & Wearable projects @ AltConf 2016
Practical Core Bluetooth in IoT & Wearable projects @ AltConf 2016
 
5 Inbound Marketing Hacks - Ben Lang KahenaCon
5 Inbound Marketing Hacks - Ben Lang KahenaCon5 Inbound Marketing Hacks - Ben Lang KahenaCon
5 Inbound Marketing Hacks - Ben Lang KahenaCon
 
10 Marketing Hacks To Boost Your Startup
10 Marketing Hacks To Boost Your Startup10 Marketing Hacks To Boost Your Startup
10 Marketing Hacks To Boost Your Startup
 
Slideshare Doc
Slideshare DocSlideshare Doc
Slideshare Doc
 
API提供におけるOAuthの役割 #apijp
API提供におけるOAuthの役割 #apijpAPI提供におけるOAuthの役割 #apijp
API提供におけるOAuthの役割 #apijp
 
Cool tools for recruiting 2012 craig fisher lashrm
Cool tools for recruiting 2012 craig fisher lashrmCool tools for recruiting 2012 craig fisher lashrm
Cool tools for recruiting 2012 craig fisher lashrm
 
Client-Side Deep Learning
Client-Side Deep LearningClient-Side Deep Learning
Client-Side Deep Learning
 
Advanced PHPUnit Testing
Advanced PHPUnit TestingAdvanced PHPUnit Testing
Advanced PHPUnit Testing
 

Similar to Linkedin & OAuth

Similar to Linkedin & OAuth (20)

Mobile Authentication - Onboarding, best practices & anti-patterns
Mobile Authentication - Onboarding, best practices & anti-patternsMobile Authentication - Onboarding, best practices & anti-patterns
Mobile Authentication - Onboarding, best practices & anti-patterns
 
Api security
Api security Api security
Api security
 
OAuth
OAuthOAuth
OAuth
 
Intro to OAuth2 and OpenID Connect
Intro to OAuth2 and OpenID ConnectIntro to OAuth2 and OpenID Connect
Intro to OAuth2 and OpenID Connect
 
Social Single Sign-On with OpenID Connect
Social Single Sign-On with OpenID ConnectSocial Single Sign-On with OpenID Connect
Social Single Sign-On with OpenID Connect
 
.NET Core, ASP.NET Core Course, Session 19
 .NET Core, ASP.NET Core Course, Session 19 .NET Core, ASP.NET Core Course, Session 19
.NET Core, ASP.NET Core Course, Session 19
 
Stateless Auth using OAUTH2 & JWT
Stateless Auth using OAUTH2 & JWTStateless Auth using OAUTH2 & JWT
Stateless Auth using OAUTH2 & JWT
 
oauth-for-credentials-security-in-rest-api-access
oauth-for-credentials-security-in-rest-api-accessoauth-for-credentials-security-in-rest-api-access
oauth-for-credentials-security-in-rest-api-access
 
Spring Social - Messaging Friends & Influencing People
Spring Social - Messaging Friends & Influencing PeopleSpring Social - Messaging Friends & Influencing People
Spring Social - Messaging Friends & Influencing People
 
Stateless Auth using OAuth2 & JWT
Stateless Auth using OAuth2 & JWTStateless Auth using OAuth2 & JWT
Stateless Auth using OAuth2 & JWT
 
Keycloak for Science Gateways - SGCI Technology Sampler Webinar
Keycloak for Science Gateways - SGCI Technology Sampler WebinarKeycloak for Science Gateways - SGCI Technology Sampler Webinar
Keycloak for Science Gateways - SGCI Technology Sampler Webinar
 
Linkedin OAuth for curious people
Linkedin OAuth for curious peopleLinkedin OAuth for curious people
Linkedin OAuth for curious people
 
UC2013 Speed Geeking: Intro to OAuth2
UC2013 Speed Geeking: Intro to OAuth2UC2013 Speed Geeking: Intro to OAuth2
UC2013 Speed Geeking: Intro to OAuth2
 
OAuth 2.0 and OpenID Connect
OAuth 2.0 and OpenID ConnectOAuth 2.0 and OpenID Connect
OAuth 2.0 and OpenID Connect
 
OAuth
OAuthOAuth
OAuth
 
OAuth
OAuthOAuth
OAuth
 
OAuth
OAuthOAuth
OAuth
 
Ember Authentication and Authorization with Torii
Ember Authentication and Authorization with ToriiEmber Authentication and Authorization with Torii
Ember Authentication and Authorization with Torii
 
Implementing OpenID for Your Social Networking Site
Implementing OpenID for Your Social Networking SiteImplementing OpenID for Your Social Networking Site
Implementing OpenID for Your Social Networking Site
 
Secure your app with keycloak
Secure your app with keycloakSecure your app with keycloak
Secure your app with keycloak
 

Recently uploaded

Recently uploaded (20)

ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 

Linkedin & OAuth

  • 2. Why Should We Integrate LinkedIn? • Users can bring their LinkedIn profile and network in your site • Access to a network of over 80 million users • Authentication to your site using LinkedIn APIs • Search for profiles, connections • Update LinkedIn status from your site And many more….
  • 3. LinkedIn Platform Guidelines • No LinkedIn data can be stored – Exceptions: Storing the Member ID for subsequent API calls & User’s profile data when given explicit user permission by the owner of the profile • Don't share your API keys and secrets with anyone • Data gathered from one user's LinkedIn account/network may not be exposed to another user • You must show the agreement screen in its own window – URL is visible – Same browser window/tab or pop-up but NOT an Iframe into the current page • You cannot provide API access to your customers • http://developer.linkedin.com/docs/DOC-1091
  • 4. LinkedIn OAuth's Authentication Model • You get an API key from LinkedIn. (Consumer Key in OAuth terminology) • You build a feature into your site that leverages the user's LinkedIn network • Your user clicks on your UI to request to use that feature. • You make a call to LinkedIn to ask to use our authentication. This is called getting a Request Token. • LinkedIn replies with an OAuth Token indicating that you can use the authentication system. • You send your user to a LinkedIn URL. That URL includes the OAuth Token you got and a few other parameters such as a URL for LinkedIn to return the user to after granting access. • The user grants access to your application by signing into that page. • Upon successful signon, LinkedIn will return the user to your site. • You will then make a call to LinkedIn to get an Access Token. • LinkedIn replies with an Access Token for the user. You use that Access Token for any API calls to LinkedIn to identify the user on whose behalf you are making the call.
  • 5.
  • 6. Anatomy of an OAuth Request 1. Establish a requestToken – HTTP Method (POST) – Request URI (https://api.linkedin.com/uas/oauth/requestToken) – oauth_callback – oauth_consumer_key – oauth_nonce – oauth_signature_method – oauth_timestamp – oauth_version Sample response: oauth_token=94ab03c4-ae2c-45e4-8732- 0e6c4899db63&oauth_token_secret=be6ccb24-bf0a-4ea8-a4b1- 0a70508e452b&oauth_callback_confirmed=true&oauth_expire s_in=599
  • 7. Anatomy of an OAuth Request 2. Redirect the User to our Authorization Server • Forward the user to LinkedIn’s authorization server where they'll authorize your application • User decides whether to authorize your application or deny the request using our standard authenication screen • One Click Login - Automatically (and immediately) redirect to the callback URL, if a. The current user is logged into LinkedIn. b. The current user has already granted an access token to your application. c. The access token has not expired. http://localhost/oauth_callback?oauth_token=94ab03c4-ae2c-45e4-8732-0e6c4899db63& oauth_verifier=98295 • Cancel Button - either the "Integration URL" you defined for your application, or, if that value is blank, the OAuth callback URL
  • 8. Anatomy of an OAuth Request 3. Request the Access Token • Last step - Obtain an access token that actually gives you the agency to make requests on behalf of the LinkedIn member. – HTTP Method (POST) – Request URI (https://api.linkedin.com/uas/oauth/accessToken) – oauth_consumer_key – oauth_nonce – oauth_signature_method – oauth_timestamp – oauth_token – oauth_verifier – oauth_version • As a response to your request for an accessToken, your accessToken will be in the "oauth_token" field and an oauth_token_secret. oauth_token=f862f658-ad89-4fcb-995b-7a4c50554ff6&oauth_token_secret=a252d40e-f7f0- 4f31-a362-3451e168d5a5 4. Signing out
  • 9. LinkedIn API • People – Profile API • http://api.linkedin.com/v1/people/~ • http://api.linkedin.com/v1/people/id=abcdefg • http://api.linkedin.com/v1/people/url=<public-profile-url> – Connections API • http://api.linkedin.com/v1/people/~/connections – People Search API • Network Updates / Status – Get Network Updates API – Post Network Updates – Commenting on & Reading Comments in Network Updates – Share API • Communications – Messaging Between Connections – Invitation API
  • 10. Throttle Limits • Designed to ensure maximum performance for all developers and to protect the user experience of all users on LinkedIn. • Three types of throttles applied to all API keys: – Application throttles: Limit the number of each API call your application can make using its API key. – User throttles: Limit the number of calls for any individual user of your application. – Developer throttles: For people listed as developers on their API keys. Approximately four times higher than the user throttles for most calls. • Throttled Responses – 403 HTTP status code with a response body containing an XML document. <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <error> <status>403</status> <timestamp>1264619093714</timestamp> <error-code>0000</error-code> <message>Throttle limit for calls to this resource is reached.</message> </error>