From 9c0f494bf2f8f97f0d1d7103f7c24073d5597443 Mon Sep 17 00:00:00 2001 From: mffap Date: Tue, 28 Jun 2022 19:34:13 +0200 Subject: [PATCH] docs(guides): user metadata (#3838) * docs(guides): user metadata * add python * export to BASIC_AUTH * add js * add alternative with id_token * fix img path * adds reserved scopes, and info about opaque token * Apply suggestions from code review Co-authored-by: Elio Bischof * Apply suggestions from code review Co-authored-by: Elio Bischof Co-authored-by: Maximilian Panne Co-authored-by: Elio Bischof --- .../guides/customization/user-metadata.md | 228 ++++++++++++++++++ docs/sidebars.js | 3 +- ...le_projects_application_token_settings.png | Bin 0 -> 57800 bytes 3 files changed, 230 insertions(+), 1 deletion(-) create mode 100644 docs/docs/guides/customization/user-metadata.md create mode 100644 docs/static/img/console_projects_application_token_settings.png diff --git a/docs/docs/guides/customization/user-metadata.md b/docs/docs/guides/customization/user-metadata.md new file mode 100644 index 0000000000..15b936c5fe --- /dev/null +++ b/docs/docs/guides/customization/user-metadata.md @@ -0,0 +1,228 @@ +--- +title: User Metadata +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +In this guide you will learn how to manually create the necessary requests to authenticate and request a user's metadata from ZITADEL. + +Typical examples for user metadata include: + +- Link the user to an internal identifier (eg, userId, contract number, etc.) +- Save custom user data when registering a user +- Route upstream traffic based on user attributes + +## Prerequisites + +### Create a new client + +- Create a new [web application](https://docs.zitadel.com/docs/guides/basics/applications#web) +- Use Code-Flow +- In this example we will use `http://localhost` as redirect url +- Make sure to note the client secret + +### Add metadata to a user + +- [Add metadata](https://docs.zitadel.com/docs/manuals/user-profile#metadata) to a user +- Make sure you will use this user to login during later steps + +## Requesting a token + +:::info +In this guide we will manually request a token from ZITADEL for demonstration purposes. You will likely use a client library for the OpenID Authentication. +::: + +### Set environment variables + +We will use some information throughout this guide. Set the required environment variables as follows. Make sure to replace the values with your information. + +```bash +export CLIENT_SECRET=QCiMffalakI...zpT0vuOsSkVk1ne \ +export CLIENT_ID="16604...@docs-claims" \ +export REDIRECT_URI="http://localhost" \ +export ZITADEL_DOMAIN="https://...asd.zitadel.cloud" +``` + + + + +Grab zitadel-tools to create the [required string](https://docs.zitadel.com/docs/apis/openidoauth/authn-methods#client-secret-basic) for Basic authentication: + +```bash +git clone git@github.com:zitadel/zitadel-tools.git +cd zitadel-tools/cmd/basicauth +export BASIC_AUTH="$(go run basicauth.go -id $CLIENT_ID -secret $CLIENT_SECRET)" +``` + + + + + +```python +import base64 +import urllib.parse +import os + +clientId = os.environ.get("CLIENT_ID") +clientSecret = os.environ.get("CLIENT_SECRET") + +escaped = safe_string = urllib.parse.quote_plus(clientId) + ":" + urllib.parse.quote_plus(clientSecret) +message_bytes = escaped.encode('ascii') +base64_bytes = base64.b64encode(message_bytes) +base64_message = base64_bytes.decode('ascii') + +print(base64_message) +``` + +Export the result to the environment variable `BASIC_AUTH`. + + + + + +```javascript +esc = encodeURIComponent(process.env.CLIENT_ID) + ":" + encodeURIComponent(process.env.CLIENT_SECRET) +enc = btoa(esc) +console.log(enc) +``` + +Export the result to the environment variable `BASIC_AUTH`. + + + + + +You need to create a string as described [here](https://docs.zitadel.com/docs/apis/openidoauth/authn-methods#client-secret-basic). + +Use a programming language of your choice or manually create the strings with online tools (don't use these secrets for production) like: + +- https://www.urlencoder.org/ +- https://www.base64encode.org/ + +Export the result to the environment variable `BASIC_AUTH`. + + + + +### Create Auth Request + +You need to create a valid auth request, including the reserved scope `urn:zitadel:iam:user:metadata`. Please refer to our API documentation for more information about [reserved scopes](https://docs.zitadel.com/docs/apis/openidoauth/scopes#reserved-scopes). + + + + + +```bash +echo "${ZITADEL_DOMAIN}/oauth/v2/authorize?client_id=${CLIENT_ID}&redirect_uri=${REDIRECT_URI}&response_type=code&scope=openid email profile urn:zitadel:iam:user:metadata" +``` + + + + + +```zsh +open "${ZITADEL_DOMAIN}/oauth/v2/authorize?client_id=${CLIENT_ID}&redirect_uri=${REDIRECT_URI}&response_type=code&scope=openid email profile urn:zitadel:iam:user:metadata" +``` + + + + +```bash +wslview "${ZITADEL_DOMAIN}/oauth/v2/authorize?client_id=${CLIENT_ID}&redirect_uri=${REDIRECT_URI}&response_type=code&scope=openid email profile urn:zitadel:iam:user:metadata" +``` + + + + +Login with the user to which you have added the metadata. After the login you will be redirected. + +Grab the code paramter from the url (disregard the &code= parameter) and export the code as environment variable: + +```bash +export AUTH_CODE="Y6nWsgR5WB...zUtFqSp5Xw" +``` + +### Token Request + +```bash +curl --request POST \ +--url "${ZITADEL_DOMAIN}/oauth/v2/token" \ +--header "Accept: application/json" \ +--header "Authorization: Basic ${BASIC_AUTH}" \ +--header 'Content-Type: application/x-www-form-urlencoded' \ +--data grant_type=authorization_code \ +--data-urlencode "code=$AUTH_CODE" \ +--data-urlencode "redirect_uri=$REDIRECT_URI" +``` + +The result will give you something like: + +```json +{ + "access_token":"jZuRixKQTVecEjKqw...kc3G4", + "token_type":"Bearer", + "expires_in":43199, + "id_token":"ey...Ww" +} +``` + +Grab the access_token value and export as an environment variable: + +```bash +export ACCESS_TOKEN="jZuRixKQTVecEjKqw...kc3G4" +``` + +### Request metadata from userinfo endpoint + +With the access token we can make a request to the userinfo endpoint to get the user's metadata. This method is the preferred method to retrieve a user's information in combination with opaque tokens, to insure that the token is valid. + +```bash +curl --request GET \ + --url "${ZITADEL_DOMAIN}/oidc/v1/userinfo" \ + --header "Authorization: Bearer $ACCESS_TOKEN" +``` + +The response will look something like this + +```json +{ + "email":"road.runner@zitadel.com", + "email_verified":true, + "family_name":"Runner", + "given_name":"Road", + "locale":"en", + "name":"Road Runner", + "preferred_username":"road.runner@...asd.zitadel.cloud", + "sub":"166.....729", + "updated_at":1655467738, + //highlight-start + "urn:zitadel:iam:user:metadata":{ + "ContractNumber":"MTIzNA", + } + //highlight-end + } +``` + +You can grab the metadata from the reserved claim `"urn:zitadel:iam:user:metadata"` as key-value pairs. Note that the values are base64 encoded. So the value `MTIzNA` decodes to `1234`. + +### Send metadata inside the ID token (optional) + +Check "User Info inside ID Token" in the configuration of your application. + +![](/img/console_projects_application_token_settings.png) + +Now request a new token from ZITADEL. + +The result will give you something like: + +```json +{ + "access_token":"jZuRixKQTVecEjKqw...kc3G4", + "token_type":"Bearer", + "expires_in":43199, + "id_token":"ey...Ww" +} +``` + +Grab the id_token and inspect the contents of the token at [jwt.io](https://jwt.io/). You should get the same info in the ID token as when requested from the user endpoint. \ No newline at end of file diff --git a/docs/sidebars.js b/docs/sidebars.js index 825b4861a4..1ed92edd40 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -109,7 +109,8 @@ module.exports = { items: [ "guides/customization/branding", "guides/customization/texts", - "guides/customization/behavior" + "guides/customization/behavior", + "guides/customization/user-metadata" ], }, { diff --git a/docs/static/img/console_projects_application_token_settings.png b/docs/static/img/console_projects_application_token_settings.png new file mode 100644 index 0000000000000000000000000000000000000000..e7a4d12b21e87433b9da5c0fc6e68fe92424f4c7 GIT binary patch literal 57800 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