{ Community }
  • Academy
  • Docs
  • Developers
  • Resources
    • Community Articles
    • Apigee on GitHub
    • Code Samples
    • Videos & eBooks
    • Accelerator Methodology
  • Support
  • Ask a Question
  • Spaces
    • Product Announcements
    • General
    • Edge/API Management
    • Developer Portal (Drupal-based)
    • Developer Portal (Integrated)
    • API Design
    • APIM on Istio
    • Extensions
    • Business of APIs
    • Academy/Certification
    • Adapter for Envoy
    • Analytics
    • Events
    • Hybrid
    • Integration (AWS, PCF, Etc.)
    • Microgateway
    • Monetization
    • Private Cloud Deployment
    • 日本語コミュニティ
    • Insights
    • IoT Apigee Link
    • BaaS/Usergrid
    • BaaS Transition/Migration
    • Apigee-127
    • New Customers
    • Topics
    • Questions
    • Articles
    • Ideas
    • Leaderboard
    • Badges
  • Log in
  • Sign up

Get answers, ideas, and support from the Apigee Community

  • Home /
  • General /
avatar image
1

Externalizing Authorization with Apigee  

  • Export to PDF
Dino-at-Google   created · May 13, 2020 at 10:10 PM · 90 Views · edited · May 19, 2020 at 04:59 PM

With Apigee, A typical technical use case is to enforce authorization policies for inbound calls, before proxying to an upstream system. A good pattern is:

1. Externalize the authorization decisions, perhaps in an external authorization database table, service, or rules engine.

- Each rule can be modeled as a tuple of {subject, object, action}, related to a binary allow/deny decision. In an HTTP REST API, the subject is the client and the end user (if any); the object is the resource, represented by the url path; and the action is the HTTP verb: GET, PUT, POST, DELETE.

- applying the rules is as simple as finding a match for the tuple, and selecting the allow/deny result.

2. Configure the Apigee API Proxy to call out to that external system to obtain the authorization decision.

3. Enforce the authorization decision within the API Proxy.

This is really straightforward to do, with Apigee, relying on such capabilities as:

  • OAuthV2 token verification to obtain client and user identity
  • Calls to external services within the scope of a request, via the ServiceCallout policy.
  • Conditional flows, allowing different responses based on context.

I put together a quick screencast showing you how to do this, using a Google sheet as a store for the authorization rules. Check it out!

github repo: https://github.com/DinoChiesa/Apigee-External-Authorization-1

screenshot-20200519-095844.png (48.2 kB)
thub.nodes.view.add-new-comment
securityservicecalloutgoogle sheet
Add comment
10 |5000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by Apigeeks only
  • Viewable by the original poster
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Article

Contributors

avatar image

Follow this article

80 People are following this .

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Navigation

Externalizing Authorization with Apigee

Related Articles

Apigee as OAuth Resource Server - PingFederate as OAuth Authorization Server with synchronized client IDs.

How to add members to a private space if you are a Group Administrator

SAML2 vs JWT: Understanding JSON Web Token (JWT)

SQL Injection attacks in BaaS and prevention tips

SAML2 vs JWT: Apigee & Azure Active Directory Integration — A JWT Story

Removing Users from Edge Support Portal

SAML 2.0 VS. JWT: UNDERSTANDING FEDERATED IDENTITY AND SAML

API Vulnerabilites and their mitigation in Apigee Edge

Apigee as OAuth Resource Server - PingFederate as OAuth Authorization Server with dynamic client id mapping.

Changes to the Apigee Single Sign On and Login infrastructure

  • Products
    • Edge - APIs
    • Insights - Big Data
    • Plans
  • Developers
    • Overview
    • Documentation
  • Resources
    • Overview
    • Blog
    • Apigee Institute
    • Academy
    • Documentation
  • Company
    • Overview
    • Press
    • Customers
    • Partners
    • Team
    • Events
    • Careers
    • Contact Us
  • Support
    • Support Overview
    • Documentation
    • Status
    • Edge Support Portal
    • Privacy Policy
    • Terms & Conditions
© 2021 Apigee Corp. All rights reserved. - Apigee Community Terms of Use - Powered by AnswerHub
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Create an article
  • Post an idea
  • Spaces
  • Product Announcements
  • General
  • Edge/API Management
  • Developer Portal (Drupal-based)
  • Developer Portal (Integrated)
  • API Design
  • APIM on Istio
  • Extensions
  • Business of APIs
  • Academy/Certification
  • Adapter for Envoy
  • Analytics
  • Events
  • Hybrid
  • Integration (AWS, PCF, Etc.)
  • Microgateway
  • Monetization
  • Private Cloud Deployment
  • 日本語コミュニティ
  • Insights
  • IoT Apigee Link
  • BaaS/Usergrid
  • BaaS Transition/Migration
  • Apigee-127
  • New Customers
  • Explore
  • Topics
  • Questions
  • Articles
  • Ideas
  • Badges