認証
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecore Content Hub は、セキュリティのために OAuth 2.0 認証フレームワークを使用します。 OAuth はアクセス委任のオープン スタンダードであり、インターネット ユーザーが、他のサイトにある自身の情報へのアクセスを Web サイトまたはアプリケーションに許可する方法として一般的に使用されていますが、このような Web サイトまたはアプリにパスワードを付与することはありません。 OAuth 2.0 は、Web アプリケーション、デスクトップ アプリケーション、および携帯電話による認証フローを提供します。
Sitecore Content Hub で OAuth を設定する
[管理] ページの [OAuth クライアント] オプションに移動します。
新しい [OAuth クライアント] ページが開いたら、[+OAuth クライアント] ボタンをクリックします。
新しい OAuth クライアントを作成するには、新しいモーダルで次のプロパティを指定する必要があります。
- 名前
- クライアント ID
- クライアント シークレット
- リダイレクト URL
すべてのプロパティを入力したら、[作成] をクリックします。
クリックすると、新しい OAuth クライアントが、[OAuth クライアント] リストに表示されます。
この OAuth クライアントまたは既存の OAuth クライアントは、編集ボタン
を使用して編集できます。
[クイック編集] と呼ばれる新しいモーダルが開きます。ここでは、プロパティを編集できます。
必要な編集を加えたら、[保存] をクリックします。
不要になった OAuth クライアントは、削除アイコン
をクリックして削除できます。
[OK] をクリックして削除を確認します。
パスワード認証
ClientId
と ClientSecret
に加えて、プロジェクトから 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 client = MClientFactory.CreateMClient(endpoint, oauth);
}
}
}
リフレッシュ トークン認証
username
と password
による認証の代わりに、リフレッシュ トークン認証を使用できます。 「リフレッシュ トークン認証」では、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 client.TestConnectionAsync();
このメソッドは、次の要素をチェックします。
- サーバーが実行されているかどうか
- クライアントがサーバーに正常に接続できるかどうか
- SDK とサーバーにバージョンの互換性があるかどうか
- 資格情報が正しいかどうか
ヒント C# 7.1 より古いバージョンでは、コンソール アプリケーションでの既定の
Main
が、非同期操作をサポートしていませんでした。 C# のバージョンが 7.0 以前の場合は、.Wait()
(void
を返す場合) または.Result
をメソッド呼び出しに追加し、await
キーワードを削除する必要があります。 以下に例を示します。RequestResponse
> client.TestConnectionAsync().Wait();
> ```
>
それ以外の方法として、
async
をサポートするために、シグネチャを次のように変更します。RequestResponse
> static async Task Main(string[] args)
> ```
[!注] テスト接続メソッドの詳細については、API リファレンス ドキュメントを参照してください。