2009-02-18 47 views
2

我正在尋找實現OpenID作爲一組合作夥伴網站的提供者。事情是這個網站是爲孩子們(13歲以下),所以我有商業限制,需要處理 - 主要是不能在任何非合作網站上使用(我們與每個批准的合作伙伴合作,以確保他們符合行業隱私/安全法規)。有限使用OpenID

過去我們推出了自己的會員制和合作夥伴體系,但我想轉向行業認可的引擎,讓自己和合作夥伴的生活更輕鬆。

那麼,是否有內置的方式來限制只有一些網站的OpenID訪問,或者我需要做一些深刻的代碼更改代碼和權限來完成?

回答

5

是的,絕對。基於你的dotnetopenid標籤,我認爲這是你正在使用的庫,這很好。 IAuthenticationRequest中有一個Realm屬性。使用它來檢查Realm值是否出現在您的合作伙伴網站的域名URL白名單中。如果是這樣,請繼續進行正常的身份驗證步驟,並將IAuthenticationRequest.IsAuthenticated設置爲true並返回。如果領域不被識別,那麼這個13歲的<正嘗試使用他們的OpenID登錄到非合作伙伴網站,並且您可以設置IsAuthenticated = false並返回,這將中止他們的登錄。

如果您對您的具體情況有任何疑問,請隨時發送電子郵件至[email protected]

1

我自己還沒有實現OpenId,所以請帶上一點鹽。

當我登錄到我的OpenId的雅虎,它問我,如果我真的希望他們提供我的身份到stackoverflow.com。在這一點上,提供商(例如yahoo,你)應該很容易查找目標站點,並查看它是否是已批准的合作伙伴,如果它們不合適,就停止該流程。

2

這一切都取決於。
這在OpenID協議中是可能的 - 這只是一個問題,如果你的庫支持它。在文檔和配置文件中查找對網站登錄權限的限制。
如果您只是自己編寫代碼,那麼這很容易 - 當您登錄到OpenID時,它會重定向到您的網站,以查看是否讓用戶登錄到它。通常你會問用戶,但就你而言,你可以查看白名單,看看它是否被批准。