認証

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

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

Sitecore Content Hub は、セキュリティのために OAuth 2.0 認証フレームワークを使用します。 OAuth はアクセス委任のオープン スタンダードであり、インターネット ユーザーが、他のサイトにある自身の情報へのアクセスを Web サイトまたはアプリケーションに許可する方法として一般的に使用されていますが、このような Web サイトまたはアプリにパスワードを付与することはありません。 OAuth 2.0 は、Web アプリケーション、デスクトップ アプリケーション、および携帯電話による認証フローを提供します。

Sitecore Content Hub で OAuth を設定する

[管理] ページの [OAuth クライアント] オプションに移動します。

[管理] の [OAuth クライアント]

新しい [OAuth クライアント] ページが開いたら、[+OAuth クライアント] ボタンをクリックします。

OAuth クライアントの追加

新しい OAuth クライアントを作成するには、新しいモーダルで次のプロパティを指定する必要があります。

  • 名前
  • クライアント ID
  • クライアント シークレット
  • リダイレクト URL
新しい OAuth クライアント モーダル

すべてのプロパティを入力したら、[作成] をクリックします。

入力された OAuth クライアントの詳細

クリックすると、新しい OAuth クライアントが、[OAuth クライアント] リストに表示されます。

新たに作成した OAuth クライアントがリストに表示される

この OAuth クライアントまたは既存の OAuth クライアントは、編集ボタン 編集アイコン を使用して編集できます。

OAuth クライアントに表示されている編集ボタン

[クイック編集] と呼ばれる新しいモーダルが開きます。ここでは、プロパティを編集できます。

[クイック編集] モーダル

必要な編集を加えたら、[保存] をクリックします。

クイック編集の [保存] ボタン

不要になった OAuth クライアントは、削除アイコン 削除ボタン をクリックして削除できます。

OAuth クライアントの末尾に表示されている削除ボタン

[OK] をクリックして削除を確認します。

削除の確認

パスワード認証

ClientIdClientSecret に加えて、プロジェクトから Sitecore Content Hub で認証するために、ユーザー名とパスワードを指定する必要があります。 これらの値は、IWebMClient インスタンスを構築するために必要です。

以下は、Sitecore Content Hub 認証の例です。

RequestResponse
using System;
using Stylelabs.M.Sdk.WebClient;
using Stylelabs.M.Sdk.WebClient.Authentication;

namespace Stylelabs.M.WebSdk.Examples
{
    public class Program
    {
        static void Main(string[] args)
        {
            // Your Sitecore Content Hub endpoint to connect to
            Uri endpoint = new Uri("https://your.m.endpoint.com");

            // Enter your credentials here
            OAuthPasswordGrant oauth = new OAuthPasswordGrant
            {
                ClientId = "client_id",
                ClientSecret = "client_secret",
                UserName = "username",
                Password = "password"            
            };

            // Create the Web SDK client
            IWebMClient client = MClientFactory.CreateMClient(endpoint, oauth);
        }
    }
}

リフレッシュ トークン認証

usernamepassword による認証の代わりに、リフレッシュ トークン認証を使用できます。 「リフレッシュ トークン認証」では、IWebMClient.RefreshTokenReceived イベントをサブスクライブすることが重要です。 OAuthPasswordGrant を作成するのではなく、この部分を OAuthRefreshTokenGrant に変更します。

RequestResponse
// Enter your credentials here
OAuthRefreshTokenGrant oauth = new OAuthRefreshTokenGrant
{
    ClientId = "client_id",
    ClientSecret = "client_secret",
    RefreshToken = "SFGDXCbHujaXXMo_Yv2Rf5VUXR2M5GFQBCf4GnxqXIEU9wC0U4M44qHBQ8QO5I-XMlzwb2oUBue_sPsuohUqrGchf_Pfx3jRw7J2xHlxTSRZFRtVLXGQvxE_ZUyj3zIzcM56Lz8NYBzveEd7UjSEBn47RcHnbUC96u30MFrXpHphOmwAfnyENnXgaNmT6Dz1H7_YbuGF_kCGZsFXoT-Fm1NKYoZLn3N4zbB0v-I3Aof16c0_q_FsfVfnOLoviGDKwsrFAHPPLfY6PCj8dSE4vA"
};

リフレッシュ トークンが変更されると、古いトークンは無効になります。 常に最新のリフレッシュ トークンを追跡するようにしてください。

構成のテスト

認証クライアントを作成したら、TestConnectionAsync を呼び出して構成をテストすることができます。 接続に失敗した場合、失敗の背後にある理由がメソッドから出力されます。

RequestResponse
await client.TestConnectionAsync();

このメソッドは、次の要素をチェックします。

  • サーバーが実行されているかどうか
  • クライアントがサーバーに正常に接続できるかどうか
  • SDK とサーバーにバージョンの互換性があるかどうか
  • 資格情報が正しいかどうか

ヒント C# 7.1 より古いバージョンでは、コンソール アプリケーションでの既定の Main が、非同期操作をサポートしていませんでした。 C# のバージョンが 7.0 以前の場合は、.Wait() (void を返す場合) または .Result をメソッド呼び出しに追加し、await キーワードを削除する必要があります。 以下に例を示します。

RequestResponse

RequestResponse
>  client.TestConnectionAsync().Wait();
>  ```

>

それ以外の方法として、async をサポートするために、シグネチャを次のように変更します。

RequestResponse

RequestResponse
>  static async Task Main(string[] args)
>  ```

[!注] テスト接続メソッドの詳細については、API リファレンス ドキュメントを参照してください。

何かフィードバックはありますか?

この記事を改善するための提案がある場合は、