2017-02-03 77 views
1

我正在編寫一個在Azure AD中註冊爲應用程序的SPA Web應用程序。本週的大部分時間一切正常,然而,當我今天開始工作時,我沒有得到預期的結果。登錄到Web應用程序時未提示OAuth同意

我刪除並重新創建應用程序註冊,希望它能解決問題,但它讓事情變得更糟。當我導航到URL時,我被重定向到登錄到Azure AD。這部分工作正常。由於我剛剛創建了應用程序註冊,所以我期望將被帶到一個頁面來同意該應用程序,但是我將被重定向回到我的應用程序。

我檢查了Azure中的應用程序註冊,並且沒有列出我作爲應用程序的用戶。因爲所有這些,我無法獲取令牌來調用外部API(我已經在我的應用程序註冊中註冊了該API)。

我不知道爲什麼我突然跑到這裏。有關爲什麼OAuth同意被繞過的想法?我開始懷疑MSFT是否存在服務問題,但更有可能的是,問題在我身上。

關於如何排除故障的建議也很受歡迎!

回答

2

有兩件事你可以做,以表示同意可能會修復你的應用程序。從聽起來像你的應用程序不同意ADAL.js之前,你使用acquireToken(這是一個沉默的電話,不能同意)。

  1. 走進Azure的門戶網站> Azure的AD>您註冊的應用程序,然後在頂部打Grant Permissions。這與管理員同意相當,並會同意租戶中的所有用戶。

  2. 運行您的應用程序並點擊登錄。當您重定向到Azure AD登錄頁面時,請添加到網址&prompt=consent,按回車並重新加載帶有該參數並登錄的頁面。這將強制同意屏幕並同意當前用戶。如果您使用管理員帳戶登錄,則還可以追加prompt=admin_consent

+1

救生員!我不是管理員,所以我唯一的選擇是添加'&prompt = consent',它工作。它還回答了我在將來如何處理更改權限的另一個問題。我將不得不進一步研究adal.js,看看它們是否已經有鉤子,如果沒有,我可能需要聽取這個錯誤,並重定向回到使用'prompt'查詢字符串參數集登錄。我還想知道,爲什麼在本週早些時候它似乎能夠正常工作時,我現在正在發生這種情況。 –

相關問題