web-dev-qa-db-ja.com

Azure Active Directory-トークンオーディエンスを許可する

Azureで「許可されたトークンのユーザー」に関するドキュメントを探していますが、存在しないようです。そこに置いた値は、トークンで返されたリソースIDでした。

これは何を意味するのでしょうか?ドキュメントへのリンクは大歓迎です。

PS。実際のページの学習リンクにはこれについて何も言及されておらず、スクリーンショットは古いようで、このフィールドはありません。

前もって感謝します

enter image description here

18
noobie

私もドキュメントに出くわしていました。以下は、バックエンドAPIアプリを使用するAngularフロントエンドアプリで動作するようになったものです。

フロントエンドアプリで、ユーザーはリンクをクリックし、Azure Directoryで認証します。トークンはブラウザのセッションに保持されます。

次に、ユーザーはAPIアプリと対話したいと考えています。
方法は次のとおりです。

  • AzureのAPIアプリのApp Serviceに移動します。
  • 認証/承認に移動します
  • App Service認証を「オン」にする
  • [認証プロバイダー]で[Azure Active Directory]を選択します
  • 「詳細」ボタンを選択します
  • [クライアントID]フィールドに、APIアプリのAzure Active Directoryアプリ登録から「アプリケーションID」を挿入します。既にAzure Active DirectoryにAPIアプリを登録しておく必要があります。
  • [Allowed Token Audiences]フィールドに、フロントエンドアプリのAzure Active Directoryアプリ登録から「アプリケーションID」を挿入します。既にAzure Active Directoryにフロントエンドアプリを登録しておく必要があります。

セキュリティはとても重要です。ドキュメントの混乱がこのようなものの周りにあることは私の心を吹き飛ばします。 Owin/Katanaはこれから出て行くようです。この構成に基づいて、あなたはそれのどれも必要としません。 Owinが成功者であるというもう1つの兆候は、Microsoft/System IdentityModelに関連する大規模な重大な変更であり、構築、識別、修正は不可能だと思われます。 Microsoftが、何が出て何が入っているかを示す「エンドポイント」を作成し、この特定のステップを実行する方法を望んでいます。アプリにこれを実行させることができれば、本当にきれいです。

enter image description here

10
LargeDachshund

私の経験では、このフィールドの値(または値の1つ)は、サービスに送信されるトークンの「audience」フィールドの値と一致する必要があります(juunasは上記の質問に対するコメントと同じくらい) 。アプリID URIを使用するための上記のbwmartensの提案は動作するように聞こえますが、AzureポータルのAAD登録ブレードの現在のバージョンには「アプリID URI」値が表示されず、「設定->プロパティ」も表示されませんもう(サイトは変化し続けます)。

私の場合、アプリケーションIDを入力するだけでは機能しませんでした。ここで必要な値を見つける最も簡単な2つの方法は次のとおりです。

  1. サービスのAAD登録に移動し、「identifierUris」フィールドのマニフェストを確認します。私の経験では、この値は、許可されたトークンオーディエンスリストに入力した値と一致する必要があります。
  2. サービスに送信しているJWTを取得してデコードし(例: http://jwt.calebb.net/ を使用)、「aud」フィールドの値を確認します。それを許可されたトークン対象者リストに入れてください。
1
Auth Infant