2016-10-18 6 views
1

私たちは、ネイティブアプリがADALを使用してアズールADに対して認証および弊社のWebアプリへの上に返さJWTを渡す持っているのAzure AD ADAL要求によって返さ検証と適切なアカウントへのログインのために。たちはADAL</p> <p>を使用して私たちのネイティブアプリのためのAzure AD認証を実装している

ADALを使用して返されたJWTには、ユーザーのobjectIDが含まれていないという問題が発生しています。

これは、Azure ADネイティブアプリの設定方法やADAL認証要求を渡すパラメータと関連があると推測しています。

誰かが私たちが間違って設定したものについて何か提案がありますか?

+0

どのADALライブラリ/プラットフォームをお使いですか? – HeidiJ

+0

トークンに正確なクレームを表示してもよろしいですか?この[site](https://jwt.io/)から解析できます。 –

+0

https://jwt.io/へのリンクありがとうございました 貝は(そうでなければ長すぎるので2つに分割する必要があります): { "aud": "00000002-0000-0000-c000- 000000000000" 、 "ISS": "https://sts.windows.net/39f8b586-1a6c-413e-9fd3-70b57a1d9fa0/"、 "IAT":1476374822、 "NBF":1476374822、 "EXP": 1476378722、 "ACR": "1"、 "altsecid": "5 :: 10037FFE8DC424C2"、 "AMR":[ "PWD" ]、 "APPID":「635034ea-2fb2-4906-b3d4- 「eaexp」:10800、 「email」:「test.use」 [email protected]。com "、 " family_name ":" User 69 "、 " given_name ":" Test "、 –

答えて

0

Azure ADからこのようなトークンを取得すると、「パススルー」トークンと呼ばれます。技術的には、トークンが表すユーザーが、認証が発生したテナントに存在しないことを意味します。パススルートークンの告知の兆候はoidクレームの不足、idpクレームの存在、altsecidクレームの存在、最も重要なのはidpクレームで、issクレームと一致しません。

サードパーティアプリケーションは、Azure ADからパススルートークンを受け取るべきではありません。この場合、トークンはあなたのアプリではないID 00000002-0000-0000-c000-000000000000のアプリを対象としています。これは、Microsoft GraphまたはAAD Graph(私は忘れている)です。 は、あなたのアプリケーションではないaudのトークンを検証するトークンである必要があります。任意の時点で、そのアプリケーションの所有者がトークン形式を変更し、アプリケーションを完全に破棄する可能性があります。代わりに、アプリケーションのAppID URIresourceパラメータとしてADALに渡し、その結果のトークンをWebサービスに送信する必要があります。 aka.ms/aaddevには、独自のWeb APIを作成する方法を示すサンプルがたくさんあります。

すべてのことを言って、私はここであなたの問題だとは思わない。あなたがテナント39f8b586-1a6c-413e-9fd3-70b57a1d9fa0、 "Mars Feature 3 Native"テナントに対してユーザーとサインインしているようです。おそらく、ADALのauthorityパラメータに渡す値です。したがって、[email protected]にサインインすると、火星のテナントがあなたのアプリに渡されます(トークンはあなたのアプリ用ではないためです)。代わりに、テナント3836f4a1-67af-43f2-a675-f9f54899abe0、smartsheet365.onmicrosoft.comテナントを使用する必要があります。その後、Azure ADから通常のユーザートークンを取得する必要があります。

+0

私たちは、必要なAzure ADアプリケーションの設定を誤解している可能性があります。 私たちはウェブアプリケーション用のOAuth2認証に使用しているマルチテナントアプリを持っています。 さらに、ADALを使用してネイティブアプリ用のネイティブAzureアプリを作成しました。私たちの理解は、iOS ADALの使用時にそうする必要があるということでした。 これは、テナント39f8b586-1a6c-413e-9fd3-70b57a1d9fa0 のID 635034ea-2fb2-4906-b3d4-88a6c3549c1aのアプリです。次の返信には、このアプリの属性が含まれています。 –

+0

アプリ属性: クライアントID:635034ea-2fb2-4906-b3d4-88a6c3549c1a redirectURLs:X-msauth-smartsheet://com.smartsheet.smartsheet/とmsauth://コード/ X-msauth-smartsheet%の3Aの%を2F%の2Fcom.smartsheet.smartsheet 資源:00000002-0000-0000-c000-000000000000 権限:https://login.microsoftonline.com/39f8b586-1a6c-413e-9fd3-70b57a1d9fa0/oauth2/authorize ですこれは間違ったアプローチですか? –

+0

Azure ADテナントからユーザーにサインインする場合は、権限として「https://login.microsoftonline.com/common」を使用します。 – dstrockis

関連する問題