-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Moved the quickstart to the simpler format.
Signed-off-by: Exadra37 <exadra37@gmail.com>
- Loading branch information
Showing
10 changed files
with
443 additions
and
91 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
# Approov Overview | ||
|
||
[Approov](https://approov.io) is an API security solution used to verify that requests received by your backend services originate from trusted versions of your mobile apps. | ||
|
||
|
||
## Why? | ||
|
||
You can learn more about Approov, the motives for adopting it, and more detail on how it works by following this [link](https://approov.io/product). In brief, Approov: | ||
|
||
* Ensures that accesses to your API come from official versions of your apps; it blocks accesses from republished, modified, or tampered versions | ||
* Protects the sensitive data behind your API; it prevents direct API abuse from bots or scripts scraping data and other malicious activity | ||
* Secures the communication channel between your app and your API with [Approov Dynamic Certificate Pinning](https://approov.io/docs/latest/approov-usage-documentation/#approov-dynamic-pinning). This has all the benefits of traditional pinning but without the drawbacks | ||
* Removes the need for an API key in the mobile app | ||
* Provides DoS protection against targeted attacks that aim to exhaust the API server resources to prevent real users from reaching the service or to at least degrade the user experience. | ||
|
||
|
||
## How it works? | ||
|
||
This is a brief overview of how the Approov cloud service and the backend server fit together from a backend perspective. For a complete overview of how the mobile app and backend fit together with the Approov cloud service and the Approov SDK we recommend to read the [Approov overview](https://approov.io/product) page on our website. | ||
|
||
### Approov Cloud Service | ||
|
||
The Approov cloud service attests that a device is running a legitimate and tamper-free version of your mobile app. | ||
|
||
* If the integrity check passes then a valid token is returned to the mobile app | ||
* If the integrity check fails then a legitimate looking token will be returned | ||
|
||
In either case, the app, unaware of the token's validity, adds it to every request it makes to the Approov protected API(s). | ||
|
||
### The Backend Server | ||
|
||
The backend server ensures that the token supplied in the `Approov-Token` header is present and valid. The validation is done by using a shared secret known only to the Approov cloud service and the backend server. | ||
|
||
The request is handled such that: | ||
|
||
* If the Approov Token is valid, the request is allowed to be processed by the API endpoint | ||
* If the Approov Token is invalid, an HTTP 401 Unauthorized response is returned | ||
|
||
You can choose to log JWT verification failures, but we left it out on purpose so that you can have the choice of how you prefer to do it and decide the right amount of information you want to log. | ||
|
||
|
||
## Useful Links | ||
|
||
If you wish to explore the Approov solution in more depth, then why not try one of the following links as a jumping off point: | ||
|
||
* [Approov Free Trial](https://approov.io/signup)(no credit card needed) | ||
* [Approov Get Started](https://approov.io/product/demo) | ||
* [Approov QuickStarts](https://approov.io/docs/latest/approov-integration-examples/) | ||
* [Approov Docs](https://approov.io/docs) | ||
* [Approov Blog](https://approov.io/blog/) | ||
* [Approov Resources](https://approov.io/resource/) | ||
* [Approov Customer Stories](https://approov.io/customer) | ||
* [Approov Support](https://approov.zendesk.com/hc/en-gb/requests/new) | ||
* [About Us](https://approov.io/company) | ||
* [Contact Us](https://approov.io/contact) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
# Approov Integration Quickstarts | ||
|
||
[Approov](https://approov.io) is an API security solution used to verify that requests received by your backend services originate from trusted versions of your mobile apps. | ||
|
||
|
||
## The Quickstarts | ||
|
||
The quickstart code for the Approov backend server is split into two implementations. The first gets you up and running with basic token checking. The second uses a more advanced Approov feature, _token binding_. Token binding may be used to link the Approov token with other properties of the request, such as user authentication (more details can be found [here](https://approov.io/docs/latest/approov-usage-documentation/#token-binding)). | ||
* [Approov token check quickstart](/docs/APPROOV_TOKEN_QUICKSTART.md) | ||
* [Approov token check with token binding quickstart](/docs/APPROOV_TOKEN_BINDING_QUICKSTART.md) | ||
|
||
Both the quickstarts are built from the unprotected example server defined [here](/src/unprotected-server/hello-server-unprotected.py), thus you can use Git to see the code differences between them. | ||
|
||
Code difference between the Approov token check quickstart and the original unprotected server: | ||
|
||
``` | ||
git diff --no-index src/unprotected-server/hello-server-unprotected.py src/approov-protected-server/token-check/hello-server-protected.py | ||
``` | ||
|
||
You can do the same for the Approov token binding quickstart: | ||
|
||
``` | ||
git diff --no-index src/unprotected-server/hello-server-unprotected.py src/approov-protected-server/token-binding-check/hello-server-protected.py | ||
``` | ||
|
||
Or you can compare the code difference between the two quickstarts: | ||
|
||
``` | ||
git diff --no-index src/approov-protected-server/token-check/hello-server-protected.py src/approov-protected-server/token-binding-check/hello-server-protected.py | ||
``` | ||
|
||
## Issues | ||
|
||
If you find any issue while following our instructions then just report it [here](https://github.com/approov/quickstart-python-fastapi-token-check/issues), with the steps to reproduce it, and we will sort it out and/or guide you to the correct path. | ||
|
||
|
||
## Useful Links | ||
|
||
If you wish to explore the Approov solution in more depth, then why not try one of the following links as a jumping off point: | ||
|
||
* [Approov Free Trial](https://approov.io/signup)(no credit card needed) | ||
* [Approov Get Started](https://approov.io/product/demo) | ||
* [Approov QuickStarts](https://approov.io/docs/latest/approov-integration-examples/) | ||
* [Approov Docs](https://approov.io/docs) | ||
* [Approov Blog](https://approov.io/blog/) | ||
* [Approov Resources](https://approov.io/resource/) | ||
* [Approov Customer Stories](https://approov.io/customer) | ||
* [Approov Support](https://approov.zendesk.com/hc/en-gb/requests/new) | ||
* [About Us](https://approov.io/company) | ||
* [Contact Us](https://approov.io/contact) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.