-
Notifications
You must be signed in to change notification settings - Fork 2
/
rfc8409.xml
651 lines (543 loc) · 26 KB
/
rfc8409.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
<?xml version="1.0" encoding="US-ASCII"?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no" ?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>
<rfc number="8409" ipr="trust200902" submissionType="independent" category="info">
<front>
<title abbrev="Entity Category">
The Entity Category Security Assertion Markup Language (SAML) Attribute Types
</title>
<author initials="I.A." fullname="Ian A. Young" surname="Young" role="editor">
<organization>Independent</organization>
<address>
<email>[email protected]</email>
</address>
</author>
<author fullname="Leif Johansson" initials="L." surname="Johansson">
<organization>SUNET</organization>
<address>
<email>[email protected]</email>
</address>
</author>
<author fullname="Scott Cantor" initials="S." surname="Cantor">
<organization>Shibboleth Consortium</organization>
<address>
<email>[email protected]</email>
</address>
</author>
<date month="August" year="2018"/>
<keyword>REFEDS</keyword>
<abstract>
<t>
This document describes two SAML entity attributes: one that can be
used to assign category membership semantics to an entity and another
for use in claiming interoperation with or support for
entities in such categories.
</t>
<t>
This document is a product of the working group process of the
Research and Education FEDerations (REFEDS) group.
</t>
</abstract>
</front>
<middle>
<section title="Introduction" anchor="introduction">
<t>
This document describes a SAML attribute called the
"entity category attribute".
Values of this attribute represent entity types
or categories. When used with the
<xref target="SAML2MetadataAttr">SAML V2.0 Metadata Extension for Entity Attributes</xref>,
each such entity category attribute value represents a claim that the entity thus labeled
meets the requirements of, and is asserted to be a member of, the indicated category.
</t>
<t>
These category membership claims MAY be used by a relying party to provision policy
for release of attributes from an identity provider, to influence user interface decisions
such as those related to identity provider discovery, or for any other purpose.
In general, the intended uses of any claim of membership in a given category will
depend on the details of the category's definition and will often be included as
part of that definition.
</t>
<t>
Entity category attribute values are URIs. Therefore, this document does not specify a
controlled vocabulary for assigning such values; they may be defined
by any appropriate authority without any requirement for central registration. It is anticipated that
other specifications may provide management and discovery mechanisms for entity category
attribute values.
</t>
<t>
This document also describes a SAML attribute called the
"entity category support attribute". This attribute
contains URI values that represent claims that an entity supports and/or interoperates with
entities in a given category or categories. These values, defined in conjunction with
specific entity category attribute values, provide entities in a category with the means to identify
peer entities that wish to interact with them in a fashion described by the category specification.
</t>
<t>
This document does not specify any values for either the entity category attribute
or the entity category support attribute.
</t>
<section title="REFEDS Document Process">
<t>
The Research and Education FEDerations <xref target="REFEDS"/> group
is the voice that articulates the mutual needs of research and education
identity federations worldwide. It aims to represent the requirements of
research and education in the ever-growing space of access and identity
management.
</t>
<t>
From time to time, REFEDS
will publish a document in the RFC Series. Such
documents will be published as part of the Independent Submission
stream <xref target="RFC4844"/>; however, the REFEDS Working Group
sign-off process will
have been followed for these documents, as described in
the <xref target="REFEDS.agreement">REFEDS Participant's Agreement</xref>.
</t>
<t>
This document is a product of the REFEDS Working Group process.
</t>
</section>
</section>
<section title="Notation and Conventions">
<t>
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.
</t>
<t>
The notation "@example" is used as a shorthand for an XML attribute
with attribute name "example".
</t>
</section>
<section title="Entity Category Attribute">
<section anchor="cat-syntax" title="Syntax">
<t>
Entity category attribute values MUST be URIs. Such values are
also referred to as "category URIs" in this document.
</t>
<t>
It is RECOMMENDED that http:-scheme or https:-scheme URIs are used;
it is further RECOMMENDED that a category URI
resolves to a human-readable document defining the category.
</t>
<t>
Authorities defining entity categories MUST produce a specification of the entity
category and SHOULD make arrangement for the category URI to resolve to the
specification in human-readable form.
</t>
<t>
Authorities defining entity categories MAY use versioning of category URIs where
appropriate; if versioning is used, each version of the specification of the entity category
SHOULD clearly indicate the latest version of the category URI (and hence of the
specification).
The specification SHOULD include a description of
how the authority defining the entity category implements governance
for the specification if the specification is updated.
</t>
<t>
When used in SAML metadata or protocol elements, the entity category attribute MUST
be encoded as a SAML 2.0 Attribute element with @NameFormat urn:oasis:names:tc:SAML:2.0:attrname-format:uri
and @Name http://macedir.org/entity-category.
</t>
<t>
A SAML entity is associated with one or more categories by including the
Attribute element described here in the entity's metadata through
use of the metadata extension defined in
<xref target="SAML2MetadataAttr"/>. In this extension, the
Attribute element is contained within an mdattr:EntityAttributes
element directly contained within an md:Extensions element directly
contained within the entity's md:EntityDescriptor.
</t>
<t>
The meaning of the entity category attribute is not defined by this specification if it
appears anywhere else within a metadata instance or within any other XML document.
</t>
<t>
If the entity category attribute appears more than once in the
metadata for an entity, relying parties SHOULD interpret the combined
set of associated attribute values as if they all appeared together
within a single entity category attribute.
</t>
</section>
<section anchor="cat-semantics" title="Semantics">
<t>
The presence of the entity category attribute within an entity's entity attributes
represents a series of claims (one for each attribute value) that the entity is
a member of each named category. The precise semantics of such a claim depend
on the definition of the category itself.
</t>
<t>
An entity may be claimed to be a member of more than one category. In this case, the entity
is claimed to meet the requirements of each category independently unless otherwise
specified by the category definitions themselves.
</t>
<t>
This document intentionally does not define "category", in order to
leave the concept as general as possible.
However, to be useful,
category definitions SHOULD include the following as appropriate:
<list style="symbols">
<t>
A definition of the authorities who may validly assert
membership in the category. While membership in some categories may be
self-asserted informally by an entity's owner, others may need to be
validated by third parties such as the entity's home federation or other
registrar.
</t>
<t>
A set of criteria by which an entity's membership in the category can be
objectively assessed.
</t>
<t>
A definition of the processes by which valid authorities
may determine that an entity meets the category's membership criteria.
</t>
<t>
A description of the anticipated uses for category membership by relying parties.
</t>
<t>
A statement indicating the applicability or otherwise of membership
of the entity category to different SAML role descriptors and any
protocol support restrictions that may be relevant.
</t>
</list>
</t>
<t>
Entity categories SHOULD NOT be used to indicate the certification
status of an entity regarding its conformance to the requirements
of an identity assurance framework.
The SAML extension defined in
<xref target="SAML2IDAssuranceProfile"/> SHOULD be used
for this purpose.
</t>
<t>
If significant changes are made to a category definition, the new version of
the category SHOULD be represented by a different category URI
so that the old and new versions can be distinguished by a relying party. It
is for this reason that authorities defining entity categories MAY
employ some form of versioning for category URIs. When versioning is
used, each version of the entity category MUST be treated as a separate URI.
</t>
<t>
No ordering relation is defined for entity category attribute values.
Entity category attribute values MUST be treated as opaque strings
for the purpose of comparison. In particular, if the specification defining the
entity category relies on versioning of the category URI, a relying
party MUST NOT assume any particular ordering between different versions of
the category URI. Any order between versions MUST be spelled out in the
specification.
</t>
</section>
<section title="Entity Category Example">
<figure>
<artwork><![CDATA[<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
entityID="https://service.example.com/entity">
<md:Extensions>
<mdattr:EntityAttributes
xmlns:mdattr="urn:oasis:names:tc:SAML:metadata:attribute">
<Attribute xmlns="urn:oasis:names:tc:SAML:2.0:assertion"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
Name="http://macedir.org/entity-category">
<AttributeValue
>http://example.org/category/dog</AttributeValue>
<AttributeValue>urn:oid:1.3.6.1.4.1.21829</AttributeValue>
</Attribute>
</mdattr:EntityAttributes>
</md:Extensions>
...
</md:EntityDescriptor>]]></artwork>
</figure>
</section>
</section>
<section title="Entity Category Support Attribute">
<section anchor="sup-syntax" title="Syntax">
<t>
Entity category support attribute values MUST be URIs. Such values are
also referred to as "category support URIs" in this document.
</t>
<t>
It is RECOMMENDED that http:-scheme or https:-scheme URLs are used;
it is further RECOMMENDED that each such value
resolves to a human-readable document defining the value's semantics.
</t>
<t>
A given category URI MAY be associated with multiple category support URIs in
order to allow for multiple forms of support, participation, or interoperation
with entities in the category. The authority defining the category URI and
category support URIs MUST clearly describe the relationship between
(all versions of) the category URI and (all versions of) the
category support URIs as applicable in the entity category specification.
</t>
<!-- [rfced] We see that http://macedir.org/entity-category redirects to
https://tools.ietf.org/html/draft-young-entity-category-07. In addition,
we encountered a "404 Not Found" when trying to open
http://macedir.org/entity-category-support. Please review and let us know
how to update.
Original:
When used in SAML metadata or protocol elements, the entity category
attribute MUST be encoded as a SAML 2.0 Attribute element with
@NameFormat urn:oasis:names:tc:SAML:2.0:attrname-format:uri and @Name
http://macedir.org/entity-category.
...
The entity category support attribute MUST be encoded as a SAML 2.0
Attribute element with @NameFormat
urn:oasis:names:tc:SAML:2.0:attrname-format:uri and @Name
http://macedir.org/entity-category-support.
[9] RESOLVED: these values must not be changed; to do so would be to invalidate
the entire installed base of current users of the mechanism described here.
Note that the values are URIs rather than URLs, so that it is not necessary for
them to resolve to human-readable documents. Nevertheless, we will be working
to make sure that they do resolve to the final RFC at some point. We don't believe
that it is necessary for that to be the case to proceed to publication of the RFC.
-->
<t>
The entity category support attribute MUST be encoded as a SAML 2.0 Attribute
element with @NameFormat urn:oasis:names:tc:SAML:2.0:attrname-format:uri and
@Name http://macedir.org/entity-category-support.
</t>
<t>
Claims that a SAML entity implements support for one or more categories
are represented by including the Attribute element described here in the entity's metadata
through use of the metadata extension defined in <xref
target="SAML2MetadataAttr"/>.
In this extension,
the Attribute element is contained within an mdattr:EntityAttributes
element directly contained within an md:Extensions element directly
contained within the entity's md:EntityDescriptor.
</t>
<t>
The meaning of the entity category support attribute is not defined by this
specification if it appears anywhere else within a metadata instance or within
any other XML document.
</t>
<t>
If the entity category support attribute appears more than once in the
metadata for an entity, relying parties SHOULD interpret the combined
set of associated attribute values as if they all appeared together
within a single entity category support attribute.
</t>
</section>
<section anchor="sup-semantics" title="Semantics">
<t>
The presence of the entity category support attribute within an entity's entity
attributes represents a series of claims (one for each attribute
value) that the entity supports peer entities in a category in a particular
fashion. The precise semantics of such a claim depend on the definition of the
category support URI itself.
Category support claims will often be defined to be self-asserted.
</t>
<t>
An entity may be claimed to support more than one category. In this case, the entity
is claimed to meet the support requirements of each category independently unless otherwise
specified by the category definitions themselves.
</t>
<t>
This document intentionally does not define "support" for a category,
in order to leave the concept as general as possible.
It is
assumed that entity category definitions MAY define one or more category support URIs
signifying particular definitions for "support" by peers as motivated by use
cases arising from the definition of the category itself.
</t>
<t>
A common case is expected to be the definition of a single category support URI
whose value is identical to the category URI.
</t>
<t>
If significant changes are made to a category support definition, the new version
SHOULD be represented by a different category support URI so that the old and new
versions can be distinguished by a relying party. It is for this reason that
authorities defining entity categories support MAY employ some form of versioning.
When versioning is used, each version of the category support
URI MUST be treated as a separate URI.
</t>
<t>
No ordering relation is defined for entity category support attribute values.
Entity category support attribute values MUST be treated as opaque strings
for the purpose of comparison. In particular, if the specification defining the
category support URIs relies on versioning, a relying
party MUST NOT assume any particular ordering between different versions of
the category support URI. Any order between versions MUST be spelled
out in the specification.
</t>
</section>
<section title="Entity Category Support Example">
<figure>
<artwork><![CDATA[<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
entityID="https://idp.example.edu/entity">
<md:Extensions>
<mdattr:EntityAttributes
xmlns:mdattr="urn:oasis:names:tc:SAML:metadata:attribute">
<Attribute xmlns="urn:oasis:names:tc:SAML:2.0:assertion"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
Name="http://macedir.org/entity-category-support">
<AttributeValue
>http://example.org/category/dog/basic</AttributeValue>
<AttributeValue
>http://example.org/category/dog/advanced</AttributeValue>
<AttributeValue>urn:oid:1.3.6.1.4.1.21829</AttributeValue>
</Attribute>
</mdattr:EntityAttributes>
</md:Extensions>
...
</md:EntityDescriptor>]]></artwork>
</figure>
</section>
</section>
<section anchor="IANA" title="IANA Considerations">
<t>This document has no IANA actions.
</t>
</section>
<section anchor="Security" title="Security Considerations">
<t>
The presence of the entity category attribute within an entity's entity attributes
represents a series of claims (one for each attribute value) that the entity is
a member of the named categories. Before accepting and acting on such claims, any
relying party needs to establish, at a level of assurance sufficient for the
intended use, a chain of trust concluding that the claim is justified.
</t>
<t>
Some of the elements in such a chain of trust might include:
<list style="symbols">
<t>
The integrity of the metadata delivered to the relying party,
for
example, as
assured by a digital signature.
</t>
<t>
If the entity category attribute is carried within a signed assertion, the assertion
itself must be evaluated.
</t>
<t>
The policies and procedures of the immediate source of the metadata,
in particular, any procedures the immediate source has with regard to aggregation
of metadata from other sources.
</t>
<t>
The policies and procedures implemented by agents along the publication path from
the original metadata registrar. This may be determined by examination of
the published procedures of each agent in turn or may be simplified if the
entity metadata includes publication path metadata in mdrpi:PublicationPath
elements as described in Section 2.3.1 of
<xref target="SAML2MetadataRPI"/>.
</t>
<t>
The policies and procedures implemented by the original metadata registrar.
The registrar's identity may be known implicitly or may be determined
from the entity metadata if it includes an mdrpi:RegistrationInfo element
and corresponding @registrationAuthority as described in
Section 2.1.1 of
<xref target="SAML2MetadataRPI"/>.
</t>
<t>
The definition of the category itself, in particular, any
statements it makes about
whether membership of the category may be self-asserted or may
only be asserted
by particular authorities.
</t>
</list>
</t>
<t>
Although entity category support attribute values will often be defined as self-asserted
claims by the containing entity, the provenance of the metadata remains
relevant to a relying party's decision to accept a claim of support as legitimate,
and the specific definition of a support claim will influence the assurance
required to act on it.
</t>
<t>
The conclusion that a claim of category membership or support is justified and
should be acted upon may require a determination of the origin of the claim.
This may not be necessary if the immediate source of the metadata is trusted to such
an extent that the trust calculation is essentially delegated to it.
</t>
<t>
In many cases, a claim will be included in an entity's metadata by the
original metadata registrar on behalf of the entity's owner, and the mdrpi:RegistrationInfo
element's @registrationAuthority is available to carry the registrar's identity.
However, any agent that is part of the chain of custody between the original registrar and the final
relying party may have added, removed, or transformed claims according to local policy.
For example, an agent charged with redistributing metadata may remove claims it regards
as untrustworthy or add others that were not already present if they have value to
its intended audience.
</t>
</section>
</middle>
<back>
<references title="Normative References">
<?rfc include="reference.RFC.2119"?>
<?rfc include="reference.RFC.8174"?>
<reference anchor="SAML2MetadataAttr"
target="http://docs.oasis-open.org/security/saml/Post2.0/sstc-metadata-attr-cs-01.pdf">
<front>
<title>SAML V2.0 Metadata Extension for Entity Attributes Version 1.0</title>
<author fullname="Scott Cantor" role="editor" initials="S." surname="Cantor"/>
<date day="3" month="August" year="2009"/>
</front>
</reference>
<reference anchor="SAML2MetadataRPI"
target="http://docs.oasis-open.org/security/saml/Post2.0/saml-metadata-rpi/v1.0/cs01/saml-metadata-rpi-v1.0-cs01.pdf">
<front>
<title>SAML V2.0 Metadata Extensions for Registration and Publication Information Version 1.0</title>
<author surname="La Joie" initials="C." role="editor" fullname="Chad La Joie"/>
<date day="3" month="April" year="2012"/>
</front>
</reference>
</references>
<references title="Informative References">
<?rfc include="reference.RFC.4844"?>
<reference anchor="REFEDS" target="http://www.refeds.org/">
<front>
<title>Research and Education FEDerations (REFEDS) Group</title>
<author>
<organization></organization>
</author>
<date/>
</front>
</reference>
<reference anchor="REFEDS.agreement" target="https://refeds.org/about/refeds-participants-agreement">
<front>
<title>REFEDS Participant's Agreement</title>
<author>
<organization>Research and Education Federations</organization>
</author>
<date/>
</front>
</reference>
<reference anchor="SAML2IDAssuranceProfile"
target="http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-assurance-profile-cs-01.pdf">
<front>
<title>SAML V2.0 Identity Assurance Profiles Version 1.0</title>
<author fullname='RL "Bob" Morgan' role="editor" initials="RL" surname="Morgan"/>
<author fullname="Paul Madsen" role="editor" initials="P" surname="Madsen"/>
<author fullname="Scott Cantor" role="editor" initials="S." surname="Cantor"/>
<date day="5" month="November" year="2010"/>
</front>
</reference>
</references>
<section anchor="Acknowledgements" title="Acknowledgements" numbered="no">
<t>
This work has been a collaborative effort within the REFEDS and MACE-Dir
communities. Special thanks to the following individuals (in no particular order):
<list style="symbols">
<t>RL 'Bob' Morgan</t>
<t>Ken Klingenstein</t>
<t>Keith Hazelton</t>
<t>Steven Olshansky</t>
<t>Mikael Linden</t>
<t>Nicole Harris</t>
<t>Tom Scavo</t>
</list>
</t>
</section>
</back>
</rfc>