1. Sitecoreのアイデンティティ

SitecoreインスタンスとSitecore Identityサーバーを設定する

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Sitecore Identity (SI) サーバー認証を使用するようにSitecoreインスタンスを設定するには、次のことを行う必要があります。

Sitecore Identity Serverコンポーネントの詳細については、「Sitecore Identityの構造」を参照してください。

Sitecoreインスタンスを設定する

Sitecoreインスタンスを設定するには、SIサーバー認証を使用するすべてのSitecoreインスタンスを次のように有効にします。

  • SIサーバーの絶対URL (OpenId Connectの用語ではAuthority )。これは、$(identityServerAuthority) 構成変数で設定します。これは、デプロイ プロセスで指定されます。

  • 登録済みクライアントのID。Sitecoreには、IDがID SitecoreのSIサーバーで設定されたデフォルトのクライアントがあります。Sitecoreは、このIDを

    FederatedAuthentication.IdentityServer.ClientId設定。

  • カスタムResource Owner Passwordフローの専用クライアントのID。Sitecoreは、内部目的でカスタムResource Owner Passwordフローを使用します。 FederatedAuthentication.IdentityServer.ResourceOwnerClientId設定では、このクライアントのIDを指定します。デフォルト値はSitecorePasswordです。

Sitecoreは、フェデレーション認証の設定に従ってSIサーバーに接続します。

Sitecore Identityサーバーを設定する

Sitecore Identityサーバーには、そのすべてのクライアントの設定が含まれている必要があります ( IdentityServer4クライアントを参照)。

Sitecore Identityサーバーを設定するには:

  1. Sitecore Identityサーバー上のConfig\Sitecore.IdentityServer.Host.xmlファイルのSitecore:IdentityServer:Clients:PasswordClient:ClientSecrets: ClientSecret1設定でクライアント シークレットを設定します。

    これは、SitecoreインスタンスのApp_Config\ConnectionStrings.configファイル、sitecoreidentity.secret接続文字列のクライアント シークレットと同じである必要があります。

    Sitecore XPをインストールすると、クライアント シークレットはデフォルトでSitecore Identity Serverに設定されるため、この手順を実行する必要はありません。

  2. Sitecoreユーザーがサインインできるようにするには、Config\Sitecore.IdentityServer.Host.xmlファイルのSitecore:IdentityServer:SitecoreMembershipOptions:ConnectionString設定で、Security データベースへの接続文字列を設定します。

  3. ユーザーがパスワードを回復できるようにするには、Config\Sitecore.IdentityServer.Host.xmlファイルでSitecore:IdentityServer:AccountOptions: PasswordRecoveryUrl設定を構成します。

    Sitecore XPをインストールすると、Sitecoreインスタンスへのリンクがデフォルトで使用されるため、この手順を実行する必要はありません。

  4. Sitecore:IdentityServer:Clientsセクションを使用してクライアントを構成するか、依存関係の挿入を使用します。

    各クライアント構成ノードには、IdentityServer4.Models.Clientクラスのプロパティにバインドされたいくつかのプロパティが含まれています。ほとんどの場合、クラス プロパティと構成プロパティの名前は一致します。または、依存関係の挿入を使用して、IdentityServer4オプションのセット全体にアクセスすることもできます。

    メモ

    Sitecore(Sitecore:IdentityServer:Clients:DefaultClient)という定義済みのクライアントがあります。

  5. デフォルトのSitecoreクライアント宣言を再利用するには、許可されたRedirectUrisPostLogoutRedirectUris、およびAllowedCorsOriginsの値のリストを拡張して、アプリケーションに適した値を含めます。

    次の例のように、{AllowedCorsOrigin} 特殊トークンをRedirectUrisリストとPostLogoutRedirectUrisリストで使用できます (これはConfig\Sitecore.IdentityServer.Host.xmlファイル内にあります。

    <?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>
              ...
  6. AllowedCorsOriginsセクションでのみURLのprotocol+domain+port部分を指定するには、{AllowedCorsOrigin}トークンを使用します。

    <?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は、RedirectUri* ノードとPostLogoutRedirectUri* ノードの値を {AllowedCorsOrigin} トークンで展開し、AllowedCorsOriginsリストで指定されたすべてのオリジンに許可します。

この記事を改善するための提案がある場合は、 お知らせください!