SCIM 全称 System for Cross-domain Identity Management,主要用于多租户的云应用身份管理。

概览

SCIM 2.0建立在一个对象模型上,所有SCIM对象都继承Resource,它有id,externalId和meta属性,RFC7643定义了扩展公共属性的User,Group和EnterpriseUser。

 

  1. {
  2. "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
  3. "id":"2819c223-7f76-453a-919d-413861904646",
  4. "externalId":"bjensen",
  5. "meta":{
  6. "resourceType": "User",
  7. "created":"2011-08-01T18:29:49.793Z",
  8. "lastModified":"2011-08-01T18:29:49.793Z",
  9. "location":"https://example.com/v2/Users/2819c223...",
  10. "version":"W\/\"f250dd84f0671c3\""
  11. },
  12. "name":{
  13. "formatted": "Ms. Barbara J Jensen, III",
  14. "familyName": "Jensen",
  15. "givenName": "Barbara",
  16. "middleName": "Jane",
  17. "honorificPrefix": "Ms.",
  18. "honorificSuffix": "III"
  19. },
  20. "userName":"bjensen",
  21. "phoneNumbers":[
  22. {
  23. "value":"555-555-8377",
  24. "type":"work"
  25. }
  26. ],
  27. "emails":[
  28. {
  29. "value":"bjensen@example.com",
  30. "type":"work",
  31. "primary": true
  32. }
  33. ]
  34. }

  

上述用户属性并没有全部列出来,不过从这个示例中可以发现,资源的属性包括

 1、简单属性,如userName,只是一个单一的值;

 2、复杂属性,如name, 它的内部还有多个子属性;

3、多值属性,如phoneNumbers,一个User资源包含多个phoneNumber

 

对资源的操作,SCIM提供了一套REST API,包含丰富但简单的操作集,支持从修改特定用户的特定属性到进行批量更新的所有内容:

  • 创建(create): POST https://example.com/{v}/{resource}
  • 读取  (read): GET https://example.com/{v}/{resource}/{id}
  • 替换  (replace): PUT https://example.com/{v}/{resource}/{id}
  • 删除  (delete):DELETE https://example.com/{v}/{resource}/{id}
  • 更新  (update): PATCH https://example.com/{v}/{resource}/{id}
  • 搜索  (search): GET https://example.com/{v}/{resource}?filter = {attribute} {op} {value}&sortBy = {attributeName}&sortOrder = {ascending | downcending}
  • 批量(bulk): POST https://example.com/{v}/Bulk

 

规范说明

  SCIM 2.0 于2015年9月IETF下发布,主要包含三个RFC文件,即:RFC7642,RFC7643和RFC7644 ;

     

 

参考网址:http://www.simplecloud.info/

 

版权声明:本文为ljgeng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/ljgeng/p/8849456.html