2014-08-28 117 views
8

我正在從Google OpenID 2.0遷移到OpenID Connect。我目前使用Microsofts ACS,它使用Googles折舊的OpenID 2.0進行身份驗證。這意味着我的領域自動設置爲'https://mywebsite.accesscontrol.windows.net:443/v2/openid'。從Google OpenID 2.0遷移到OpenID使用不同的redirect_uri和openid.realm參數連接

ACS沒有升級計劃,因此我已經開始直接與Google OpenID Connect進行集成。我正在關注Googles migration documentation,其中說我可以添加一個openid.realm參數(設置爲用於OpenID 2.0的領域),然後獲取映射現有用戶帳戶所需的openid_id。另外它說redirect_uri需要與openid.realm一樣。我猜出於安全原因。

所以我的問題是我無法設置重定向uri與領域相同,因爲領域是ACS端點例如

https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=id.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Fmywebsite.com%3A2018%2F&scope=openid%20profile%20email&state=state&openid.realm=https%3A%2F%2Fmywebsite.accesscontrol.windows.net%3A443%2Fv2%2Fopenid 

我試圖將它們設置不同,但我得到一個錯誤

「的境界沒'牛逼比賽REDIRECT_URI /產地。錯誤代碼:5'

Google計劃支持這種情況嗎?

有關如何解決此問題的任何想法?

回答

0

老問題,但它還是重要的情況下,我認爲Google docs居然說:

「尋找你的應用程序的redirect_uri並改變它(如有必要),以便它匹配您的OpenID 2.0 openid.realm值,根據匹配規則section 9.2 of the OpenID 2.0 spec

這歸結爲域匹配和redirect_uri是所述路徑的子路徑在openid.realm,如果存在一個。

由於你的openid.realm包含了一條路徑,我認爲你有點搞砸了,你將不得不求助於在服務器中設置某種重定向,以將舊的redirect_url映射到你的新路徑。謝天謝地,就我而言,我可以將redirect_url設置爲任何新路徑,因爲我的openid.realm只有一個域名。