自定义SCIM模式应使用什么命名约定?

时间:2019-07-17 15:30:31

标签: scim scim2

我正在努力寻找有关如何为自定义SCIM资源命名模式ID的文档或建议。

{
  "id": "urn:ietf:params:scim:schemas:mycompany:2.0:MyResource",
  "name": "MyResource",
  "description": "MyResource description",
  "attributes": [
    {
      "name": "name",
      "type": "string",
      "multiValued": false,
      "description": "A human-readable name for MyResource. REQUIRED.",
      "required": true,
      "caseExact": true ,
      "mutability": "readWrite",
      "returned": "default",
      "uniqueness": "none"
    }
  ],
  "meta": {
    "resourceType": "Schema",
    "location": "/v2/Schemas/urn:ietf:params:scim:schemas:mycompany:2.0:MyResource"
  }
}

它应该使用与内置模式相同的前缀吗? urn:ietf:params:scim:schemas:

还是我的自定义内容? urn:mycompany:scim:schemas:MyResource

我正在使用SCIM2。

3 个答案:

答案 0 :(得分:1)

像您一样,我没有找到任何能清楚表明最佳实践的资源。但是the way Oracle does it看起来很干净:

对于新资源:urn:ietf:params:scim:schemas:mycompany:core:2.0:NewResource

对于属性扩展,即在用户上:urn:ietf:params:scim:schemas:extension:mycompany:2.0:User

答案 1 :(得分:1)

SCIM 2.0 RFC 7643 Section 10包含有关“ scim”名称空间ID的IANA注册的部分,以及用于添加模式URI的可选注册过程。

尽管我也没有找到有关此主题的完整的最佳实践,但是如果您打算对模式进行标准化和更广泛的使用,我建议使用“ mybeans-definition.xml : <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="my" class="com.my.MyBean1" ></bean> </beans> ”,并且您可以遵循RFC中概述的注册过程和要求。

否则,利用基于公司/专有名称空间似乎是合适的,例如urn:ietf:params:scim:schemasurn:mycompany:scim:schemas:core:MyResource:1.0

答案 2 :(得分:1)

此外,尽管对于专有资源的命名约定没有明确的指导原则,但我还是建议您在服务提供商或客户端中按供应商的配置来命名架构。 原因是某些实现实际上并不在乎,您可以执行所需的操作。但是,Azure AD的SCIM客户端将不允许您创建到不遵循以下格式之一的自定义属性的映射:

urn:ietf:params:scim:schemas:extension:2.0:CustomExtensionName:CustomAttribute

urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:User.CustomAttributeName:value

可以更改CustomExtensionNameCustomAttributeCustomAttributeName:value的位置以适合您的模型。

您不想实现某人对标准的虚构想法,以发现它与另一实现冲突。因此,在合理的范围内使其尽可能动态。