|
34 | 34 | "\n", |
35 | 35 | "Many organizations require 100% authentication for their APIs. While that is prudent and typically done at the global _All APIs_ level, we refrain from doing so here as to not impact other samples. Instead, we focus on authentication at the API Management API and API operation levels.\n", |
36 | 36 | "\n", |
37 | | - "## Lab Components\n", |
| 37 | + "## 🧩 Lab Components\n", |
38 | 38 | "\n", |
39 | 39 | "While OAuth 2.0 includes an identity provider (IDP), for sake of the sample, we can remove the complexity of including real identities. It is sufficient to use mock JWTs that we can \"authenticate\" by way of a signing key. This is a valid, albeit not the default method for authentication. \n", |
40 | 40 | "\n", |
41 | 41 | "We do not need real APIs and can rely on mock returns.\n", |
42 | 42 | "\n", |
43 | 43 | "Furthermore, secrets would ideally be kept in a secret store such as Azure Key Vault and be accessed via API Management's managed identity. Adding a Key Vault to our architecture is a stretch goal that provides value but is not immediately necessary to showcase the authX sample.\n", |
44 | 44 | "\n", |
45 | | - "JSON Web Tokens are defined in [RFC 7519](https://www.rfc-editor.org/rfc/rfc7519). Two websites to use with JWTs are [Okta's](https://jwt.io/) and [Microsoft's](https://jwt.ms/). Okta's may be preferential due to its features.\n", |
| 45 | + "JSON Web Tokens are defined in RFC 7519. Okta's JWT website is great to experiment with tokens. Microsoft provides one as well, but it is not as feature-rich.\n", |
46 | 46 | "\n", |
47 | | - "## Configuration\n", |
| 47 | + "🔗 [RFC 7519 - JWT](https://www.rfc-editor.org/rfc/rfc7519) | [jwt.io](https://jwt.io/) | [jwt.ms](https://jwt.ms/)\n", |
| 48 | + "\n", |
| 49 | + "## ⚙️ Configuration\n", |
48 | 50 | "\n", |
49 | 51 | "1. Decide which of the [Infrastructure Architectures](../../README.md#infrastructure-architectures) you wish to use.\n", |
50 | 52 | " 1. If the infrastructure _does not_ yet exist, navigate to the desired [infrastructure](../../infrastructure/) folder and follow its README.md.\n", |
|
55 | 57 | "cell_type": "markdown", |
56 | 58 | "metadata": {}, |
57 | 59 | "source": [ |
58 | | - "### Initialize notebook variables\n", |
| 60 | + "### 🛠️ 1. Initialize notebook variables\n", |
59 | 61 | "\n", |
60 | 62 | "Configures everything that's needed for deployment. \n", |
61 | 63 | "\n", |
62 | | - "[ADD ANY SPECIAL INSTRUCTIONS]\n", |
63 | | - "\n", |
64 | | - "**Modify entries under _1) User-defined parameters_ and _3) Define the APIs and their operations and policies_**." |
| 64 | + "👉 **Modify entries under _1) User-defined parameters_ and _3) Define the APIs and their operations and policies_**." |
65 | 65 | ] |
66 | 66 | }, |
67 | 67 | { |
|
131 | 131 | "cell_type": "markdown", |
132 | 132 | "metadata": {}, |
133 | 133 | "source": [ |
134 | | - "### Create deployment using Bicep\n", |
| 134 | + "### 🚀 2. Create deployment using Bicep\n", |
135 | 135 | "\n", |
136 | 136 | "Creates the bicep deployment into the previously-specified resource group. A bicep parameters file will be created prior to execution." |
137 | 137 | ] |
|
172 | 172 | "cell_type": "markdown", |
173 | 173 | "metadata": {}, |
174 | 174 | "source": [ |
175 | | - "### Verify API Request Success\n", |
| 175 | + "### ✅ 3. Verify API Request Success\n", |
176 | 176 | "\n", |
177 | 177 | "Assert that the deployment was successful by making simple calls to APIM. \n", |
178 | 178 | "\n", |
|
0 commit comments