- 
                Notifications
    You must be signed in to change notification settings 
- Fork 434
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
      
      
    
      
        
          +146
        
        
          −0
        
        
          
        
      
    
  
  
     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.