-
Notifications
You must be signed in to change notification settings - Fork 432
feat: login with amazon #2306
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
feat: login with amazon #2306
Changes from all commits
Commits
Show all changes
21 commits
Select commit
Hold shift + click to select a range
f5aef4d
add amazon oidc docs
gaultier f3d9559
rename
gaultier 4a34d32
[wip]
gaultier 54ad3c8
fix
gaultier ec8282d
format
gaultier b933d38
fix sidebar
gaultier 47f0bcb
Merge branch 'master' into pgaultier-amazon-login
gaultier de11271
Merge branch 'master' into pgaultier-amazon-login
gaultier 36cdab9
fix register link
gaultier 0aa13e4
Merge branch 'pgaultier-amazon-login' of github.com:ory/docs into pga…
gaultier 586052e
Apply suggestions from code review
gaultier 10fa9e8
make format
gaultier b273e38
wording
gaultier 46e48f6
Update docs/kratos/social-signin/99_amazon.mdx
gaultier e77cbbd
Merge branch 'master' into pgaultier-amazon-login
gaultier 40618f3
wording
gaultier 2584533
Merge branch 'pgaultier-amazon-login' of github.com:ory/docs into pga…
gaultier 777107f
wording
gaultier fe9181a
fix markdown
gaultier 0294ac7
Merge branch 'master' into pgaultier-amazon-login
gaultier d09d54c
chore: update url
vinckr File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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,145 @@ | ||
| --- | ||
| id: amazon | ||
| title: Add Amazon as a social sign-in provider in Ory | ||
| sidebar_label: Amazon | ||
| --- | ||
|
|
||
| # Amazon | ||
|
|
||
| :::note | ||
|
|
||
| To add Amazon as a social sign-in provider, you need a Amazon Developer account. Go to | ||
| [Amazon Developers](https://developer.amazon.com/) to create one. | ||
|
|
||
| ::: | ||
|
|
||
| ````mdx-code-block | ||
| import Tabs from '@theme/Tabs'; | ||
| import TabItem from '@theme/TabItem'; | ||
|
|
||
| <Tabs> | ||
| <TabItem value="console" label="Ory Console" default> | ||
|
|
||
| Follow these steps to add Amazon as a social sign-in provider for your project, using the Ory Console. | ||
|
|
||
| 1. Go to <ConsoleLink route="project.socialSignIn" />. | ||
| 1. Enable the **Enable OpenID Connect** toggle, then click **Add new OpenID Connect provider**. | ||
| 1. Click the Amazon logo to open the **Configure Amazon** screen. You may need to click **Show more providers** to see the full list of providers. | ||
| 1. Copy the Redirect URI and save it for later use. | ||
| 1. Follow the [official steps](https://developer.amazon.com/docs/login-with-amazon/register-web.html) to create a security profile. | ||
| 1. Once you've created the security profile, click **Show Client Secret** and copy the Client ID and Client secret. Then paste them into the corresponding fields in the Ory Console's **Configure Amazon** screen. | ||
| 1. In the Ory Console, click **Save Configuration** to enable Amazon as a social sign-in provider. | ||
| 1. On Amazon Developers, click **Save Changes**. | ||
| 1. Open the Amazon **Security Profile Management** screen, select the **Web Settings** tab, click **Edit**, and paste the redirect URI into the **Allowed Return URLs** field. Click **Save**. | ||
|
|
||
| :::note | ||
|
|
||
| These steps cover the basic configuration of a social sign-in provider integration. At this point, the user experience is | ||
| incomplete. To complete the configuration and ensure a smooth and secure user experience, configure the [scopes](#scopes) and | ||
vinckr marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| [data mapping](#data-mapping) as described in the next section. | ||
|
|
||
| ::: | ||
|
|
||
| ## Additional configuration | ||
|
|
||
| When adding a social sign-in provider, you can customize the integration by defining the OAuth scopes Ory requests from the | ||
vinckr marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| provider and by setting up custom data mappings. | ||
vinckr marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| ### Scopes | ||
|
|
||
| In the **Scopes** field, you can define the OAuth (access) scopes that Ory requests from the sign-in provider. Defining access scopes enables you to | ||
| interact with the provider's APIs on behalf of the user, or to access additional user data, which is exposed as claims for data | ||
| mapping. | ||
|
|
||
| For a basic setup, follow these steps to add the profile access scope: | ||
|
|
||
| - In Ory Console's **Configure Amazon** screen, click **Show advanced settings**. | ||
| - In the **Scopes** field, enter `profile` and click **Add**. | ||
|
|
||
| To learn more about the scopes available for Amazon, read the | ||
| [related documentation](https://developer.amazon.com/docs/login-with-amazon/customer-profile.html). | ||
|
|
||
| ### Data mapping | ||
|
|
||
| In the **Data mapping** field, you can map the data returned by the sign-in provider to traits as defined in the identity | ||
| schema. | ||
|
|
||
| To define the mapping, create a Jsonnet code snippet. Read [this document](./data-mapping) to learn more about Jsonnet data | ||
| mapping. | ||
|
|
||
| In this sample Jsonnet snippet, the user's `email`, is mapped to `email` in the identity schema. | ||
|
|
||
| ```jsonnet | ||
| local claims = std.extVar('claims'); | ||
| { | ||
| identity: { | ||
| traits: { | ||
| // The email might be empty if the user hasn't granted permissions for the email scope. | ||
| [if 'email' in claims then 'email' else null]: claims.email, | ||
| }, | ||
| }, | ||
| } | ||
| ``` | ||
|
|
||
|
|
||
| </TabItem> | ||
| <TabItem value="cli" label="Ory CLI"> | ||
| Follow these steps to add Amazon as a social sign-in provider to your project using the Ory CLI: | ||
| 3. Encode the Jsonnet snippet with [Base64](https://www.base64encode.org/) or host it under an URL accessible to Ory Network. | ||
|
|
||
| ```shell | ||
| cat your-data-mapping.jsonnet | base64 | ||
| ``` | ||
|
|
||
| 4. Download the Ory Identities config from your project and save it to a file: | ||
|
|
||
| ```shell | ||
| ## List all available workspaces | ||
| ory list workspaces | ||
|
|
||
| ## List all available projects | ||
| ory list projects --workspace <workspace-id> | ||
|
|
||
| ## Get config | ||
| ory get identity-config --project <project-id> --workspace <workspace-id> --format yaml > identity-config.yaml | ||
| ``` | ||
|
|
||
| 5. Add the social sign-in provider configuration to the downloaded config. Add the Jsonnet snippet with mappings as a Base64 | ||
| string or provide an URL to the file. | ||
|
|
||
| ```yaml | ||
| selfservice: | ||
| methods: | ||
| oidc: | ||
| config: | ||
| providers: | ||
| - id: amazon # this is `<provider-id>` in the Authorization callback URL. DO NOT CHANGE IT ONCE SET! | ||
| provider: amazon | ||
| client_id: .... # Replace this with the OAuth2 Client ID provided by Amazon app | ||
| client_secret: .... # Replace this with the OAuth2 Client Secret provided by Amazon app | ||
| mapper_url: "base64://{YOUR_BASE64_ENCODED_JSONNET_HERE}" | ||
| # Alternatively, use an URL like this example | ||
| # mapper_url: https://storage.googleapis.com/example-example-prd/example-file | ||
| scope: | ||
| - profile | ||
| pkce: "force" | ||
| enabled: true | ||
| ``` | ||
|
|
||
| 6. Update the Ory Identities configuration using the file you worked with: | ||
|
|
||
| ```shell | ||
| ory update identity-config --project <project-id> --workspace <workspace-id> --file identity-config.yaml | ||
| ``` | ||
|
|
||
| </TabItem> | ||
| </Tabs> | ||
| ```` | ||
|
|
||
| ## Troubleshooting | ||
|
|
||
| ```mdx-code-block | ||
| import SocialSigninTroubleshooting from '../_common/social-sign-in-troubleshooting.mdx' | ||
|
|
||
| <SocialSigninTroubleshooting /> | ||
| ``` | ||
This file contains hidden or 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.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.