Skip to main content

Ory

This Ory option allows you to add Ory OAuth2 as OIDC provider. In Ory Network, you can create this provider using the Ory Console or the Ory CLI. When self-hosting Ory, deploy the Ory Hydra Federation server and use the hydra CLI to create the client.

The following snippet shows how to create it using the CLI:

ory create project --name "OAuth2 Server - Example Corp"
# Note down the project ID
export project_id=your-project-id # replace with your project ID

ory create oauth2-client --project $project_id \
--name "Example Corp" \
--grant-type authorization_code,refresh_token \
--response-type code \
--scope openid,offline_access,email \
--redirect-uri https://your-project-slug.projects.oryapis.com/self-service/methods/oidc/callback/H1o_k--i # replace with your redirect URI

Adding Ory OAuth2 as a social sign-in provider is straightforward since Ory follows the OAuth2/OIDC specification. Because of this, you can add Ory OAuth2 clients as generic OIDC providers without requiring extra set up.
To add your Ory OAuth2 server as a social sign-in provider, you need the following configuration details:

  • Client ID - you get this when creating the client
  • Client Secret - you get this when creating the client
  • Issuer URL - this is the URL of the Ory Network project or Ory Hydra Federation server instance.

Follow these steps to add an Ory OAuth2 provider to your project using the Ory Console:

  1. Sign in to Ory Console and select Social Sign-in.
  2. Click the Add new OpenID Connect provider button.
  3. Define the Label. This name is used for identification purposes only.
  4. Paste the configuration details obtained from your social sign-in provider into the corresponding fields in the Console:
    • Client ID
    • Client Secret
    • Issuer URL
  5. Copy the Redirect URI from the Console and add it to the OAuth2 client you created earlier. You can do this in the Ory Console or using the Ory CLI.
  6. Click Save Configuration to finish.
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 and data mapping as described in the next section.

Additional configuration

When adding a generic social sign-in provider, you can customize the integration by defining the OAuth scopes Ory requests from the provider and by setting up custom data mappings.

Scopes

The Scopes section allows you to define the OAuth scopes Ory requests from the sign-in provider. Defining scopes allows 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 an out of the box setup, use the default scopes openid, offline_access and email.

Data mapping

In the Data Mapping field of the form in the Ory Console, add the following Jsonnet code snippet, which maps the desired claims to the Ory Identity schema:

local claims = {
email_verified: false,
} + std.extVar('claims');

{
identity: {
traits: {
// Allowing unverified email addresses enables account
// enumeration attacks, if the value is used for
// verification or as a password login identifier.
//
// Therefore we only return the email if it (a) exists and (b) is marked verified.
[if 'email' in claims && claims.email_verified then 'email' else null]: claims.email,
},
},
}

Troubleshooting

When you add a social sign-in provider, you can encounter common problems such as:

  • Redirect URI mismatch
  • Redirect loops during registration
  • Domain verification issues

To troubleshoot those issues, read Social sign-in troubleshooting.