我正在努力寻找有关如何为自定义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。
答案 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:schemas
或urn: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
可以更改CustomExtensionName
,CustomAttribute
和CustomAttributeName:value
的位置以适合您的模型。
您不想实现某人对标准的虚构想法,以发现它与另一实现冲突。因此,在合理的范围内使其尽可能动态。