scim B. Greevenbosch Internet-Draft Huawei Technologies Intended status: Standards Track February 25, 2013 Expires: August 29, 2013 SCIM and vCard mapping draft-greevenbosch-scim-vcard-mapping-02 Abstract This document defines a mapping between Simple Cloud Identity Management (SCIM) and vCard. Greevenbosch Expires August 29, 2013 [Page 1] Internet-Draft SCIM/vCard mapping February 2013 Note Discussion and suggestions for improvement are requested, and should be sent to scim@ietf.org. Status of this Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on August 29, 2013. Copyright Notice Copyright (c) 2013 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Greevenbosch Expires August 29, 2013 [Page 2] Internet-Draft SCIM/vCard mapping February 2013 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Requirements notation . . . . . . . . . . . . . . . . . . . . 5 3. Mapping from SCIM attributes to vCard properties . . . . . . . 6 4. Mapping from vCard properties to SCIM attributes . . . . . . . 16 5. Mapping between SCIM and vCard IDs . . . . . . . . . . . . . . 23 6. Open issues . . . . . . . . . . . . . . . . . . . . . . . . . 24 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25 8. Security Considerations . . . . . . . . . . . . . . . . . . . 26 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 27 10. Normative References . . . . . . . . . . . . . . . . . . . . . 28 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 29 Greevenbosch Expires August 29, 2013 [Page 3] Internet-Draft SCIM/vCard mapping February 2013 1. Introduction The Simple Cloud Identity Management (SCIM) core schema [I-D.scim-core-schema] defines a platform neutral data and extension model for representing users of cloud services. SCIM core also defines XML and JSON serialisations of the abstract schema. This document defines a mapping between SCIM and vCard [RFC6350]. The mapping may serve several purposes: o To provide a unified conversion mechanism between SCIM and vCard. o To identify properties that are defined in vCard, but are missing in SCIM. o To identify SCIM attributes that may be useful in vCard too. Greevenbosch Expires August 29, 2013 [Page 4] Internet-Draft SCIM/vCard mapping February 2013 2. Requirements notation The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. Greevenbosch Expires August 29, 2013 [Page 5] Internet-Draft SCIM/vCard mapping February 2013 3. Mapping from SCIM attributes to vCard properties Table 1 describes a mapping from SCIM attributes to the vCard properties. In the table, the cardinality of the SCIM attribute is prefixed by an "S", whereas the cardinality of the vCard property is prefixed by a "v". The further notation has been adopted from [RFC6350] as follows: +-------------+----------------------------------------+ | 1 | Exactly one instance MUST be present. | | *1 | Exactly one instance MAY be present. | | 1* | One or more instances MUST be present. | | * | One or more instances MAY be present. | +-------------+----------------------------------------+ The reverse mapping from vCard to SCIM is defined in Section 4. The reason for having two tables is that some mappings are not invertible. +--------------------+------------------+-----------+---------------+ | SCIM attribute | vCard property | Cardinali | Notes | | | | ty | | +--------------------+------------------+-----------+---------------+ | id | UID | S1 v*1 | May need | | | | | conversion | | | | | from SCIM id | | | | | space to | | | | | vCard UID | | | | | space. Exact | | | | | conversion | | | | | TBD. | | | | | | | externalId | | S*1 | | | | | | | | meta/created | | S*1 | | | | | | | | meta/lastModified | REV | S*1 v*1 | | | | | | | | meta/location | | S*1 | No direct | | | | | vCard | | | | | equivalent. | | | | | Candidates | | | | | could be | | | | | SOURCE and | | | | | ORG-DIRECTORY | | | | | . | Greevenbosch Expires August 29, 2013 [Page 6] Internet-Draft SCIM/vCard mapping February 2013 | meta/version | | S*1 | | | | | | | | meta/attributes | | S*1 | | | | | | | | userName | | S1 | | | | | | | | name/formatted | FN | S*1 v1* | | | | | | | | name/familyName | N (family names) | S*1 v*1 | Combined with | | | | | other name | | | | | attributes in | | | | | a single N | | | | | element. | | | | | | | name/givenName | N (given names) | S*1 v*1 | Combined with | | | | | other name | | | | | attributes in | | | | | a single N | | | | | element. | | | | | | | name/middleName | N (additional | S*1 v*1 | | | | names) | | | | | | | | | name/honorificPref | N (honorific | S*1 v*1 | Combined with | | ix | prefixes) | | other name | | | | | attributes in | | | | | a single N | | | | | element. | | | | | | | name/honorificSuff | N (honorific | S*1 v*1 | Combined with | | ix | suffixes) | | other name | | | | | attributes in | | | | | a single N | | | | | element. | | | | | | | displayName | | S*1 | | | | | | | | nickName | NICKNAME | S*1 v* | | | | | | | | profileUrl | URL | S*1 v* | Multiple | | | | | fields in | | | | | SCIM better? | | | | | | | employeeNumber | | S*1 | | | | | | | | title | TITLE | S*1 v* | | | | | | | Greevenbosch Expires August 29, 2013 [Page 7] Internet-Draft SCIM/vCard mapping February 2013 | userType | ROLE | S*1 v* | Consider | | | | | distinction | | | | | with the | | | | | "roles" | | | | | attribute. | | | | | | | preferredLanguage | LANG | S*1 v* | Language tag | | | | | according to | | | | | [RFC5646]. | | | | | | | locale | | S*1 | | | | | | | | timezone | TZ | S*1 v* | | | | | | | | active | | S*1 | | | | | | | | password | | S*1 | | | | | | | | costCenter | | S*1 | | | | | | | | organization | ORG | S*1 v* | Use the | | | | | hierarchical | | | | | order defined | | | | | in vCard. | | | | | | | division | ORG | S*1 v* | Use the | | | | | hierarchical | | | | | order defined | | | | | in vCard. | | | | | | | department | ORG | S*1 v* | Use the | | | | | hierarchical | | | | | order defined | | | | | in vCard. | | | | | | Greevenbosch Expires August 29, 2013 [Page 8] Internet-Draft SCIM/vCard mapping February 2013 | manager/managerId | | S*1 | SCIM specific | | | | | ID, related | | | | | to "id" | | | | | attribute. | | | | | The vCard | | | | | RELATED | | | | | property | | | | | could be | | | | | used, but a | | | | | TYPE | | | | | "manager" may | | | | | need | | | | | definition. | | | | | In SCIM, | | | | | "managerID" | | | | | is mandatory | | | | | if "manager" | | | | | is included. | | | | | | | manager/displayNam | | S*1 | This field is | | e | | | optional in | | | | | SCIM, also | | | | | when | | | | | "manager" is | | | | | included. | | | | | | | email | EMAIL | S* v* | In SCIM, | | | | | multiple | | | | | "email" | | | | | attributes | | | | | can be | | | | | aggregated in | | | | | an "emails" | | | | | attribute. | | | | | | | phoneNumber | TEL | S* v* | In SCIM, | | (type="work") | (TYPE="voice,wor | | multiple | | | k") | | "phoneNumber" | | | | | attributes | | | | | can be | | | | | aggregated in | | | | | an | | | | | "phoneNumbers | | | | | "attribute. | | | | | | Greevenbosch Expires August 29, 2013 [Page 9] Internet-Draft SCIM/vCard mapping February 2013 | phoneNumber | TEL | S* v* | In SCIM, | | (type="home") | (TYPE="voice,hom | | multiple | | | e") | | "phoneNumber" | | | | | attributes | | | | | can be | | | | | aggregated in | | | | | an | | | | | "phoneNumbers | | | | | "attribute. | | | | | | | phoneNumber | TEL | S* v* | In SCIM, | | (type="mobile") | (TYPE="cell") | | multiple | | | | | "phoneNumber" | | | | | attributes | | | | | can be | | | | | aggregated in | | | | | an | | | | | "phoneNumbers | | | | | "attribute. | | | | | | | phoneNumber | TEL (TYPE="fax") | S* v* | In SCIM, | | (type="fax") | | | multiple | | | | | "phoneNumber" | | | | | attributes | | | | | can be | | | | | aggregated in | | | | | an | | | | | "phoneNumbers | | | | | "attribute. | | | | | | | phoneNumber | TEL | S* v* | | | (type="pager") | (TYPE="pager") | | | | | | | | | phoneNumber | TEL (no TYPE) | S* v* | In SCIM, | | (type="other") | | | multiple | | | | | "phoneNumber" | | | | | attributes | | | | | can be | | | | | aggregated in | | | | | an | | | | | "phoneNumbers | | | | | "attribute. | | | | | | Greevenbosch Expires August 29, 2013 [Page 10] Internet-Draft SCIM/vCard mapping February 2013 | phoneNumber (no | TEL (no TYPE) | S* v* | In SCIM, | | type) | | | multiple | | | | | "phoneNumber" | | | | | attributes | | | | | can be | | | | | aggregated in | | | | | an | | | | | "phoneNumbers | | | | | "attribute. | | | | | | | im | IMPP | S* v* | In SCIM, | | | | | multiple "im" | | | | | attributes | | | | | can be | | | | | aggregated in | | | | | an "ims" | | | | | attribute. | | | | | | | photo | PHOTO | S* v* | URL of a web | | | | | location | | | | | where the | | | | | photo can be | | | | | retrieved. | | | | | In SCIM, | | | | | multiple | | | | | "photo" | | | | | attributes | | | | | can be | | | | | aggregated in | | | | | an "photos" | | | | | attribute. | | | | | | | address | ADR | S* v* | See [RFC6350] | | | | | for the | | | | | internal | | | | | coding of the | | | | | ADR property. | | | | | In SCIM, | | | | | multiple | | | | | "address" | | | | | attributes | | | | | can be | | | | | aggregated in | | | | | an | | | | | "addresses" | | | | | attribute. | | | | | | Greevenbosch Expires August 29, 2013 [Page 11] Internet-Draft SCIM/vCard mapping February 2013 | address/formatted | ADR (LABEL) | S* v* | In SCIM, | | | | | multiple | | | | | "address" | | | | | attributes | | | | | can be | | | | | aggregated in | | | | | an | | | | | "addresses" | | | | | attribute. | | | | | | | address/streetAddr | ADR (street | S* v* | Combined with | | ess | address) | | other address | | | | | attributes | | | | | into a single | | | | | ADR element. | | | | | In SCIM, | | | | | multiple | | | | | "address" | | | | | attributes | | | | | can be | | | | | aggregated in | | | | | an | | | | | "addresses" | | | | | attribute. | | | | | | | address/locality | ADR (locality) | S* v* | Combined with | | | | | other address | | | | | attributes | | | | | into a single | | | | | ADR element. | | | | | In SCIM, | | | | | multiple | | | | | "address" | | | | | attributes | | | | | can be | | | | | aggregated in | | | | | an | | | | | "addresses" | | | | | attribute. | | | | | | Greevenbosch Expires August 29, 2013 [Page 12] Internet-Draft SCIM/vCard mapping February 2013 | address/region | ADR (region) | S* v* | Combined with | | | | | other address | | | | | attributes | | | | | into a single | | | | | ADR element. | | | | | In SCIM, | | | | | multiple | | | | | "address" | | | | | attributes | | | | | can be | | | | | aggregated in | | | | | an | | | | | "addresses" | | | | | attribute. | | | | | | | address/postalCode | ADR (postal | S* v* | Combined with | | | code) | | other address | | | | | attributes | | | | | into a single | | | | | ADR element. | | | | | In SCIM, | | | | | multiple | | | | | "address" | | | | | attributes | | | | | can be | | | | | aggregated in | | | | | an | | | | | "addresses" | | | | | attribute. | | | | | | | address/country | ADR (country) | S* v* | Combined with | | | | | other address | | | | | attributes | | | | | into a single | | | | | ADR element. | | | | | In SCIM, | | | | | multiple | | | | | "address" | | | | | attributes | | | | | can be | | | | | aggregated in | | | | | an | | | | | "addresses" | | | | | attribute. | | | | | | Greevenbosch Expires August 29, 2013 [Page 13] Internet-Draft SCIM/vCard mapping February 2013 | group/displayName | FN | S* v1* | vCard KIND | | | | | property MUST | | | | | equal | | | | | "group". In | | | | | SCIM, | | | | | multiple | | | | | "group" | | | | | attributes | | | | | can be | | | | | aggregated in | | | | | an "groups" | | | | | attribute. | | | | | In Scim, | | | | | "displayName" | | | | | is required | | | | | when "group" | | | | | is included. | | | | | | | group/members | multiple MEMBER | S* v* | Multiple SCIM | | | properties | | specific IDs, | | | | | related to | | | | | "id" | | | | | attribute. | | | | | Conversion | | | | | between SCIM | | | | | id and vCard | | | | | UID TBD. In | | | | | SCIM, | | | | | multiple | | | | | "group" | | | | | attributes | | | | | can be | | | | | aggregated in | | | | | an "groups" | | | | | attribute. | | | | | Service | | | | | Providers may | | | | | require | | | | | Consumers to | | | | | provide a | | | | | non-empty | | | | | members | | | | | value. | | | | | | | emails | Multiple EMAIL | S* v* | See "email" | | | fields | | for mapping | | | | | per property. | | | | | | Greevenbosch Expires August 29, 2013 [Page 14] Internet-Draft SCIM/vCard mapping February 2013 | phoneNumbers | Multiple TEL | S* v* | See | | | properties | | "phoneNumber" | | | | | for mapping | | | | | per property. | | | | | | | ims | Multiple IMPP | S* v* | See "im" for | | | properties | | mapping per | | | | | property. | | | | | | | photos | Multiple PHOTO | S* v* | See "photo" | | | properties | | for mapping | | | | | per property. | | | | | | | addresses/* | Multiple ADR | S* v* | See | | | fields | | "address/*" | | | | | for mapping | | | | | per address. | | | | | | | groups | | S* | Related to | | | | | "group" | | | | | attribute. | | | | | | | entitlements | | S* | Hard to map | | | | | as it is | | | | | proprietary | | | | | by nature. | | | | | | | roles | Multiple ROLE | S* v* | Consider | | | properties | | distinction | | | | | with the | | | | | "userType" | | | | | attribute. | | | | | | | x509Certificates | KEY | S* v* | Care is | | | | | required: | | | | | keys may not | | | | | have the same | | | | | usage. | +--------------------+------------------+-----------+---------------+ Table 1: SCIM to vCard mapping Greevenbosch Expires August 29, 2013 [Page 15] Internet-Draft SCIM/vCard mapping February 2013 4. Mapping from vCard properties to SCIM attributes Table 2 describes a mapping from vCard properties to SCIM attributes. For the cardinalities, the same notation from Section 3 is used. +-----------------+---------------------+------------+--------------+ | vCard property | SCIM attribute | Cardinalit | Notes | | | | yin | | | | | vCard/SCI | | | | | M | | +-----------------+---------------------+------------+--------------+ | SOURCE | | v* | Similar to | | | | | SCIM | | | | | meta/locatio | | | | | n. | | | | | | | KIND | | v*1 | In vCard can | | | | | have the | | | | | values | | | | | "individual" | | | | | ,"group", | | | | | "org" and | | | | | "location". | | | | | The value | | | | | "applicatio | | | | | n"was added | | | | | by[RFC6473]. | | | | | | | XML | | v* | Purpose: to | | | | | include | | | | | extended | | | | | XML-encoded | | | | | vCard data | | | | | in a plain | | | | | vCard. | | | | | | | FN | name/formatted | v1* S*1 | | | | | | | | N (family | name/familyName | v*1 S*1 | | | names) | | | | | | | | | | N (given names) | name/givenName | v*1 S*1 | | | | | | | | N (additional | name/middleName | v*1 S*1 | | | names) | | | | | | | | | | N (honorific | name/honorificPrefi | v*1 S*1 | | | prefixes) | x | | | Greevenbosch Expires August 29, 2013 [Page 16] Internet-Draft SCIM/vCard mapping February 2013 | N (honorific | name/honorificSuffi | v*1 S*1 | | | suffixes) | x | | | | | | | | | NICKNAME | nickName | v* S*1 | | | | | | | | PHOTO | photo | v* S* | URL of a web | | | | | location | | | | | where the | | | | | photo can be | | | | | retrieved. | | | | | | | BDAY | | v*1 | | | | | | | | ANNIVERSARY | | v*1 | | | | | | | | GENDER | | v*1 | Can have the | | | | | values | | | | | "M"ale, | | | | | "F"emale, | | | | | "O"ther, | | | | | "N"one or | | | | | not | | | | | applicable | | | | | or | | | | | "U"nknown. | | | | | | | ADR (LABEL) | address/formatted | v* S* | | | | | | | | ADR (post | address/streetAddre | v* S* | | | office box) | ss | | | | | | | | | ADR (extended | | v* | | | address) | | | | | | | | | | ADR (street | address/streetAddre | v* S* | | | address) | ss | | | | | | | | | ADR (locality) | address/locality | v* S* | | | | | | | | ADR (region) | address/region | v* S* | | | | | | | | ADR (postal | address/postalCode | v* S* | | | code) | | | | | | | | | | ADR (country) | address/country | v* S* | | | | | | | Greevenbosch Expires August 29, 2013 [Page 17] Internet-Draft SCIM/vCard mapping February 2013 | TEL | phoneNumber, | v* S* | Multiple | | (TYPE="text") | type="other" | | through SCIM | | | | | "phoneNumber | | | | | s" attribute | | | | | . | | | | | | | TEL | phoneNumber, | v* S* | The vCard | | (TYPE="voice") | type="work"/type="h | | TYPE can | | | ome" | | include | | | | | "work" or | | | | | "home", in | | | | | which case | | | | | mapping is | | | | | clear. | | | | | Multiple | | | | | through SCIM | | | | | "phoneNumber | | | | | s" attribute | | | | | . | | | | | | | TEL | phoneNumber, | v* S* | Multiple | | (TYPE="fax") | type="fax" | | through SCIM | | | | | "phoneNumber | | | | | s" attribute | | | | | . | | | | | | | TEL | phoneNumber, | v* S* | Multiple | | (TYPE="cell") | type="mobile" | | through SCIM | | | | | "phoneNumber | | | | | s" attribute | | | | | . | | | | | | | TEL | phoneNumber, | v* S* | Multiple | | (TYPE="video") | type="other" | | through SCIM | | | | | "phoneNumber | | | | | s" attribute | | | | | . | | | | | | | TEL | phoneNumber, | v* S* | Multiple | | (TYPE="pager") | type="pager" | | through SCIM | | | | | "phoneNumber | | | | | s" attribute | | | | | . | | | | | | Greevenbosch Expires August 29, 2013 [Page 18] Internet-Draft SCIM/vCard mapping February 2013 | TEL | phoneNumber, | v* S* | Multiple | | (TYPE="textphon | type="other" | | through SCIM | | e") | | | "phoneNumber | | | | | s" attribute | | | | | . | | | | | | | TEL (no TYPE) | phoneNumber (no | v* S* | Multiple | | | type) | | through SCIM | | | | | "phoneNumber | | | | | s" attribute | | | | | . | | | | | | | EMAIL | email | v* S* | Can have | | | | | TYPE="work", | | | | | TYPE="home". | | | | | Multiple | | | | | through SCIM | | | | | "emails" | | | | | attribute. | | | | | | | IMPP | im | v* S* | Multiple | | | | | through SCIM | | | | | "ims" | | | | | attribute. | | | | | | | LANG | preferredLanguage | v* S*1 | | | | | | | | TZ | timezone | v* S*1 | | | | | | | | GEO | | v* | GPS | | | | | coordinates | | | | | | | TITLE | title | v* S*1 | | | | | | | | ROLE | userType | v* S*1 | | | | | | | | LOGO | | v* | | | | | | | | ORG | organization | v* S*1 | | | | | | | | MEMBER | | v* | Contains a | | | | | vCard ID of | | | | | a member of | | | | | this group. | | | | | The vCard | | | | | MUST have | | | | | KIND="group" | | | | | . | Greevenbosch Expires August 29, 2013 [Page 19] Internet-Draft SCIM/vCard mapping February 2013 | RELATED | | v* | Contains a | | | | | vCard ID of | | | | | another | | | | | related | | | | | vCard. Can | | | | | have many | | | | | TYPE values, | | | | | such as | | | | | "friend", | | | | | "neighbor" | | | | | and | | | | | "spouse". | | | | | | | CATEGORIES | | v* | Contains not | | | | | necessarily | | | | | unified | | | | | tags. | | | | | | | NOTE | | v* | Any text. | | | | | | | PRODID | | v*1 | ID for | | | | | producer of | | | | | vCard. | | | | | | | REV | | v*1 | Purpose: to | | | | | specify | | | | | revision | | | | | information | | | | | about the | | | | | current | | | | | vCard. | | | | | | | SOUND | | v* | | | | | | | | UID | externalId | v*1 S*1 | Conversion | | | | | scheme | | | | | between | | | | | vCard and | | | | | SCIM IDs is | | | | | needed. | | | | | | | CLIENTPIDMAP | | v* | Link between | | | | | local PID | | | | | and global | | | | | URI. | | | | | | | URL | profileUrl | v* S*1 | | | | | | | Greevenbosch Expires August 29, 2013 [Page 20] Internet-Draft SCIM/vCard mapping February 2013 | VERSION | | v1 | Version of | | | | | vCard | | | | | specificatio | | | | | n. | | | | | | | KEY | x509Certificates? | v* S* | Care is | | | | | required: | | | | | keys may not | | | | | have the | | | | | same usage. | | | | | | | FBURL | | v* | Purpose: to | | | | | specify the | | | | | URI for the | | | | | busy time | | | | | associated | | | | | with the | | | | | object that | | | | | the vCard | | | | | represents. | | | | | | | CALADRURI | | v* | Purpose: to | | | | | specify the | | | | | calendar | | | | | user address | | | | | to which a | | | | | scheduling | | | | | request | | | | | should be | | | | | sent for the | | | | | object | | | | | represented | | | | | by the | | | | | vCard. | | | | | | | CALURI | | v* | Purpose: to | | | | | specify the | | | | | URI for a | | | | | calendar | | | | | associated | | | | | with the | | | | | object | | | | | represented | | | | | by the | | | | | vCard. | | | | | | | BIRTHPLACE | | v*1 | Defined in | | | | | [RFC6474]. | Greevenbosch Expires August 29, 2013 [Page 21] Internet-Draft SCIM/vCard mapping February 2013 | DEATHDATE | | v*1 | Defined in | | | | | [RFC6474]. | | | | | | | DEATHPLACE | | v*1 | Defined in | | | | | [RFC6474]. | | | | | | | EXPERTISE | | v* | Defined in | | | | | [RFC6715]. | | | | | | | HOBBY | | v* | Defined in | | | | | [RFC6715]. | | | | | | | INTEREST | | v* | Defined in | | | | | [RFC6715]. | | | | | | | ORG-DIRECTORY | | v* | Defined in | | | | | [RFC6715]. | +-----------------+---------------------+------------+--------------+ Table 2: vCard to SCIM mapping Greevenbosch Expires August 29, 2013 [Page 22] Internet-Draft SCIM/vCard mapping February 2013 5. Mapping between SCIM and vCard IDs A SCIM specific prefix could be used to indicate the conversion from SCIM IDs to vCard UIDs. A "Service Provider" specific part would need to be included in the vCard UID, as the SCIM ID is unique within the Service Provider's space only. The following format is proposed: UID:scim:[serviceProviderID]:123456789 Conversion from vCard to SCIM may be done similarly, i.e. by adding a prefix to the vCard UID. The SCIM schema document mentions for the SCIM ID: "This identifier MUST be unique across the Service Provider's entire set of Resources", so as long as the vCard UID indeed is globally unique, and the service provider uses the prefix for vCard acquired resources only, the rule should hold. Notice that the above mechanism allows looping. For example, converting SCIM -> vCard -> SCIM would lead to another SCIM ID in the second representation as in the first. This indeed reflects the possible loss of information in the conversion process. Of course this kind of tandem conversion should be avoided as much as possible. Because of the format of the vCard UID after conversion from SCIM, the SCIM service provider can detect above mentioned tandem coding, as well as the original vCard ID. The actions the service provider may take upon such detection may for example include using the original SCIM data instead, or using smarter mapping by analysing the original and the new import. This kind of mechanisms is left out of scope of this document. Greevenbosch Expires August 29, 2013 [Page 23] Internet-Draft SCIM/vCard mapping February 2013 6. Open issues The following is a list of open issues: o Text in [I-D.scim-core-schema] defines only plural "emails", "phoneNumbers", "ims", "photos", "addresses", "groups", "entitlements" and "roles" elements. However, the XML examples show that these plural element contain the associated singular elements. This is not the case for the JSON representation. o It is unclear on whether the SCIM ID can include alphanumeric characters or is restricted to numeric characters only. The examples in [I-D.scim-core-schema] seem to indicate that they consist of hexadecimal numbers, with dashes at appropriate places. If this is the case, then during the conversion from vCard UIDs to SCIM IDs would include conversion of alphanumeric characters to hexadecimal values. o Various countries have different naming conventions for people. For example: * In the Netherlands people can have multiple first names. It is unclear how to distribute these names among the fields "name/ givenName" and "name/middleName", especially when the number of first names is greater than two. To complicate matters, people can also have a "calling name", which is the name people actually use to speaking to the person. This may be mapped to "nickname". * In Spain, one usually has two family names, one adopted from the father's side, and the other adopted from the mother's side. * In China, many people adopt an "English name" in addition to their traditional Chinese name. * In Russia, people have a first name, father's name and family name. It is hard to cater for all naming conventions, hence the "name/ formatted" field is very useful. However, it may be good to add some more flexibility and extensibility in the SCIM scheme for names, e.g. allowing multiple "name/middleName" or "name/ familyName" fields, as well as a posibility to add extra fields such as "name/englishName". Greevenbosch Expires August 29, 2013 [Page 24] Internet-Draft SCIM/vCard mapping February 2013 7. IANA Considerations A "manager" TYPE for the RELATED vCard property may need registration. Greevenbosch Expires August 29, 2013 [Page 25] Internet-Draft SCIM/vCard mapping February 2013 8. Security Considerations The mapping between vCard and SCIM may be useful for easily transferring data for one system towards another. However, it also has privacy implications. Therefore, it is important that user consensus is acquired where applicable. For this document, some decisions were made concerning mapping between attributes and properties with similar, but not equal, semantics. This was done in a best effort manner. However one should realise that during the mapping process some accuracy from the original data may be lost. Tandem conversion between SCIM and vCard SHOULD be avoided as much as possible. Greevenbosch Expires August 29, 2013 [Page 26] Internet-Draft SCIM/vCard mapping February 2013 9. Acknowledgements Thanks to Kepeng Li for providing feedback and suggestions. Thanks to Paul Madsen and Phil Hunt for providing similar mapping drafts [draft-scim-saml2-binding] and [I-D.hunt-scim-directory], which have served as inspiration for this document. Michael Angstadt and Dany Cauchie provided valuable review comments. Greevenbosch Expires August 29, 2013 [Page 27] Internet-Draft SCIM/vCard mapping February 2013 10. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC5646] Phillips, A. and M. Davis, "Tags for Identifying Languages", BCP 47, RFC 5646, September 2009. [RFC6350] Perreault, S., "vCard Format Specification", RFC 6350, August 2011. [RFC6473] Saint-Andre, P., "vCard KIND:application", RFC 6473, December 2011. [RFC6474] Li, K. and B. Leiba, "vCard Format Extensions: Place of Birth, Place and Date of Death", RFC 6474, December 2011. [RFC6715] Cauchie, D., Leiba, B., and K. Li, "vCard Format Extensions: Representing vCard Extensions Defined by the Open Mobile Alliance (OMA) Converged Address Book (CAB) Group", RFC 6715, August 2012. [I-D.scim-core-schema] Mortimore, C., Harding, P., Madsen, P., and T. Drake, "System for Cross-Domain Identity Management: Core Schema", draft-ietf-scim-core-schema-00 (work in progress), August 2012. [I-D.hunt-scim-directory] Hunt, P., "SCIM Directory Services", draft-hunt-scim-directory-00 (work in progress), September 2012. [draft-scim-saml2-binding] Madsen, P., "SAML 2.0 Binding for SCIM", draft-scim-saml2-binding-02 (work in progress), April 2011. Greevenbosch Expires August 29, 2013 [Page 28] Internet-Draft SCIM/vCard mapping February 2013 Author's Address Bert Greevenbosch Huawei Technologies Co., Ltd. Huawei Industrial Base F1-8 Bantian, Longgang District Shenzhen 518129 P.R. China Phone: +86-755-28979133 Email: bert.greevenbosch@huawei.com Greevenbosch Expires August 29, 2013 [Page 29]