1. JavaScript SDK

認証

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

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

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

Content HubでOAuthを設定する

プロジェクトへの接続を設定するには、Content HubでM.OAuthClientエンティティを作成します。

メモ

RedirectUrlプロパティは必須ですが、この場合は関係ありません。任意の値を指定できます。

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

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

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

  3. SDKのM.OAuthClientエンティティがリストにない場合は、 OAuth Clientをクリックして新しいクライアントを追加します。

  4. Oauth Clientダイアログで、必要なM.OAuthClientエンティティ値を入力します。

    • 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で認証するためのユーザー名とパスワードを指定します。次に、Content Hub認証の例を示します。

import OAuthPasswordGrant from "@sitecore/sc-contenthub-webclient-sdk/dist/authentication/oauth-password-grant";
import { ContentHubClient } from "@sitecore/sc-contenthub-webclient-sdk/dist/clients/content-hub-client";

// Your Sitecore Content Hub endpoint to connect to
const endpoint = "https://your.m.endpoint.com";

// Enter your credentials here
const oauth = new OAuthPasswordGrant(
    "client_id",
    "client_secret",
    "username",
    "password"
);

// Create the JavaScript SDK client
const client = new ContentHubClient(endpoint, oauth);

// Authentication
// returns true when authentication succeeds.
// returns false or throws an error when authentication failed.

await client.internalClient.authenticateAsync();

認証が成功した場合はTRUE await client.internalClient.authenticateAsync() を返し、失敗した場合はFALSEを返すか、エラーをスローします。

await式は、次のように関数の一部として記述することもできます。

async function main() {
  await ...
} 
main();

awaitを使用する場合は、Promiseコンストラクタの宣言を含めるか、--libオプションにES2015を含めてください。

// configuration using tsconfig.json
{
 "compilerOptions": {
  "lib": [
   "es2015"
  ]
 }
}

または、次のコードを使用します。

tsc main.ts --lib ES2015

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

大事な

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

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

先端

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

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

import OAuthClientCredentialsGrant from "@sitecore/sc-contenthub-webclient-sdk/dist/authentication/oauth-client-credentials-grant";
const oauth = new OAuthClientCredentialsGrant("client_id", "client_secret");

更新トークン認証

更新トークン認証は、ユーザー名とパスワードの認証の代わりに使用できます。リフレッシュトークン認証では、IWebMClient.RefreshTokenReceivedイベントをサブスクライブすることが重要です。OAuthPasswordGrantを作成する代わりに、これを次のように変更OAuthRefreshTokenGrant

import OAuthRefreshTokenGrant from "@sitecore/sc-contenthub-webclient-sdk/dist/authentication/oauth-refreshtoken-grant";

// Enter your credentials here
const oauth = new OAuthRefreshTokenGrant(
  "client_id",
  "client_secret",
  "refresh_token",
);
この記事を改善するための提案がある場合は、 お知らせください!