2016-01-21 131 views
1

我們有一個身份提供者用戶註冊表和一個SOAP Web服務,用於讀取/寫入用戶配置文件的應用程序。現在我們也計劃添加一個SCIM接口。SCIM 2.0的架構擴展

我們發現核心用戶模式涵蓋了基本的一組屬性,但是我們現有的系統對於相同的屬性具有不同的命名約定。

例如,說USERTELEPHONENUMBER,USERSTREETADDR1等。

考慮到大量的應用程序已經在使用這個命名約定,我們希望繼續使用SCIM 2.0。

既然我們可以擴展我們可以選擇不使用從核心架構的任何屬性核心的用戶模式,

1)?如果有效載荷包含這些屬性,我們可以簡單地在服務器端忽略它們,並只處理自定義模式屬性?

的實例用戶文件 -

{ 
     "schemas": [ "urn:scim:schemas:core:2.0:User", 
        urn:scim:schemas:extension:customattrs:2.0:User"], 
     "id": "2819c223-7f76-453a-919d-413861904646", 

     "urn:scim:schemas:extension:customattrs:2.0:User": { 
      "USERFIRSTNAME": "fname", 
      "USERLASTNAME": "lname", 
     "USERTELEPHONENUMBER": "1231231234 
    } 
    } 

2)我們可以定義一個新的資源本身並定義一個新的核心架構。

這些選項中哪一個會更清潔?

+0

我知道這篇文章已經發布了很久以前,但是我在爲我目前的任務進行一些SCIM研究的時候跨過了它。 爲什麼你不創建一個擴展,將你的屬性映射到標準映射? –

回答

0

如果您不打算使用核心模式,爲什麼要使用SCIM?

SCIM強烈建議擁有多個屬性來表示相同的事物。

我建議你創建一個你的屬性和SCIM核心(和企業擴展)屬性之間的映射。如果有任何內容不映射到這兩個模式,則應該創建一個擴展。

0

我認爲您需要的是scim核心模式屬性與您現有的系統屬性之間的映射。正如您所說的scim核心模式和您現有的系統屬性共享相同的含義,您不應該在擴展中重新定義這些屬性。這強烈地受到SCIM規範氣餒。(https://tools.ietf.org/html/rfc7643#section-3.3

架構擴展應該避免重新定義在 本說明書中定義的任何屬性和應該遵循本 規範中定義的規範。

但是,如果您在現有系統中具有其他屬性,則可以在擴展中定義它們。

如果您有像WSO2 Charon(https://docs.wso2.com/display/IS450/Implementing+SCIM+with+Charon)這樣的分離式scim實現,我建議您在scim實現層下面有單獨的圖層,以在屬性用於任何業務邏輯之前對屬性進行必要的映射。但這基本上取決於您的實施。