2016-07-04 62 views
1

我目前正在爲社交網絡應用程序設計一個REST API。REST API只允許訪問資源所有者的URL

我想確定如何才能鎖定每個用戶對特定資源的訪問權限。例如,我有以下URL的

https://social-network.com/api/user?id=2/someUpdateOrPostOp 
(or https://social-network.com/api/user/id=2/someUpdateOrPostOp) 
https://social-network.com/api/user?id=3/someUpdateOrPostOp 

我需要的當然是與ID的用戶= 2不能夠把自己的ID更改爲3的url和perfom操作上的用戶與數據ID 3.

注意:我在Tomcat中使用JAX-RS,使用API​​的客戶端是Android設備。

我需要研究什麼技術來實現這一目標?我覺得我錯過了這些。

感謝您提供的任何幫助,這讓我非常困惑!

回答

1

你需要兩樣東西:確認來電者即你知道來電者是愛麗絲的身份

  1. 邏輯。這可以通過OAuth,Open ID Connect或其他協議實現。您可以使用更多基本認證,例如HTTP BASIC身份驗證,但導致密碼反模式,您可以與API共享您的密碼。
  2. 給出用戶的邏輯確定用戶可以做什麼。這被稱爲授權或訪問控制。鑑於您處於JAX-RS中,您可以使用消息攔截器來查看用戶ID,然後查看請求的對象或調用的參數,然後決定拒絕訪問,如果經過身份驗證的用戶不符合請求個人資料。您甚至可以使用XACML的外部授權。鑑於你的簡單用例,但是,這太多了。

您可以在JAX-RS攔截器here上閱讀更多信息。

相關問題