1. WebクライアントSDK

認証

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

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

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

Content HubでOAuthを設定する

Content HubでOAuthを設定するには:

  1. メニュー バーで、Manage をクリックします。

  2. Manageページで、「OAuth clients」をクリックします。

  3. OAuth Client」をクリックします。

  4. OAuth Clientダイアログで、次のプロパティを入力します。

    • Name

    • Client ID

    • Client Secret

    • Redirect Url

  5. Client Typeドロップダウンリストから、Client Credentialsをクリックします。

  6. UsersフィールドでAdd をクリックし、Userダイアログでユーザーを選択してからSaveをクリックします。

  7. OAuth Clientダイアログで、「Save」をクリックします。

先端

OAuthクライアントを編集するには、編集するクライアントの横にあるQuick Edit edit icon をクリックします。クライアントを削除するには、Delete delete icon をクリックします。

パスワード認証

ClientIdClientSecretに加えて、プロジェクトからのContent Hubで認証するためのユーザー名とパスワードを指定します。これらの値は、IWebMClientインスタンスを構築するために必要です。次に、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);
    }
  }
}

クライアント資格情報の認証

大事な

クライアントは、Client typeClient credentialsに設定して作成する必要があります。

Content HubでOAuthを設定すると、Usersフィールドに複数のユーザーを定義できます。ただし、認証の目的では最初のもののみが使用され、これはすべての操作がそのユーザーのコンテキストで実行されることを意味します。

先端

また、OAuthクライアントで使用する専用のサービスユーザーアカウントを作成して、サービスによって実行される操作が個々のユーザーアカウントにリンクされないようにすることもできます。

次のコードは、クライアント資格情報の認証の例を示しています。

OAuthClientCredentialsGrant oauth = new OAuthClientCredentialsGrant
{
    ClientId = "client_id",
    ClientSecret = "client_secret"
};

更新トークン認証

リフレッシュ・トークン認証は、usernameおよびpassword認証の代わりに使用できます。「Refresh token authentication」では、IWebMClient.RefreshTokenReceivedイベントに加入することが大切です。OAuthPasswordGrantを作成する代わりに、これを次のように変更OAuthRefreshTokenGrant

メモ

更新トークンを取得するには、REST APIのドキュメントを参照してください。

// 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とサーバーがバージョン互換性があるかどうか

  • 資格情報が正しいかどうか

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

MClient.TestConnectionAsync().Wait();

それ以外の場合、asyncをサポートするために、署名を次のように変更します。

static async Task Main(string[] args)
手記

テスト接続方法の詳細については、APIリファレンスを参照してください。

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