From 79d24b4472017a75854cce4a45b4c762e5390a67 Mon Sep 17 00:00:00 2001 From: aeneasr <3372410+aeneasr@users.noreply.github.com> Date: Wed, 9 Sep 2020 10:29:55 +0300 Subject: [PATCH] fix: update contrib samples --- .../kratos/email-password/kratos.yml | 1 + .../kratos/oidc/identity.traits.schema.json | 40 +++++++++++++++++++ .../kratos/oidc/oidc.github.jsonnet | 17 ++++++++ 3 files changed, 58 insertions(+) create mode 100644 contrib/quickstart/kratos/oidc/identity.traits.schema.json create mode 100644 contrib/quickstart/kratos/oidc/oidc.github.jsonnet diff --git a/contrib/quickstart/kratos/email-password/kratos.yml b/contrib/quickstart/kratos/email-password/kratos.yml index bb89ab1d701..647bc57e213 100644 --- a/contrib/quickstart/kratos/email-password/kratos.yml +++ b/contrib/quickstart/kratos/email-password/kratos.yml @@ -55,6 +55,7 @@ selfservice: log: level: debug format: text + leak_sensitive_values: true secrets: cookie: diff --git a/contrib/quickstart/kratos/oidc/identity.traits.schema.json b/contrib/quickstart/kratos/oidc/identity.traits.schema.json new file mode 100644 index 00000000000..8de397bef1f --- /dev/null +++ b/contrib/quickstart/kratos/oidc/identity.traits.schema.json @@ -0,0 +1,40 @@ +{ + "$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Person", + "type": "object", + "properties": { + "traits": { + "type": "object", + "properties": { + "email": { + "type": "string", + "format": "email", + "title": "E-Mail", + "minLength": 3, + "ory.sh/kratos": { + "credentials": { + "password": { + "identifier": true + } + }, + "verification": { + "via": "email" + }, + "recovery": { + "via": "email" + } + } + }, + "website": { + "type": "object" + } + }, + "required": [ + "website", + "email" + ], + "additionalProperties": false + } + } +} diff --git a/contrib/quickstart/kratos/oidc/oidc.github.jsonnet b/contrib/quickstart/kratos/oidc/oidc.github.jsonnet new file mode 100644 index 00000000000..06b92bf9924 --- /dev/null +++ b/contrib/quickstart/kratos/oidc/oidc.github.jsonnet @@ -0,0 +1,17 @@ +local claims = { + email_verified: false +} + std.extVar('claims'); + +{ + identity: { + traits: { + // Allowing unverified email addresses enables account + // enumeration attacks, especially if the value is used for + // e.g. verification or as a password login identifier. + // + // Therefore we only return the email if it (a) exists and (b) is marked verified + // by GitHub. + [if "email" in claims && claims.email_verified then "email" else null]: claims.email, + }, + }, +}