Configure a Sitecore instance and Sitecore Identity server
To configure a Sitecore instance to use Sitecore Identity (SI) server authentication you must:
For more information about the Sitecore Identity Server components, see Sitecore Identity Structure.
Configure the Sitecore instance
To configure the Sitecore instance, enable every Sitecore instances that uses SI server authentication with:
-
The absolute URL of the SI server (Authority in OpenId Connect terminology). You set this in the
$(identityServerAuthority)configuration variable. It is specified in the deployment process. -
The ID of the registered client. Sitecore has a default client configured in SI server with ID
Sitecore. Sitecore stores this ID in theFederatedAuthentication.IdentityServer.ClientIdsetting. -
The ID of a dedicated client for the custom Resource Owner Password flow. Sitecore uses a custom Resource Owner Password flow for internal purposes. The
FederatedAuthentication.IdentityServer.ResourceOwnerClientIdsetting specifies the ID of this client. The default value isSitecorePassword.
Sitecore connects the SI server according to the federated authentication configuration.
Configure the Sitecore Identity server
The Sitecore Identity server must contain the configuration of all its clients (see Duende IdentityServer client).
To configure the Sitecore Identity server:
-
Set the client secret in the
Sitecore:IdentityServer:Clients:PasswordClient:ClientSecrets: ClientSecret1setting in theConfig\Sitecore.IdentityServer.Host.xml file on the Sitecore Identity server.It must be the same as the client secret in the
App_Config\ConnectionStrings.configfile, in thesitecoreidentity.secretconnection string, on the Sitecore instance.When you install Sitecore XP, the client secret is set to Sitecore Identity Server by default and you do not need to perform this step.
-
To allow Sitecore users to sign in, in the
Config\Sitecore.IdentityServer.Host.xml file, in theSitecore:IdentityServer:SitecoreMembershipOptions:ConnectionStringsetting, configure the connection string to the Security database. -
To allow users to recover their passwords, in the
Config\Sitecore.IdentityServer.Host.xml file, configure theSitecore:IdentityServer:AccountOptions: PasswordRecoveryUrlsetting.When you install Sitecore XP, the link to the Sitecore instance is used by default and you do not need to perform this step.
-
Use either the
Sitecore:IdentityServer:Clientssection to configure clients, or use dependency injection.Each client configuration node contains a number of properties that are bound to properties of the
Duende.IdentityServer.Models.Clientclass. In most cases, the names of class properties and configuration properties are matched. Alternatively, you can use dependency injection to access the whole set of Duende IdentityServer options.NoteThere is a predefined client called
Sitecore(Sitecore:IdentityServer:Clients:DefaultClient). -
To reuse the default
Sitecoreclient declaration, extend the lists of allowedRedirectUris,PostLogoutRedirectUris, andAllowedCorsOriginsvalues to contain the appropriate values for your application.You can use the
{AllowedCorsOrigin}special token inRedirectUrisandPostLogoutRedirectUrislists, as in the following example (this is in theConfig\Sitecore.IdentityServer.Host.xmlfile:RequestResponse<?xml version="1.0" encoding="utf-8"?> <Settings> <Sitecore> <IdentityServer> <Clients> <DefaultClient> ... <RedirectUris> <RedirectUri1>{AllowedCorsOrigin}/identity/signin</RedirectUri1> <RedirectUri2>{AllowedCorsOrigin}/signin-oidc</RedirectUri2> </RedirectUris> <PostLogoutRedirectUris> <PostLogoutRedirectUri1>{AllowedCorsOrigin}/identity/postexternallogout</PostLogoutRedirectUri1> <PostLogoutRedirectUri2>{AllowedCorsOrigin}/signout-callback-oidc</PostLogoutRedirectUri2> </PostLogoutRedirectUris> ... -
To specify a
protocol+domain+portpart of URLs only in theAllowedCorsOriginssection, use the{AllowedCorsOrigin}token:RequestResponse<?xml version="1.0" encoding="utf-8"?> <Settings> <Sitecore> <IdentityServer> <Clients> <DefaultClient> ... <AllowedCorsOrigins> <AllowedCorsOriginsGroup1>https://host1|http://host1</AllowedCorsOriginsGroup1> <AllowedCorsOriginsGroup2>https://host2</AllowedCorsOriginsGroup2> <AllowedCorsOriginsGroup3>https://host3</AllowedCorsOriginsGroup3> </AllowedCorsOrigins> ...Sitecore expands the
RedirectUri*andPostLogoutRedirectUri*node values with {AllowedCorsOrigin}tokens to be allowed for every origin specified in theAllowedCorsOriginslist.