create an Azure Content Safety Service at Portal, but getting 401 error when calling it.

Lian, Jingtao | Henry | CNTD 5 評価のポイント
2025-12-03T03:43:07.41+00:00

I just deployed a service at Azure portal and tried to call it for content safety check as a backup, however, I am keeping getting 401 permissionDenied error back from server. I captured the request before sending it, found it added api-version=2023-10-01 at the end when using java api call, I think this may not affect, cause it worked for my primary content safety service. I used the information below for calling but never success once. Should I do something extra for this 401 error?ユーザーの画像

ユーザーの画像

Foundry コントロール プレーンでのコンテンツの安全性

1 件の回答

並べ替え方法: 最も役に立つ
  1. SRILAKSHMI C 19,735 評価のポイント Microsoft 外部スタッフ モデレーター
    2025-12-03T05:26:38.0933333+00:00

    こんにちは Lian, Jingtao | Henry | CNTD,

    Microsoft Q&A へようこそ。お問い合わせいただきありがとうございます。

    新しく作成された Azure コンテンツ セーフティ リソースで 401 permissionDenied エラーが発生していると承知いたしました。メインのリソースでは同じコードと API バージョンが動作するため、問題は新しいデプロイメントに固有のものです。確認すべき主な点は以下のとおりです。

    1. エンドポイントとリージョンの検証

    コードが新しいリソースのエンドポイントを正確に呼び出していることを確認してください。

    https://<resource-name>.cognitiveservices.azure.com/

    また、コード内のリージョンが、新しいリソースがデプロイされているリージョンと一致していることも確認してください。リージョンが一致しない場合は 401 エラーが返されます。

    1. 正しい API キーの使用

    401 エラーの最も一般的な原因は、キーが間違っているか、無効な場合です。

    以下の点をご確認ください。

    古いリソースではなく、新しいリソースのキーを使用していること。

    Key1/Key2 が表示されているとおりにコピーされていること(隠し文字やスペースが含まれていないこと)。

    Javaクライアントにキーが正しく渡されています。

    ContentSafetyClient client = new ContentSafetyClientBuilder()

    .endpoint("<新しいエンドポイント>")

    .credential(new AzureKeyCredential("<新しいキー>"))

    .buildClient();

    1. APIバージョンは問題ではありません

    Java SDKでapi-version=2023-10-01を追加することは、Azure Content Safetyにとって想定された正しい動作です。

    他のリソースが正常に動作しているので、SDKとAPIバージョンは有効です。

    1. 正しいリソースタイプを作成したことを確認してください

    リソースがAzure AI Content Safetyであり、従来の「Content Moderator」コグニティブサービスではないことを確認してください。現在のSDKをサポートしているのはAzure AI Content Safetyのみです。

    1. ネットワークまたはファイアウォールの制限を確認する

    新しいリソースに以下の制限がある場合:

    プライベートエンドポイント

    VNet の制限

    IP フィルタリング / ファイアウォールが有効

    …環境からのリクエストが 401 または 403 を返す可能性があります。

    テストのために、以下の点を確認してください:

    [ネットワーク] → [ファイアウォール] → [すべてのネットワークからのパブリックアクセスを許可する] が有効になっていること。

    1. キーを再生成する

    新しいキーがすぐに有効にならない場合があります。

    以下の手順を試してください:

    [キー 1 を再生成] → [テスト]

    それでも失敗する場合は、[キー 2 を再生成] → [再度テスト]

    1. ロールの割り当てを確認する

    アカウントまたはアプリに、リソースまたはリソースグループに対する Cognitive Services 共同作成者以上のロールが割り当てられていることを確認してください。

    1. リソースプロバイダーの登録を確認する

    Microsoft.CognitiveServices がサブスクリプションに登録されていることを確認してください。

    Azure Portal → サブスクリプション → リソースプロバイダー → CognitiveServices を検索 → 登録済み

    1. キャッシュされた資格情報をクリアする

    以前に同様のコードで別のリソースを使用したことがある場合、キャッシュされた資格情報(特にローカル開発環境の場合)が認証の問題を引き起こす可能性があります。新規セッションまたはシークレットモードでテストすることで、この問題の可能性を排除できます。

    この問題は、ほとんどの場合、以下の原因が考えられます。

    エンドポイントまたはリージョンが間違っている

    キーが間違っている

    リソースの種類の不一致

    ネットワーク/ファイアウォールの制限

    既存のリソースが問題なく動作しているため、SDK/API バージョンの動作はすべて正常です。

    こちらを参照してください。

    Microsoft Foundry モデルでの Azure OpenAI のロールベースのアクセス制御

    Azure AI Content Safety のエラー コード

    お役に立てれば幸いです。他にご質問がございましたら、お気軽にお問い合わせください。

    ありがとうございます!

    この回答は役に立ちましたか?

    1 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません

お客様の回答

質問作成者は回答に "承認済み"、モデレーターは "推奨" とマークできます。これにより、ユーザーは作成者の問題が回答によって解決したことを把握できます。