1

我正在努力寻找有关如何为自定义 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。

4

3 回答 3

3

此外,尽管对于专有资源的命名约定没有明确的指导方针,但我建议在您的服务提供者或客户端中将模式命名为每个提供者的配置。原因是某些实现根本不在乎,您可以做自己想做的事。但是,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可以更改以适合您的模型。

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

于 2020-04-09T14:23:27.687 回答
1

SCIM 2.0 RFC 7643 第 10 节包含有关“scim”命名空间 ID 的 IANA 注册的部分,以及用于添加架构 URI 的可选注册过程。

虽然我也没有找到任何关于这个主题的完整的最佳实践,但如果你打算让你的模式标准化和更广泛地使用,我建议使用“ urn:ietf:params:scim:schemas”,并且你能够遵循注册过程和在RFC。

否则,使用基于公司/专有名称空间似乎是合适的,例如urn:mycompany:scim:schemas:core:MyResource:1.0urn:mycompany:scim:schemas:extension:MyResource:myExtension:1.0.

于 2020-03-06T14:49:13.950 回答
1

和你一样,我没有找到任何明确表明最佳实践的资源。但是甲骨文的做法看起来很干净:

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

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

于 2019-07-23T13:00:53.603 回答