1. Web クライアント SDK

認証

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

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

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

Sitecore Content Hub で OAuth を設定する

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

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

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

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

  • Name
  • クライアント ID
  • クライアント シークレット
  • リダイレクト URL

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

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

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

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

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

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

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

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

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

削除の確認

パスワード認証

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

以下に、Sitecore Content Hub 認証の例を示します。

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 MClient = MClientFactory.CreateMClient(endpoint, oauth);
}
}
}

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

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

// 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 を呼び出して構成をテストすることができます。これにより、失敗の原因を説明する例外がスローされます (例外がある場合)。

await MClient.TestConnectionAsync();

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

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

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

MClient.TestConnectionAsync().Wait();

また、async をサポートする場合は、シグネチャを次のように変更します。

static async Task Main(string[] args)
注意

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

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