次の方法で共有


認証と承認

Foundry Tool に対する各要求には、認証ヘッダーを含める必要があります。 このヘッダーを使用して、リソース キーまたは認証トークンを渡します。これは、サービスまたはサービスのグループについてお客様のサブスクリプションを検証するために使用されます。 この記事では、要求を認証する方法と、それぞれの要件について説明します。

ヘッダー

Foundry Tools で Translator または マルチサービス にサブスクライブし、キー (Azure portal で使用可能) を使用して認証します。

サブスクリプションの認証に使用できるヘッダーは 3 つあります。 次の表では、それぞれの使用方法について説明します。

ヘッダー 説明
Ocp-Apim-Subscription-Key 秘密鍵を渡す場合は、Foundry Tools サブスクリプションで使用します
値は、Translator へのサブスクリプションの Azure 秘密鍵です。
認証 認証トークンを渡す場合は、Foundry Tools サブスクリプションで使用します。
値はベアラー トークンです: Bearer <token>
Ocp-Apim-Subscription-Region マルチサービスおよびリージョンのトランスレーター リソースで使用します。
値は、マルチサービスまたはリージョンのトランスレーター リソースのリージョンです。 グローバル トランスレーター リソースを使用する場合、この値は省略可能です。

秘密鍵

最初のオプションは、 Ocp-Apim-Subscription-Key ヘッダーを使用して認証することです。 Ocp-Apim-Subscription-Key: <YOUR_SECRET_KEY> ヘッダーを要求に追加します。

グローバル リソースを使用した認証

グローバル トランスレーター リソースを使用する場合は、Translator を呼び出すために 1 つのヘッダーを含める必要があります。

ヘッダー 説明
Ocp-Apim-Subscription-Key 値は、Translator へのサブスクリプションの Azure 秘密鍵です。

グローバル トランスレーター リソースを使用して Translator を呼び出す要求の例を次に示します。

// Pass secret key using headers
curl -X POST "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&to=es" \
    -H "Ocp-Apim-Subscription-Key:<your-key>" \
    -H "Content-Type: application/json" \
    -d "[{'Text':'Hello, what is your name?'}]"

リージョン リソースを使用した認証

リージョンの Translator リソースを使用する場合、Translator を呼び出すために必要なヘッダーが 2 つあります。

ヘッダー 説明
Ocp-Apim-Subscription-Key 値は、Translator へのサブスクリプションの Azure 秘密鍵です。
Ocp-Apim-Subscription-Region 値は、Translator リソースのリージョンです。

リージョンの Translator リソースを使用して Translator を呼び出す要求の例を次に示します。

// Pass secret key and region using headers
curl -X POST "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&to=es" \
    -H "Ocp-Apim-Subscription-Key:<your-key>" \
    -H "Ocp-Apim-Subscription-Region:<your-region>" \
    -H "Content-Type: application/json" \
    -d "[{'Text':'Hello, what is your name?'}]"

マルチサービス リソースを使用した認証

マルチサービス リソースを使用すると、1 つの API キーを使用して、複数のサービスの要求を認証できます。

マルチサービス シークレット キーを使用する場合は、要求に 2 つの認証ヘッダーを含める必要があります。 Translator を呼び出すために必要なヘッダーは 2 つあります。

ヘッダー 説明
Ocp-Apim-Subscription-Key 値は、マルチサービス リソースの Azure シークレット キーです。
Ocp-Apim-Subscription-Region 値は、マルチサービス リソースのリージョンです。

マルチサービス Text API サブスクリプションにはリージョンが必要です。 選択したリージョンは、マルチサービス キーを使用するときにテキスト翻訳に使用できる唯一のリージョンです。 これは、Azure portal を使用してマルチサービス サブスクリプションにサインアップしたときに選択したリージョンと同じである必要があります。

パラメーター Subscription-Keyを使用してクエリ文字列に秘密キーを渡す場合は、クエリ パラメーター Subscription-Regionでリージョンを指定する必要があります。

アクセス トークンを使用した認証

または、秘密鍵をアクセス トークンと交換することもできます。 このトークンは、各要求に Authorization ヘッダーとして含まれます。 承認トークンを取得するには、次の URL に POST 要求を行います。

リソースの種類 認証サービスの URL
グローバル https://api.cognitive.microsoft.com/sts/v1.0/issueToken
リージョンまたはマルチサービス https://<your-region>.api.cognitive.microsoft.com/sts/v1.0/issueToken

グローバル リソースの秘密鍵を指定してトークンを取得する要求の例を次に示します。

// Pass secret key using header
curl --header 'Ocp-Apim-Subscription-Key: <your-key>' --data "" 'https://api.cognitive.microsoft.com/sts/v1.0/issueToken'

// Pass secret key using query string parameter
curl --data "" 'https://api.cognitive.microsoft.com/sts/v1.0/issueToken?Subscription-Key=<your-key>'

また、米国中部にあるリージョン リソースの秘密鍵を指定してトークンを取得する要求の例を次に示します。

// Pass secret key using header
curl --header "Ocp-Apim-Subscription-Key: <your-key>" --data "" "https://centralus.api.cognitive.microsoft.com/sts/v1.0/issueToken"

// Pass secret key using query string parameter
curl --data "" "https://centralus.api.cognitive.microsoft.com/sts/v1.0/issueToken?Subscription-Key=<your-key>"

要求が成功すると、エンコードされたアクセス トークンが応答本文でプレーン テキストとして返されます。 有効なトークンは、Authorization でベアラー トークンとして Translator に渡されます。

Authorization: Bearer <Base64-access_token>

認証トークンは 10 分間有効です。 Translator に対して複数の呼び出しを行うときは、トークンを再利用する必要があります。 ただし、プログラムが長期間にわたって Translator に要求を行う場合、プログラムは一定の間隔 (8 分ごとなど) に新しいアクセス トークンを要求する必要があります。

