SlideShare una empresa de Scribd logo
1 de 12
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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Destacado

Destacado (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 a Linkedin & OAuth

Similar a 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
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 

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>