---
title: "認証"
slug: "authentication-1523380"
abstract: "OAuth認証、パスワード認証、クライアント認証情報認証の概要。トークン認証の更新方法と認証設定のテスト。"
---
# 認証

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

## Content HubでOAuthを設定する

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

1.  メニューバーで **「管理** :mdiCogOutline:」をクリックします。
2.  **管理**ページで、**OAuthクライアント**をクリックしてください。
3.  クリック :mdiPlus: **OAuth クライアント**。
4.  **OAuthクライアント**ダイアログで、以下のプロパティを入力します:
    -   **名称**
    -   **クライアントID**
    -   **クライアントの秘密**
    -   **リダイレクトURL(リダイレクトURL)**
5.  **クライアントタイプ**ドロップダウンリストから「**クライアント認証情報**」をクリックします。
6.  **ユーザー**フィールドで「**Add** :mdiPlus: 」をクリックし、**ユーザー**ダイアログで[ユーザーを選択し](https://doc.sitecore.com/ch/ja/developers/cloud-dev/authentication-1523380.html#UUID-5f0fbf95-331d-41f2-2a0d-d0d37342ddbb_section-idm4640349373270434255384954626 "Client credentials authentication")、「**保存**」をクリックします。
7.  **OAuthクライアント**のダイアログで「**保存**」をクリックします。

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

## パスワード認証

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

## クライアント認証

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

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

> !tipOAuthクライアントで使用する [専用のサービスユーザーアカウントを作成する](https://doc.sitecore.com/ch/en/users/content-hub/create-an-oauth-client.html) こともでき、サービスが個々のユーザーアカウントにリンクしないようにします。

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

OAuthClientCredentialsGrant oauth = new OAuthClientCredentialsGrant
{
 ClientId = "client\_id",
 ClientSecret = "client\_secret"
};

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

リフレッシュトークン認証は **、ユーザー名** と **パスワード** 認証の代わりに使用できます。「Refresh token authentication」では、IWebMClient.RefreshTokenReceivedイベントにサブスクライブすることが重要です。 OAuthPasswordGrantを作成する代わりに、これをOAuthRefreshTokenGrantに変更してください:

> !注リフレッシュトークンを取得するには、[REST APIドキュメント](https://doc.sitecore.com/ch/ja/developers/cloud-dev/oauth-tokens.html "OAuth tokens")をご覧ください。

// 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**を返す際)または**メソッド**呼び出しの結果を選び、**await**キーワードを削除してください。例えば:

MClient.TestConnectionAsync().Wait();

それ以外の場合は、**非同期**をサポートするために署名を以下に変更してください:

static async Task Main(string args)

> !注テスト接続方法の詳細については、[APIリファレン](https://doc.sitecore.com/ch/ja/developers/cloud-dev/overview.html "Overview")スを参照してください。