Microsoft Entra IDを使用した認証

Translator v3.0 では、Microsoft のクラウドベースの ID およびアクセス管理ソリューションである Microsoft Entra 認証がサポートされています。 承認ヘッダーを使用すると、Translator は、要求側クライアントがリソースの使用と要求の完了を承認されていることを検証できます。

前提条件

Microsoft Entra ID ヘッダー

ヘッダ 価値
認証 値は、Microsoft Entra ID によって生成されたアクセス ベアラー トークン です。
  • ベアラー トークンは認証の証明を提供し、リソースを使用するためのクライアントの承認を検証します。
  • 認証トークンは 10 分間有効であり、Translator に対して複数の呼び出しを行うときに再利用する必要があります。
  • 要求の例: 2 を参照してください。トークンを取得する
Ocp-Apim-Subscription-Region 値は、 Translator リソースのリージョンです。
  • リソースがグローバルな場合、この値は省略可能です。
Ocp-Apim-ResourceId 値は、Translator リソース インスタンスのリソース ID です。
  • リソース ID は、Azure portal の Translator Resource → Properties にあります
  • リソース ID 形式:
    /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.CognitiveServices/accounts/<resourceName>/
Translator プロパティ ページ - Azure portal

スクリーンショット:Azure portal の [Translator のプロパティ] ページ。

Von Bedeutung

Cognitive Services ユーザー ロールをサービス プリンシパルに割り当てます。 このロールを割り当てることで、Translator リソースへのアクセス権をサービス プリンシパルに付与します。

グローバル エンドポイントの使用

// Using headers, pass a bearer token generated by Azure AD, resource ID, and the region.

curl -X POST "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&to=es" \
    -H "Authorization: Bearer <Base64-access_token>"\
    -H "Ocp-Apim-ResourceId: <Resource ID>" \
    -H "Ocp-Apim-Subscription-Region: <your-region>" \
    -H "Content-Type: application/json" \
    -data-raw "[{'Text':'Hello, friend.'}]"

カスタム エンドポイントの使用

// Using headers, pass a bearer token generated by Azure AD.

curl -X POST https://<your-custom-domain>.cognitiveservices.azure.com/translator/text/v3.0/translate?api-version=3.0&to=es \
    -H "Authorization: Bearer <Base64-access_token>"\
    -H "Content-Type: application/json" \
    -data-raw "[{'Text':'Hello, friend.'}]"

マネージド ID の使用例

Translator v3.0 では、マネージド ID へのアクセスの承認もサポートされています。 トランスレーター リソースに対してマネージド ID が有効になっている場合は、マネージド ID によって生成されたベアラー トークンを要求ヘッダーに渡すことができます。

グローバル エンドポイントを使用する

// Using headers, pass a bearer token generated either by Azure AD or Managed Identities, resource ID, and the region.

curl -X POST https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&to=es \
    -H "Authorization: Bearer <Base64-access_token>"\
    -H "Ocp-Apim-ResourceId: <Resource ID>" \
    -H "Ocp-Apim-Subscription-Region: <your-region>" \
    -H "Content-Type: application/json" \
    -data-raw "[{'Text':'Hello, friend.'}]"

カスタム エンドポイントを使用する

//Using headers, pass a bearer token generated by Managed Identities.

curl -X POST https://<your-custom-domain>.cognitiveservices.azure.com/translator/text/v3.0/translate?api-version=3.0&to=es \
    -H "Authorization: Bearer <Base64-access_token>"\
    -H "Content-Type: application/json" \
    -data-raw "[{'Text':'Hello, friend.'}]"

仮想ネットワークのサポート

Translator は、Azure パブリック クラウドのすべてのリージョンで Virtual Network (VNET) 機能を使用できるようになりました。 仮想ネットワークを有効にするには、「Foundry Tools 仮想ネットワークの構成」を参照してください

この機能を有効にしたら、カスタム エンドポイントを使用して Translator を呼び出す必要があります。 グローバル トランスレーター エンドポイント ("api.cognitive.microsofttranslator.com") を使用することはできません。また、アクセス トークンで認証することはできません。

Translator リソースを作成し、選択したネットワークとプライベート エンドポイントからのアクセスを許可した後で、カスタム エンドポイントを見つけることができます。

  1. Azure portal で、Translator リソースに移動します。

  2. [リソース管理] セクションで [ネットワーク] を選択します。

  3. [ファイアウォールと仮想ネットワーク] タブで、[選択したネットワークとプライベート エンドポイント] を選択します。

    Azure portal の仮想ネットワーク設定のスクリーンショット。

  4. [保存] を選択して変更を保存します。

  5. [リソース管理] セクションから [キーとエンドポイント] を選択します。

  6. [ 仮想ネットワーク ] タブを選択します。

  7. テキスト翻訳とドキュメント翻訳のエンドポイントが一覧表示されています。

    仮想ネットワーク エンドポイントのスクリーンショット。

ヘッダー 説明
Ocp-Apim-Subscription-Key 値は、Translator へのサブスクリプションの Azure 秘密鍵です。
Ocp-Apim-Subscription-Region 値は、Translator リソースのリージョンです。 この値は、リソースが global

カスタム エンドポイントを使用して Translator を呼び出す要求の例を次に示します。

// Pass secret key and region using headers
curl -X POST "https://<your-custom-domain>.cognitiveservices.azure.com/translator/text/v3.0/translate?api-version=3.0&to=es" \
    -H "Ocp-Apim-Subscription-Key:<your-key>" \
    -H "Ocp-Apim-Subscription-Region:<your-region>" \
    -H "Content-Type: application/json" \
    -d "[{'Text':'Hello, what is your name?'}]"