2017-05-04 36 views
0

我正在運行我自己的測試IdentityServer,但我遇到了一個問題。必須爲每個基於瀏覽器的客戶端指定ClientUri和RedirectUris。我知道這些可以存儲在數據庫中,但有什麼方法可以在這裏插入通配符嗎?IdentityServer客戶端重定向網址中允許使用通配符

我們的每個客戶都會收到他們自己的子域名,並且我想通過允許所有瀏覽器嘗試訪問我們在* .ourcompany.com上的任何應用程序作爲身份服務器中的相同客戶端來簡化用戶管理。這可能嗎。

+0

如果你這樣做正確,你可以有一個攻擊,其中a.ourcompany.com可以嘗試使用URI對b.outcompany.com。確保你正確地做到這一點,否則你有一場災難。 – Lutando

+0

子域名如何能夠從另一個子域使用「uri」?只有2個主要應用程序可以提供客戶特定的數據和安全令牌,用戶可以指定允許哪些公司訪問數據並進行簽名以避免篡改。 – Ian

回答

1

你可以實現你自己的重定向URI驗證器。但出於安全原因,不推薦這樣做,因爲它擴大了攻擊面。

  1. Redirect Uri Validator Interface
  2. How to register your custom validator
  3. Discussion about redirect uri


身份服務器4

我認爲你可以在啓動加AddCustomAuthorizeRequestValidator。不過,不建議修改重定向URI驗證。

  1. Add Custom services
  2. Related Discussion
+0

是的,在這一點上IdentityServer對我來說太重了。 Plus v4是最新的,但它似乎沒有我需要的自定義用戶存儲等文件(上面的鏈接到v3)。 但是,最大的問題是我想實現一個方案,在這個方案中,STS只是簡單地將身份標識/授權令牌映射並返回給瀏覽器,而不必在STS中定義所有這些角色和範圍。我不需要所有的內部應用程序功能。 – Ian

+0

對不起,我沒有看到這是爲身份服務器4.修改答案一點。如果你有一天需要同一個用戶存儲不同的應用程序,在身份服務器上的投資將會爲你帶來收益。關於文件和樣品,儘管它們可以改進,但我認爲在生產中有足夠的啓動和運行。 – rawel

+1

我認爲它的完整功能集可以將它權衡下來。我的應用程序都在他們的機器上安裝了相同的一組x509證書,因此我可以在任何地方驗證和解密令牌。這意味着我可以做一個更簡單的基於所有權的身份驗證,而不必讓我的STS定義所有這些範圍和客戶端和資源。試圖在我的情況下設置IDServ4只是讓我頭疼,因爲我知道我所做的大部分配置都是不必要的。即時註銷功能和請求過濾是唯一需要STS瞭解消費者應用程序的事情。 – Ian