1. Cloud development

認証

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

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

Sitecore Content HubはセキュリティのためにOAuth 2.0認証フレームワークを使用しています。 OAuthはアクセス委任のためのオープンスタンダードであり、インターネットユーザーが他のサイトやアプリケーションに自分の情報へのアクセスを許可する手段として一般的に使われていますが、これらのウェブサイトやアプリにはパスワードを付与しません。OAuth 2.0は、ウェブアプリケーション、デスクトップアプリケーション、携帯電話、スマートデバイス向けの認可フローを提供します。

!注外部コンポーネント は、HTTPリクエストをSitecore Content Hubに送信するために事前認証済みのContent Hub JavaScript SDKクライアントにアクセスできます。SDKは一般的な操作用の専用クライアントと、カスタムリクエスト用の 生クライアント を提供します。サードパーティサーバーへのリクエストには、Fetchなどの標準的なブラウザAPIを使用できます。

Content HubでOAuthを設定する

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

!注RedirectUrl属性は必須ですが、この場合は関係ありません。どんな価値でも提供可能です。

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

  1. メニューバーで 「管理 」をクリックします。
  2. 管理ページで、OAuthクライアントをクリックしてください。
  3. SDKの M.OAuthClient エンティティがリストにない場合は、 OAuth Client をクリックして新しいクライアントを追加してください。
  4. Oauthクライアントのダイアログで、必要なM.OAuthClientの事業体値を入力してください。
    • 名称
    • クライアントID
    • クライアントの秘密
    • リダイレクトURL(リダイレクトURL)
  5. クライアントタイプドロップダウンリストから「クライアント認証情報」をクリックします。
  6. ユーザーフィールドで「Add 」をクリックし、ユーザーダイアログでユーザーを選択し、「保存」をクリックします。
  7. OAuthクライアントのダイアログで「保存」をクリックします。

!ヒントOAuthクライアントを編集するには、編集したいクライアントの横に「 Quick Edit 」をクリックしてください。クライアントを削除するには「 Delete 」をクリックしてください。

パスワード認証

ClientIdとClientSecretに加えて、ユーザー名とパスワードを指定してプロジェクト内の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();

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

await式は関数の一部としても次のように書くことができます。

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

awaitを使用する場合は、Promise構造者の宣言を含めるか、--libオプションにES2015を含めることを忘れないでください。

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

} }

または、以下のコードを使用してください:

tsc main.ts --lib ES2015

クライアント認証

!重要クライアントはクライアント タイプ をクライアント 認証情報に設定して作成しなければなりません。

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

!tipOAuthクライアントで使用する専用のサービスユーザーアカウントを作成することもでき、サービスが個々のユーザーアカウントにリンクしないようにします。

以下のコードはクライアント認証の例を示しています:

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", );

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