---
title: "認証トークン(C#)を取得する"
slug: "obtain-an-authentication-token--c--"
abstract: "C#プログラミングを使ったGetTokenリクエストの使い方。"
---
# 認証トークン(C#)を取得する

[ベアラートークン認証](https://doc.sitecore.com/xp/ja/developers/100/sitecore-experience-commerce/bearer-token-authentication.html "Bearer token authentication") は、Sitecore Commerce Engine Connectを経ずに直接コマースエンジンを呼び出しるシステムに使用されます。Sitecore Experience Commerce(XC)システムでいかなる操作を実行するには、呼び出し先にSitecoreアイデンティティサーバーに接続して認証トークンを取得し、コマースエンジンへのすべての呼び出しに含めなければなりません。他の操作は、トークンが有効である限り同じトークンを再利用できます。

以下はC#を使ったGetTokenリクエストの例を示しています。

public static class SitecoreIdServerAuth
{
 public static async Task<string> GetToken()
 {
 using (var client = new HttpClient())
 {
 client.BaseAddress = new Uri(Console.Program.SitecoreIdServerUri);
 client.DefaultRequestHeaders.Accept.Clear();
 client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
 var content = new FormUrlEncodedContent(new 
 {
 new KeyValuePair<string, string>("client\_id", "postman-api"),
 new KeyValuePair<string, string>("scope", "openid EngineAPI postman\_api"),
 new KeyValuePair<string, string>("grant\_type", "password"),
 new KeyValuePair<string, string>("username", "myUserName"),
 new KeyValuePair<string, string>("password", "myPassword")
 });
 var response = await client.PostAsync("connect/token",content);
 var result = JsonConvert.DeserializeObject<TokenResponse>(response.Content.ReadAsStringAsync().Result);
 return $"Bearer {result.access\_token}";
 }
}
private struct TokenResponse
{
 public string access\_token { get; set; }
 public long expires\_in { get; set; }
 public string token\_type { get; set; }
 }
}