2017-02-14 70 views
0

在這篇文章中,AADSTS90009的主要原因是什麼?

AAD token: Why aud sometimes shows app id, sometimes it's the app url?

我瞭解爲什麼在AAD令牌澳元場有時是應用程序ID,有時應用網址。它們似乎取決於您在請求令牌時作爲資源投入的內容。

但是,雖然我正在嘗試使用應用程序url(SPA網站的AAD應用程序url)請求SPA網站的AAD令牌,但它返回AAD錯誤 - AADSTS90009。

AADSTS90009:應用程序''正在爲自己請求令牌。僅當使用基於GUID的應用程序標識符指定資源時才支持此場景。

看到這篇文章的相關討論。

OAuth 2.0 and Azure Active Directory - error AADSTS90009

我很好奇,這個錯誤的主要原因是什麼?

爲什麼它不支持app url作爲資源身份?

+0

爲自己請求訪問令牌沒有任何意義。通常,您會想要爲某些API應用程序請求令牌。 – juunas

+0

我不同意。對於需要用戶身份的網站,您需要AAD代表用戶的令牌。它不需要調用其他API。如果沒有意義,爲什麼仍然可以通過將應用網址替換爲應用ID來獲取令牌? –

+0

這是一個id令牌。你可以通過啓用隱式授權流程來獲得。但是,如果你想這樣做,你只需要指定資源的客戶端ID而不是應用程序ID URI :) – juunas

回答

1

如果你正在利用AAD和你在那裏AUD要求包含令牌:

  • 一個URI - 這意味着你正在處理的access_token和URI 代表服務主體名稱(讀「獨特標識符')您的客戶端應用程序想要訪問的資源應用程序。
  • a Guid - 它表示您正在處理id_token,並且該值對應於獲取該令牌的應用程序的ObjectId。
+0

我必須擴展我的答案:如果您的資源應用程序是微軟第一方應用程序,那麼'aud'聲明的值可能是guid,即使是access_token也是如此,但是如果您正在處理常規應用程序,那麼Guid不能設置爲應用程序的IdentifierUri 。但是常規應用程序並不需要在Uri中存在 - 如果使用Azure門戶,則無法設置非Uri值,但可以通過Azure AD PowerShell cmdlet設置。 – user7567234

相關問題