我們有一個web應用程序使用openid連接,以azure作爲身份提供者來登錄用戶。所以用戶在登錄時發送到一個URL,如:admin_consent爲openid連接和動態範圍
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?response_type=id_token+token&client_id=3{clientId}&response_mode=form_post&redirect_uri=http://localhost:8765/ms/oidc/signon/response&scope=openid+profile+https://graph.microsoft.com/user.read&state=1234&nonce={nonce}
這工作得很好,但需要用戶同意我們的應用程序的權限作用域他們使用它的第一次。
我們想提供office365管理員同意代表他們的全部租戶的能力,所以我們將其發送到端點,如:
https://login.microsoftonline.com/common/adminconsent?client_id={clientId}&state=12345&redirect_uri=http://localhost:8765
這似乎也做工精細,並且管理員我告知他們將代表其租戶中的所有用戶同意。但是,用戶在首次登錄時仍顯示同意提示。 這有一定道理,因爲應用程序只與user.read許可登記的,所以如果我們不是發送用戶
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?response_type=token&client_id={clientId}&response_mode=form_post&redirect_uri=http://localhost:8765/ms/oidc/signon/response&scope=https://graph.microsoft.com/user.read&state={state}&nonce={nonce}
沒有動態許可請求和響應類型只設置令牌,管理員同意作品,並且用戶不會收到同意提示。 所以,我想我有兩個問題:
1)這是它應該如何工作,或有某種方式授予管理員同意的配置文件和openid作用域?
2)我是否真的錯過了任何不需要這些(openid + profile)權限?我不接收和響應id_token,但似乎authentication_token已經包含比id_token確實反正
謝謝你的回答,我猜我必須等MS去修復它。 關於第2點,我明白了oauth和openid connect之間的區別,我們目前使用openid連接作用域並且獲得了id_tokens,所以我的問題更接近於,如果通過使用oidc獲得了任何東西在這種情況下,正如你所指出的那樣,我們已經在向用戶請求了。讀, – vruum