| < draft-ietf-abfab-arch-02.txt | draft-ietf-abfab-arch-03.txt > | |||
|---|---|---|---|---|
| ABFAB J. Howlett | ABFAB J. Howlett | |||
| Internet-Draft JANET(UK) | Internet-Draft JANET(UK) | |||
| Intended status: Informational S. Hartman | Intended status: Informational S. Hartman | |||
| Expires: November 25, 2012 Painless Security | Expires: January 10, 2013 Painless Security | |||
| H. Tschofenig | H. Tschofenig | |||
| Nokia Siemens Networks | Nokia Siemens Networks | |||
| E. Lear | E. Lear | |||
| Cisco Systems GmbH | Cisco Systems GmbH | |||
| J. Schaad | J. Schaad | |||
| Soaring Hawk Consulting | Soaring Hawk Consulting | |||
| May 24, 2012 | July 9, 2012 | |||
| Application Bridging for Federated Access Beyond Web (ABFAB) | Application Bridging for Federated Access Beyond Web (ABFAB) | |||
| Architecture | Architecture | |||
| draft-ietf-abfab-arch-02.txt | draft-ietf-abfab-arch-03.txt | |||
| Abstract | Abstract | |||
| Over the last decade a substantial amount of work has occurred in the | Over the last decade a substantial amount of work has occurred in the | |||
| space of federated access management. Most of this effort has | space of federated access management. Most of this effort has | |||
| focused on two use-cases: network and web-based access. However, the | focused on two use-cases: network and web-based access. However, the | |||
| solutions to these use-cases that have been proposed and deployed | solutions to these use-cases that have been proposed and deployed | |||
| tend to have few common building blocks in common. | tend to have few common building blocks in common. | |||
| This memo describes an architecture that makes use of extensions to | This memo describes an architecture that makes use of extensions to | |||
| skipping to change at page 2, line 7 ¶ | skipping to change at page 2, line 7 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on November 25, 2012. | This Internet-Draft will expire on January 10, 2013. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2012 IETF Trust and the persons identified as the | Copyright (c) 2012 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 3, line 13 ¶ | skipping to change at page 3, line 13 ¶ | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 | 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 1.2. An Overview of Federation . . . . . . . . . . . . . . . . 6 | 1.2. An Overview of Federation . . . . . . . . . . . . . . . . 6 | |||
| 1.3. Challenges to Contemporary Federation . . . . . . . . . . 9 | 1.3. Challenges to Contemporary Federation . . . . . . . . . . 9 | |||
| 1.4. An Overview of ABFAB-based Federation . . . . . . . . . . 9 | 1.4. An Overview of ABFAB-based Federation . . . . . . . . . . 9 | |||
| 1.5. Design Goals . . . . . . . . . . . . . . . . . . . . . . . 12 | 1.5. Design Goals . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 1.6. Client to Relying Party Transport . . . . . . . . . . . . 13 | 1.6. Use of AAA . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 1.7. Use of AAA . . . . . . . . . . . . . . . . . . . . . . . . 14 | 1.7. Use of GSS-API . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 2. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 2. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 2.1. Relying Party to Identity Provider . . . . . . . . . . . . 16 | 2.1. Relying Party to Identity Provider . . . . . . . . . . . . 16 | |||
| 2.2. Client To Identity Provider . . . . . . . . . . . . . . . 19 | 2.1.1. AAA, RADIUS and Diameter . . . . . . . . . . . . . . . 17 | |||
| 2.3. Client to Relying Party . . . . . . . . . . . . . . . . . 20 | 2.1.2. Discovery and Rules Determination . . . . . . . . . . 18 | |||
| 3. Application Security Services . . . . . . . . . . . . . . . . 23 | 2.1.3. Routing and Technical Trust . . . . . . . . . . . . . 19 | |||
| 3.1. Authentication . . . . . . . . . . . . . . . . . . . . . . 23 | 2.1.4. SAML Assertions . . . . . . . . . . . . . . . . . . . 20 | |||
| 3.2. GSS-API Channel Binding . . . . . . . . . . . . . . . . . 24 | 2.2. Client To Identity Provider . . . . . . . . . . . . . . . 22 | |||
| 3.3. Host-Based Service Names . . . . . . . . . . . . . . . . . 25 | 2.2.1. Extensible Authentication Protocol (EAP) . . . . . . . 22 | |||
| 3.4. Per-Message Tokens . . . . . . . . . . . . . . . . . . . . 26 | 2.2.2. Channel Binding . . . . . . . . . . . . . . . . . . . 23 | |||
| 4. Future Work: Attribute Providers . . . . . . . . . . . . . . . 27 | 2.3. Client to Relying Party . . . . . . . . . . . . . . . . . 23 | |||
| 5. Privacy Considerations . . . . . . . . . . . . . . . . . . . . 28 | 2.3.1. GSS-API . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 5.1. What Entities collect and use Data? . . . . . . . . . . . 28 | 2.3.2. Protocol Transport . . . . . . . . . . . . . . . . . . 25 | |||
| 5.2. Relationship between User's and other Entities . . . . . . 29 | 3. Application Security Services . . . . . . . . . . . . . . . . 26 | |||
| 3.1. Authentication . . . . . . . . . . . . . . . . . . . . . . 26 | ||||
| 3.2. GSS-API Channel Binding . . . . . . . . . . . . . . . . . 27 | ||||
| 3.3. Host-Based Service Names . . . . . . . . . . . . . . . . . 28 | ||||
| 3.4. Per-Message Tokens . . . . . . . . . . . . . . . . . . . . 29 | ||||
| 4. Future Work: Attribute Providers . . . . . . . . . . . . . . . 30 | ||||
| 5. Privacy Considerations . . . . . . . . . . . . . . . . . . . . 31 | ||||
| 5.1. What Entities collect and use Data? . . . . . . . . . . . 31 | ||||
| 5.2. Relationship between User's and other Entities . . . . . . 32 | ||||
| 5.3. What Data about the User is likely Needed to be | 5.3. What Data about the User is likely Needed to be | |||
| Collected? . . . . . . . . . . . . . . . . . . . . . . . . 29 | Collected? . . . . . . . . . . . . . . . . . . . . . . . . 32 | |||
| 5.4. What is the Identification Level of the Data? . . . . . . 29 | 5.4. What is the Identification Level of the Data? . . . . . . 32 | |||
| 5.5. Privacy Challenges . . . . . . . . . . . . . . . . . . . . 30 | 5.5. Privacy Challenges . . . . . . . . . . . . . . . . . . . . 33 | |||
| 6. Deployment Considerations . . . . . . . . . . . . . . . . . . 31 | 6. Deployment Considerations . . . . . . . . . . . . . . . . . . 34 | |||
| 6.1. EAP Channel Binding . . . . . . . . . . . . . . . . . . . 31 | 6.1. EAP Channel Binding . . . . . . . . . . . . . . . . . . . 34 | |||
| 6.2. AAA Proxy Behavior . . . . . . . . . . . . . . . . . . . . 31 | 6.2. AAA Proxy Behavior . . . . . . . . . . . . . . . . . . . . 34 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 32 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 35 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 34 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 37 | |||
| 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 35 | 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 38 | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 36 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 39 | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . . 36 | 10.1. Normative References . . . . . . . . . . . . . . . . . . . 39 | |||
| 10.2. Informative References . . . . . . . . . . . . . . . . . . 36 | 10.2. Informative References . . . . . . . . . . . . . . . . . . 40 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 40 | Editorial Comments . . . . . . . . . . . . . . . . . . . . . . . . | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 44 | ||||
| 1. Introduction | 1. Introduction | |||
| The Internet uses numerous security mechanisms to manage access to | The Internet uses numerous security mechanisms to manage access to | |||
| various resources. These mechanisms have been generalized and scaled | various resources. These mechanisms have been generalized and scaled | |||
| over the last decade through mechanisms such as Simple Authentication | over the last decade through mechanisms such as Simple Authentication | |||
| and Security Layer (SASL) with the Generic Security Server | and Security Layer (SASL) with the Generic Security Server | |||
| Application Program Interface (GSS-API) (known as the GS2 family) | Application Program Interface (GSS-API) (known as the GS2 family) | |||
| [RFC5801], Security Assertion Markup Language (SAML) | [RFC5801], Security Assertion Markup Language (SAML) | |||
| [OASIS.saml-core-2.0-os], RADIUS [RFC2865], and Diameter [RFC3588]. | [OASIS.saml-core-2.0-os], RADIUS [RFC2865], and Diameter [RFC3588]. | |||
| skipping to change at page 4, line 42 ¶ | skipping to change at page 4, line 42 ¶ | |||
| [RFC5849], [I-D.ietf-oauth-v2] and WS-Trust [WS-TRUST]. The benefits | [RFC5849], [I-D.ietf-oauth-v2] and WS-Trust [WS-TRUST]. The benefits | |||
| of federated access management include: | of federated access management include: | |||
| Single or Simplified sign-on: | Single or Simplified sign-on: | |||
| An Internet service can delegate access management, and the | An Internet service can delegate access management, and the | |||
| associated responsibilities such as identity management and | associated responsibilities such as identity management and | |||
| credentialing, to an organisation that already has a long-term | credentialing, to an organisation that already has a long-term | |||
| relationship with the Subject. This is often attractive for | relationship with the Subject. This is often attractive for | |||
| Relying Parties who frequently do not want these responsibilities. | Relying Parties who frequently do not want these responsibilities. | |||
| The Subject may also therefore require fewer credentials, which is | The Subject also requires fewer credentials, which is also | |||
| often desirable. | desirable. | |||
| Privacy: | Privacy: | |||
| Often a Relying Party does not need to know the identity of a | Often a Relying Party does not need to know the identity of a | |||
| Subject to reach an access management decision. It is frequently | Subject to reach an access management decision. It is frequently | |||
| only necessary for the Relying Party to establish, for example, | only necessary for the Relying Party know specific attributes | |||
| that the Subject is affiliated with a particular organisation or | about the subject, for example, that the Subject is affiliated | |||
| has a certain role or entitlement. Sometimes the RP does require | with a particular organisation or has a certain role or | |||
| an identifier for the Subject (for example, so that it can | entitlement. Sometimes the RP does not need to know the identity | |||
| recognise the Subject subsequently); in this case, it is a common | of the Subject, but does require a unique identifier for the | |||
| practise for the IdP to only release a pseudonym that is specific | Subject (for example, so that it can recognise the Subject | |||
| to that particular Relying Party. Federated access management | subsequently); in this case, it is a common practise for the IdP | |||
| therefore provides various strategies for protecting the Subject's | to only release a pseudonym that is specific to that particular | |||
| privacy. Other privacy aspects typically of concern are the | Relying Party. Federated access management therefore provides | |||
| policy for releasing personal data about the Subject from the IdP | various strategies for protecting the Subject's privacy. Other | |||
| to the RP, the purpose of the usage, the retention period of the | privacy aspects typically of concern are the policy for releasing | |||
| data, and many more. | personal data about the Subject from the IdP to the RP, the | |||
| purpose of the usage, the retention period of the data, and many | ||||
| more. | ||||
| Provisioning | Provisioning | |||
| Sometimes a Relying Party needs, or would like, to know more about | Sometimes a Relying Party needs, or would like, to know more about | |||
| a subject than an affiliation or a pseudonym. For example, a | a subject than an affiliation or a pseudonym. For example, a | |||
| Relying Party may want the Subject's email address or name. Some | Relying Party may want the Subject's email address or name. Some | |||
| federated access management technologies provide the ability for | federated access management technologies provide the ability for | |||
| the IdP to supply this information, either on request by the RP or | the IdP to supply this information, either on request by the RP or | |||
| unsolicited. | unsolicited. | |||
| skipping to change at page 5, line 48 ¶ | skipping to change at page 5, line 50 ¶ | |||
| pseudonymity, unlinkability, and anonymity. | pseudonymity, unlinkability, and anonymity. | |||
| In this architecture the IdP consists of the following components: an | In this architecture the IdP consists of the following components: an | |||
| EAP server, a RADIUS or a Diameter server, and optionally a SAML | EAP server, a RADIUS or a Diameter server, and optionally a SAML | |||
| Assertion service. | Assertion service. | |||
| This document uses the term Network Access Identifier (NAI), as | This document uses the term Network Access Identifier (NAI), as | |||
| defined in [RFC4282]. | defined in [RFC4282]. | |||
| One of the problems people will find with reading this document is | One of the problems people will find with reading this document is | |||
| that the terminology somestimes appears to be inconsistant. This is | that the terminology sometimes appears to be inconsistent. This is | |||
| do the fact that the terms used by the different standards we are | due the fact that the terms used by the different standards we are | |||
| picking up don't use the same terms. In general the document uses | picking up don't use the same terms. In general the document uses | |||
| either a consistant term or the term associated with the standard | either a consistent term or the term associated with the standard | |||
| under discussion as appropriate. For reference we include this table | under discussion as appropriate. For reference we include this table | |||
| which maps the different terms into a single table. | which maps the different terms into a single table. | |||
| +----------+------------+-------------------+-----------------------+ | +----------+------------+-------------------+-----------------------+ | |||
| | Protocol | Subject | Relying Party | Identity Provider | | | Protocol | Subject | Relying Party | Identity Provider | | |||
| +----------+------------+-------------------+-----------------------+ | +----------+------------+-------------------+-----------------------+ | |||
| | ABFAB | Subject | Relying Party | Identity Provider | | | ABFAB | Subject | Relying Party | Identity Provider | | |||
| | | | (RP) | (IdP) | | | | | (RP) | (IdP) | | |||
| | | | | | | | | | | | | |||
| | | Principal | | | | | | Principal | | | | |||
| | | | | | | | | | | | | |||
| | SAML | | | | | | | Client | | | | |||
| | | | | | | | | | | | | |||
| | GSS-API | | | | | | SAML | Subject | Service Provider | Issuer | | |||
| | | | | | | | | | | | | |||
| | EAP | EAP client | | EAP server | | | GSS-API | Initiator | Acceptor | | | |||
| | | | | | | | | | | | | |||
| | | EAP peer | | | | | EAP | EAP client | | EAP server | | |||
| | | | | | | | | | | | | |||
| | SASL | | | | | | | EAP peer | | | | |||
| | | | | | | | | | | | | |||
| | AAA | | AAA Client | AAA server | | | SASL | | | | | |||
| | | | | | | | | | | | | |||
| | RADIUS | client | NAS | RADIUS server | | | AAA | | AAA Client | AAA server | | |||
| | | | | | | ||||
| | RADIUS | client | NAS | RADIUS server | | ||||
| +----------+------------+-------------------+-----------------------+ | +----------+------------+-------------------+-----------------------+ | |||
| Note that in some cases a cell has been left empty, in these cases | Note that in some cases a cell has been left empty, in these cases | |||
| there is no direct name that represents this concept. | there is no direct name that represents this concept. | |||
| Note to reviewers - I have most likely missed some entries in the | Note to reviewers - I have most likely missed some entries in the | |||
| table. Please provide me with both correct names from the protocol | table. Please provide me with both correct names from the protocol | |||
| and missing names that are used in the text below. | and missing names that are used in the text below. | |||
| 1.2. An Overview of Federation | 1.2. An Overview of Federation | |||
| skipping to change at page 7, line 18 ¶ | skipping to change at page 7, line 19 ¶ | |||
| `----------' '---------' | `----------' '---------' | |||
| < | < | |||
| \ | \ | |||
| \ Authentication | \ Authentication | |||
| \ | \ | |||
| \ | \ | |||
| \ | \ | |||
| \ | \ | |||
| \ +---------+ | \ +---------+ | |||
| \ | | O | \ | | O | |||
| v| Client | \|/ Subject | v| Client | \|/ Principal | |||
| | | | | | | | | |||
| +---------+ / \ | +---------+ / \ | |||
| Figure 1: Entities and their Relationships | Figure 1: Entities and their Relationships | |||
| A federation agreement typically encompasses operational | A federation agreement typically encompasses operational | |||
| specifications and legal rules: | specifications and legal rules: | |||
| Operational Specifications: | Operational Specifications: | |||
| These includes the technical specifications (e.g. protocols used | These includes the technical specifications (e.g. protocols used | |||
| to communicate between the three parties), process standards, | to communicate between the three parties), process standards, | |||
| policies, identity proofing, credential and authentication | policies, identity proofing, credential and authentication | |||
| algorithm requirements, performance requirements, assessment and | algorithm requirements, performance requirements, assessment and | |||
| audit criteria, etc. The goal of these specifications to make the | audit criteria, etc. The goal of operational specifications is to | |||
| system work and to accomplish interoperability. | provide enough definition that the system works and | |||
| interoperability is possible. | ||||
| Legal Rules: | Legal Rules: | |||
| The legal rules take existing laws into consideration and provide | The legal rules takes the legal framework into consideration and | |||
| contractual obligations to provide further clarification and | provides contractual obligations for each entity, defines the | |||
| define responsibilities. These legal rules regulate the | responsibilities and provides further clarification of the | |||
| operational specifications. These legal rules regulate the | ||||
| operational specifications, make operational specifications | operational specifications, make operational specifications | |||
| legally binding to the participants, define and govern the rights | legally binding to the participants, define and govern the rights | |||
| and responsibilities of the participants. These legal rules may, | and responsibilities of the participants. The legal rules may, | |||
| for example, describe liability for losses, termination rights, | for example, describe liability for losses, termination rights, | |||
| enforcement mechanisms, measures of damage, dispute resolution, | enforcement mechanisms, measures of damage, dispute resolution, | |||
| warranties, etc. | warranties, etc. | |||
| The nature of federation dictates that there is some form of | The nature of federation dictates that there is some form of | |||
| relationship between the identity provider and the relying party. | relationship between the identity provider and the relying party. | |||
| This is particularly important when the relying party wants to use | This is particularly important when the relying party wants to use | |||
| information obtained from the identity provider for access management | information obtained from the identity provider for access management | |||
| decisions and when the identity provider does not want to release | decisions and when the identity provider does not want to release | |||
| information to every relying party (or only under certain | information to every relying party (or only under certain | |||
| conditions). | conditions). | |||
| While it is possible to have a bilateral agreement between every IdP | While it is possible to have a bilateral agreement between every IdP | |||
| and every RP; on an Internet scale this setup requires the | and every RP; on an Internet scale this setup requires the | |||
| introduction of the multi-lateral federation concept, as the | introduction of the multi-lateral federation concept, as the | |||
| management of such pair-wise relationships would otherwise prove | management of such pair-wise relationships would otherwise prove | |||
| burdensome. | burdensome. | |||
| While many of the non-technical aspects of federation, such as | While many of the non-technical aspects of federation, such as | |||
| business practices and legal arrangements, are outside the scope of | business practices and legal arrangements, are outside the scope of | |||
| the IETF they still impact the architectural setup on how to ensure | the IETF, they still impact the architectural setup on how to ensure | |||
| the dynamic establishment of trust. | the dynamic establishment of trust. | |||
| Some deployments demand the deployment of sophisticated technical | Some deployments demand the deployment of sophisticated technical | |||
| infrastructure, including message routing intermediaries, to offer | infrastructure, including message routing intermediaries, to offer | |||
| the required technical functionality. In other deployments fewer | the required technical functionality. In other deployments fewer | |||
| technical components are needed. | technical components are needed. | |||
| Figure 1 also shows the relationship between the IdP and the Subject. | Figure 1 also shows the relationship between the IdP and the Subject. | |||
| Often a real world entity is associated with the Subject; for | Often a real world entity is associated with the Subject; for | |||
| example, a person or some software. | example, a person or some software. | |||
| The IdP will typically have a long-term relationship with the | The IdP will typically have a long-term relationship with the | |||
| Subject. This relationship would typically involve the IdP | Subject. This relationship would typically involve the IdP | |||
| positively identifying and credentialling the Subject (for example, | positively identifying and credentialing the Subject (for example, at | |||
| at time of enrollment in the context of employment within an | time of enrollment in the context of employment within an | |||
| organisation). The relationship will often be instantiated within an | organisation). The relationship will often be instantiated within an | |||
| agreement between the IdP and the Subject (for example, within an | agreement between the IdP and the Subject (for example, within an | |||
| employment contract or terms of use that stipulates the appropriate | employment contract or terms of use that stipulates the appropriate | |||
| use of credentials and so forth). | use of credentials and so forth). | |||
| While federation is often discussed within the context of relatively | While federation is often discussed within the context of formal | |||
| formal relationships, such as between an enterprise and an employee | relationships, such as between an enterprise and an employee or a | |||
| or a government and a citizen, federation does not in any way require | government and a citizen, federation does not in require any | |||
| this; nor, indeed, does it require any particular level of formality. | particular level of formality. For an IdP and a subject, it is | |||
| It is, for example, entirely compatible with a relationship between | entirely compatible with a relationship between the IdP and Subject | |||
| the IdP and Subject that is only as weak as completing a web form and | that is only Requiems completing a web form and confirming the | |||
| confirming the verification email. | verification email. For an IdP and an RP, it is entirely compatible | |||
| with the IdP publishing a usage point and the RP using that data. | ||||
| However, the nature and quality of the relationship between the | However, the nature and quality of the relationship between the | |||
| Subject and the IdP is an important contributor to the level of trust | Subject and the IdP is an important contributor to the level of trust | |||
| that an RP may attribute to an assertion describing a Subject made by | that an RP may attribute to an assertion describing a Subject made by | |||
| an IdP. This is sometimes described as the Level of Assurance. | an IdP. This is sometimes described as the Level of Assurance. | |||
| Similarly it is also important to note that, in the general case, | Federation does not imposes requirement of an a priori relationship | |||
| there is no requirement of a long-term relationship between the RP | or a long-term relationship between the RP and the Subject. This is | |||
| and the Subject. This is a property of federation that yields many | a property of federation that yields many of its benefits. However, | |||
| of its benefits. However, federation does not preclude the | federation does not preclude the possibility of a pre-existing | |||
| possibility of a pre-existing relationship existing between the RP | relationship existing between the RP and the Subject, nor that they | |||
| and the Subject, nor that they may use the introduction to create a | may use the introduction to create a new long-term relationship | |||
| new long-term relationship independent of the federation. | independent of the federation. | |||
| Finally, it is important to reiterate that in some scenarios there | Finally, it is important to reiterate that in some scenarios there | |||
| might indeed be a human behind the device denoted as Client and in | might indeed be a human behind the device denoted as Client and in | |||
| other cases there is no human involved in the actual protocol | other cases there is no human involved in the actual protocol | |||
| execution. | execution. | |||
| 1.3. Challenges to Contemporary Federation | 1.3. Challenges to Contemporary Federation | |||
| As the number of federated services has proliferated, the role of the | As the number of federated services has proliferated, the role of the | |||
| individual can become ambiguous in certain circumstances. For | individual can become ambiguous in certain circumstances. For | |||
| example, a school might provide online access for a student's grades | example, a school might provide online access for a student's grades | |||
| to their parents for review, and to the student's teacher for | to their parents for review, and to the student's teacher for | |||
| modifying the grades. A teacher who is also a parent must clearly | modification. A teacher who is also a parent must clearly | |||
| distinguish here role upon access. | distinguish her role upon access. | |||
| Similarly, as the number of federations proliferates, it becomes | Similarly, as the number of federations proliferates, it becomes | |||
| increasingly difficult to discover which identity provider(s) a user | increasingly difficult to discover which identity provider(s) a user | |||
| is associated with. This is true for both the web and non-web case, | is associated with. This is true for both the web and non-web case, | |||
| but is particularly acute for the latter as many non-web | but is particularly acute for the latter as many non-web | |||
| authentication systems are not semantically rich enough on their own | authentication systems are not semantically rich enough on their own | |||
| to allow for such ambiguities. For instance, in the case of an email | to allow for such ambiguities. For instance, in the case of an email | |||
| provider, the use of SMTP and IMAP protocols does not on its own | provider, the use of SMTP and IMAP protocols does not on its own | |||
| provide for a way to select a federation. However, the building | provide for a way to select a federation. However, the building | |||
| blocks do exist to add this functionality. | blocks do exist to add this functionality. | |||
| skipping to change at page 10, line 11 ¶ | skipping to change at page 10, line 17 ¶ | |||
| 3. Client Application provides the NAI to RP: The client | 3. Client Application provides the NAI to RP: The client | |||
| application setups a transport to the RP and begins the GSS-EAP | application setups a transport to the RP and begins the GSS-EAP | |||
| authentication. The RP initiates the EAP protocol to the client | authentication. The RP initiates the EAP protocol to the client | |||
| application, and the client provides the NAI to the RP in the | application, and the client provides the NAI to the RP in the | |||
| form of the EAP response. | form of the EAP response. | |||
| 4. Discovery of federated IdP: The RP uses pre-configured | 4. Discovery of federated IdP: The RP uses pre-configured | |||
| information or a federation proxy to determine what IdP to use | information or a federation proxy to determine what IdP to use | |||
| based on policy and the provided NAI. This is discussed in | based on policy and the provided NAI. This is discussed in | |||
| detail below. | detail below (Section 2.1.2). | |||
| 5. Request from Relying Party to IdP: Once the RP knows who the IdP | 5. Request from Relying Party to IdP: Once the RP knows who the IdP | |||
| is, it (or its agent) will send a RADIUS/Diameter request to the | is, it (or its agent) will send a RADIUS/Diameter request to the | |||
| IdP. The RADIUS/Diameter access request encapsulates the EAP | IdP. The RADIUS/Diameter access request encapsulates the EAP | |||
| response. At this stage, the RP will likely have no idea who | response. At this stage, the RP will likely have no idea who | |||
| the principal is. The RP claims its identity to the IdP in AAA | the client is. The RP claims its identity to the IdP in AAA | |||
| attributes, and it may contain a SAML Attribute Requests in a | attributes, and it may contain a SAML Attribute Requests in a | |||
| AAA attribute. | AAA attribute. | |||
| 6. IdP informs the principal of which EAP method to use: The | 6. IdP informs the client of which EAP method to use: The available | |||
| available and appropriate methods are discussed below in this | and appropriate methods are discussed below in this | |||
| memo. | memo.[anchor4] | |||
| 7. The EAP protocol is run: A bunch of EAP messages are passed | 7. The EAP protocol is run: A bunch of EAP messages are passed | |||
| between the EAP peer and the EAP server, i.e., the principal and | between the EAP peer and the EAP server, i.e., the client and | |||
| the IdP in our identity management terminology, until the result | the IdP in our identity management terminology, until the result | |||
| of the authentication protocol is determined. The number and | of the authentication protocol is determined. The number and | |||
| content of those messages will depend on the EAP method. If the | content of those messages will depend on the EAP method. If the | |||
| IdP is unable to authenticate the principal, the process | IdP is unable to authenticate the client, the process concludes | |||
| concludes here. As part of the EAP protocol, the principal will | here. As part of the EAP protocol, the client will create a | |||
| create a channel bindings message to the IdP identifying, among | channel bindings message to the IdP identifying, among other | |||
| other things, the RP to which it is attempting to authenticate. | things, the RP to which it is attempting to authenticate. The | |||
| The IdP checks the channel binding data from the principal with | IdP checks the channel binding data from the client with that | |||
| that provided by the RP via the AAA protocol. If the bindings | provided by the RP via the AAA protocol. If the bindings do not | |||
| do not match the IdP fails the EAP protocol. | match the IdP fails the EAP protocol. | |||
| 8. Successful Authentication: The IdP (its EAP server) and EAP peer | 8. Successful Authentication: The IdP (its EAP server) and EAP peer | |||
| / subject have mutually authenticated each other. As a result | / subject have mutually authenticated each other. As a result | |||
| of this step, the subject and the IdP hold two cryptographic | of this step, the subject and the IdP hold two cryptographic | |||
| keys- a Master Session Key (MSK), and an Extended MSK (EMSK). | keys- a Master Session Key (MSK), and an Extended MSK (EMSK). | |||
| There is some confidence that the RP is the one the principal is | There is some confidence that the RP is the one the client is | |||
| communicating with as the channel binding data validated. This | communicating with as the channel binding data validated. This | |||
| allows for a claim of authentication for the RP to the | allows for a claim of authentication for the RP to the client. | |||
| principal. | ||||
| 9. Local IdP Policy Check: At this stage, the IdP checks local | 9. Local IdP Policy Check: At this stage, the IdP checks local | |||
| policy to determine whether the RP and subject are authorized | policy to determine whether the RP and subject are authorized | |||
| for a given transaction/service, and if so, what if any, | for a given transaction/service, and if so, what if any, | |||
| attributes will be released to the RP. The RP will have done | attributes will be released to the RP. The RP will have done | |||
| it's policy checks during the discovery process. | its policy checks during the discovery process. | |||
| 10. Response from the IdP to the Relying Party: Once the IdP has | 10. Response from the IdP to the Relying Party: Once the IdP has | |||
| made a determination of whether and how to authenticate and | made a determination of whether and how to authenticate and | |||
| authorize the principal to the RP, it returns either a negative | authorize the client to the RP, it returns either a negative AAA | |||
| AAA result to the RP, or it returns a positive result to the RP, | result to the RP, or it returns a positive result to the RP, | |||
| along with an optional set of AAA attributes associated with the | along with an optional set of AAA attributes associated with the | |||
| principal that could include one or more SAML assertions. In | client (usually as one or more SAML assertions). In addition, | |||
| addition, an EAP MSK is returned to the RP. | an EAP MSK is returned to the RP. | |||
| 11. RP Processes Results: When the RP receives the result from the | 11. RP Processes Results: When the RP receives the result from the | |||
| IdP, it should have enough information to either grant or refuse | IdP, it should have enough information to either grant or refuse | |||
| a resource access request. It may have information that | a resource access request. It may have information that | |||
| associates the principal with specific authorization identities. | associates the client with specific authorization identities. | |||
| If additional attributes are needed from the IdP the RP may make | If additional attributes are needed from the IdP the RP may make | |||
| a new SAML Request to the IdP. It will apply these results in | a new SAML Request to the IdP. It will apply these results in | |||
| an application-specific way. | an application-specific way. | |||
| 12. RP returns results to principal: Once the RP has a response it | 12. RP returns results to client: Once the RP has a response it must | |||
| must inform the client application of the result. If all has | inform the client application of the result. If all has gone | |||
| gone well, all are authenticated, and the application proceeds | well, all are authenticated, and the application proceeds with | |||
| with appropriate authorization levels. | appropriate authorization levels. | |||
| An example communication flow is given below: | An example communication flow is given below: | |||
| Relying Client Identity | Relying Client Identity | |||
| Party App Provider | Party App Provider | |||
| | (1) | Client App gets NAI (somehow) | | (1) | Client App gets NAI (somehow) | |||
| | | | | | | | | |||
| |<-----(2)----->| | Mechanism Selection | |<-----(2)----->| | Mechanism Selection | |||
| | | | | | | | | |||
| |<-----(3)-----<| | NAI transmitted to RP | |<-----(3)-----<| | NAI transmitted to RP | |||
| | | | | | | | | |||
| |<=====(4)====================>| Discovery | |<=====(4)====================>| Discovery | |||
| | | | | | | | | |||
| |>=====(5)====================>| Access request from RP to IdP | |>=====(5)====================>| Access request from RP to IdP | |||
| | | | | | | | | |||
| | |< - - (6) - -<| EAP method to Principal | | |< - - (6) - -<| EAP method to Client | |||
| | | | | | | | | |||
| | |< - - (7) - ->| EAP Exchange to authenticate | | |< - - (7) - ->| EAP Exchange to authenticate | |||
| | | | Principal | | | | Client | |||
| | | | | | | | | |||
| | | (8 & 9) Local Policy Check | | | (8 & 9) Local Policy Check | |||
| | | | | | | | | |||
| |<====(10)====================<| IdP Assertion to RP | |<====(10)====================<| IdP Assertion to RP | |||
| | | | | | | | | |||
| | | (11) RP processes results | (11) | | RP processes results | |||
| | | | | | | | | |||
| |>----(12)----->| | Results to client app. | |>----(12)----->| | Results to client app. | |||
| ----- = Between Client App and RP | ----- = Between Client App and RP | |||
| ===== = Between RP and IdP | ===== = Between RP and IdP | |||
| - - - = Between Client App and IdP | - - - = Between Client App and IdP | |||
| 1.5. Design Goals | 1.5. Design Goals | |||
| Our key design goals are as follows: | Our key design goals are as follows: | |||
| o Each party of a transaction will be authenticated, and the | o Each party of a transaction will be authenticated, and the client | |||
| principal will be authorized for access to a specific resource . | will be authorized for access to a specific resource. | |||
| o Means of authentication is decoupled so as to allow for multiple | o Means of authentication is decoupled so as to allow for multiple | |||
| authentication methods. | authentication methods. | |||
| o Hence, the architecture requires no sharing of long term private | o Hence, the architecture requires no sharing of long term private | |||
| keys. | keys. | |||
| o The system will scale to large numbers of identity providers, | o The system will scale to large numbers of identity providers, | |||
| relying parties, and users. | relying parties, and users. | |||
| o The system will be designed primarily for non-Web-based | o The system will be designed primarily for non-Web-based | |||
| authentication. | authentication. | |||
| o The system will build upon existing standards, components, and | o The system will build upon existing standards, components, and | |||
| operational practices. | operational practices. | |||
| Designing new three party authentication and authorization protocols | Designing new three party authentication and authorization protocols | |||
| is hard and frought with risk of cryptographic flaws. Achieving | is hard and fraught with risk of cryptographic flaws. Achieving | |||
| widespead deployment is even more difficult. A lot of attention on | widespead deployment is even more difficult. A lot of attention on | |||
| federated access has been devoted to the Web. This document instead | federated access has been devoted to the Web. This document instead | |||
| focuses on a non-Web-based environment and focuses on those protocols | focuses on a non-Web-based environment and focuses on those protocols | |||
| where HTTP is not used. Despite the increased excitement for | where HTTP is not used. Despite the increased excitement for | |||
| layering every protocol on top of HTTP there are still a number of | layering every protocol on top of HTTP there are still a number of | |||
| protocols available that do not use HTTP-based transports. Many of | protocols available that do not use HTTP-based transports. Many of | |||
| these protocols are lacking a native authentication and authorization | these protocols are lacking a native authentication and authorization | |||
| framework of the style shown in Figure 1. | framework of the style shown in Figure 1. | |||
| 1.6. Client to Relying Party Transport | 1.6. Use of AAA | |||
| The transport of data between the client and the relying part is not | ||||
| provided by GSS-API. GSS-API creates and consumes messages, but it | ||||
| does not provide the transport itself, instead the protocol using | ||||
| GSS-API needs to provide the transport. In many cases HTTP or HTTPS | ||||
| is used for this transport, but other transports are perfectly | ||||
| acceptable. The core GSS-API document [RFC2743] provides some | ||||
| details on what requirements exist. | ||||
| In addition we highlight the following: | ||||
| o The transport does not need to provide either privacy or | ||||
| integrity. After GSS-EAP has finished negotiation, GSS-API can be | ||||
| used to provide both services. If the negotiation process itself | ||||
| needs protection from eavesdroppers then the transport would need | ||||
| to provide the necessary services. | ||||
| o The transport needs to provide reliable transport of the messages. | ||||
| o The transport needs to ensure that tokens are delivered in order | ||||
| during the negotiation process. | ||||
| o GSS-API messages need to be delivered atomically. If the | ||||
| transport breaks up a message it must also reassemble the message | ||||
| before delivery. | ||||
| 1.7. Use of AAA | ||||
| Interestingly, for network access authentication the usage of the AAA | Interestingly, for network access authentication the usage of the AAA | |||
| framework with RADIUS [RFC2865] and Diameter [RFC3588] was quite | framework with RADIUS [RFC2865] and Diameter [RFC3588] was quite | |||
| successful from a deployment point of view. To map the terminology | successful from a deployment point of view. To map the terminology | |||
| used in Figure 1 to the AAA framework the IdP corresponds to the AAA | used in Figure 1 to the AAA framework the IdP corresponds to the AAA | |||
| server, the RP corresponds to the AAA client, and the technical | server, the RP corresponds to the AAA client, and the technical | |||
| building blocks of a federation are AAA proxies, relays and redirect | building blocks of a federation are AAA proxies, relays and redirect | |||
| agents (particularly if they are operated by third parties, such as | agents (particularly if they are operated by third parties, such as | |||
| AAA brokers and clearing houses). The front-end, i.e. the end host | AAA brokers and clearing houses). The front-end, i.e. the end host | |||
| to AAA client communication, is in case of network access | to AAA client communication, is in case of network access | |||
| authentication offered by link layer protocols that forward | authentication offered by link layer protocols that forward | |||
| authentication protocol exchanges back-and-forth. An example of a | authentication protocol exchanges back-and-forth. An example of a | |||
| large scale RADIUS-based federation is EDUROAM [2]. | large scale RADIUS-based federation is EDUROAM [2]. | |||
| Is it possible to design a system that builds on top of successful | By using the AAA framework, ABFAB gets a lot of mileage as many of | |||
| protocols to offer non-Web-based protocols with a solid starting | the federation agreements already exist and merely need to be | |||
| point for authentication and authorization in a distributed system? | expanded to cover the ABFAB additions. The AAA framework has already | |||
| addressed some of the problems outlined above. For example, | ||||
| o It already needs a method of doing routing of requests based on a | ||||
| domain. | ||||
| o It already has an extensible architecture allowing for new | ||||
| attributes to be defined and transported. | ||||
| o Pre-existing relationships can be re-used. | ||||
| 1.7. Use of GSS-API | ||||
| Expand here | ||||
| 2. Architecture | 2. Architecture | |||
| Section 1 already introduced the federated access architecture, with | We have already introduced the federated access architecture, with | |||
| the illustration of the different actors that need to interact, but | the illustration of the different actors that need to interact, but | |||
| it did not expand on the specifics of providing support for non-Web | did not expand on the specifics of providing support for non-Web | |||
| based applications. This section details this aspect and motivates | based applications. This section details this aspect and motivates | |||
| design decisions. The main theme of the work described in this | design decisions. The main theme of the work described in this | |||
| document is focused on re-using existing building blocks that have | document is focused on re-using existing building blocks that have | |||
| been deployed already and to re-arrange them in a novel way. | been deployed already and to re-arrange them in a novel way. | |||
| Although this architecture assumes updates to both the relying party | Although this architecture assumes updates to the relying party, the | |||
| as well as to the client for application integration, those changes | client application and the Identity Provider, those changes are kept | |||
| are kept at a minimum. A mechanism that can demonstrate deployment | at a minimum. A mechanism that can demonstrate deployment benefits | |||
| benefits (based on ease of update of existing software, low | (based on ease of update of existing software, low implementation | |||
| implementation effort, etc.) is preferred and there may be a need to | effort, etc.) is preferred and there may be a need to specify | |||
| specify multiple mechanisms to support the range of different | multiple mechanisms to support the range of different deployment | |||
| deployment scenarios. | scenarios. | |||
| There are a number of ways for encapsulating EAP into an application | There are a number of ways for encapsulating EAP into an application | |||
| protocol. For ease of integration with a wide range of non-Web based | protocol. For ease of integration with a wide range of non-Web based | |||
| application protocols the usage of the GSS-API was chosen. | application protocols the usage of the GSS-API was chosen. | |||
| Encapsulating EAP into the GSS-API also allows EAP to be used in | Encapsulating EAP into the GSS-API also allows EAP to be used in | |||
| SASL. A description of the technical specification can be found in | SASL. A description of the technical specification can be found in | |||
| [I-D.ietf-abfab-gss-eap]. Other alternatives exist as well and may | [I-D.ietf-abfab-gss-eap]. Other alternatives exist as well and may | |||
| be considered later, such as "TLS using EAP Authentication" | be considered later, such as "TLS using EAP Authentication" | |||
| [I-D.nir-tls-eap]. | [I-D.nir-tls-eap].[anchor9] | |||
| The architecture consists of several buiding blocks, which is shown | The architecture consists of several building blocks, which is shown | |||
| graphically in Figure 2. The subsections below explain relationship | graphically in Figure 2. In the following sections, we discuss the | |||
| of the protocol components in more detail. | data flow between each of the entities, the protocols used for that | |||
| data flow and some of the trade-offs made in choosing the protocols. | ||||
| +--------------+ | +--------------+ | |||
| | Identity | | | Identity | | |||
| | Provider | | | Provider | | |||
| | (IdP) | | | (IdP) | | |||
| +-^----------^-+ | +-^----------^-+ | |||
| * EAP o RADIUS/ | * EAP o RADIUS/ | |||
| * o Diameter | * o Diameter | |||
| --v----------v-- | --v----------v-- | |||
| /// \\\ | /// \\\ | |||
| skipping to change at page 16, line 44 ¶ | skipping to change at page 16, line 44 ¶ | |||
| <****>: Client-to-IdP Exchange | <****>: Client-to-IdP Exchange | |||
| <---->: Client-to-RP Exchange | <---->: Client-to-RP Exchange | |||
| <oooo>: RP-to-IdP Exchange | <oooo>: RP-to-IdP Exchange | |||
| <====>: Protocol through which GSS-API/GS2 exchanges are tunnelled | <====>: Protocol through which GSS-API/GS2 exchanges are tunnelled | |||
| Figure 2: ABFAB Protocol Instantiation | Figure 2: ABFAB Protocol Instantiation | |||
| 2.1. Relying Party to Identity Provider | 2.1. Relying Party to Identity Provider | |||
| The federation substrate is responsible for the communication between | Communications between the Relying Part and the Identity Provider is | |||
| the relying party and the identity provider. This layer is | done by the federation substrate. This communication channel is | |||
| responsible for the inter-domain communication and for the technical | responsible for: | |||
| mechanisms necessary to establish inter-domain trust. | ||||
| A key design goal is the re-use of an existing infrastructure, we | o Establishing the trust relationship between the RP and the IdP. | |||
| build upon the AAA framework as utilized by RADIUS [RFC2138] and | ||||
| Diameter [RFC3588]. Since this document does not aim to re-describe | ||||
| the AAA framework the interested reader is referred to [RFC2904]. | ||||
| Building on the AAA infrastructure, and RADIUS and Diameter as | o Determining the Rules governing the relationship. | |||
| protocols, modifications to that infrastructure is to be avoided. | ||||
| Also, modifications to AAA servers should be kept at a minimum. | o Conveying packets between the RP and IdP. | |||
| o Providing the means of establishing a trust relationship between | ||||
| the RP and the client. | ||||
| The ABFAB working group has chosen the AAA framework for the messages | ||||
| transported between the RP and IdP. This allows for the standard AAA | ||||
| framework to be used to establish the trust relationship between the | ||||
| RP and the IdP while allowing other newer routing mechanisms using | ||||
| the same message format to be used in the future. The ABFAB protocol | ||||
| itself details the method of establishing the trust relationship | ||||
| between the RP and the client. | ||||
| 2.1.1. AAA, RADIUS and Diameter | ||||
| The IETF has defined a federation framework already with the | ||||
| Authentication, Authorization and Accounting (AAA) framework | ||||
| [RFC2903], [RFC2904]. Two implementations of the AAA framework exist | ||||
| in RADIUS [RFC2138] and Diameter [RFC3588] protocols. The existence | ||||
| of these protocols allows us to re-use a pair of existing protocols | ||||
| that have been widely deployed and are reasonable well understood. | ||||
| These protocols are nicely designed so that they can carry additional | ||||
| attributes with minimal changes to either the protocol or existing | ||||
| AAA servers. | ||||
| The astute reader will notice that RADIUS and Diameter have | The astute reader will notice that RADIUS and Diameter have | |||
| substantially similar characteristics. Why not pick one? A key | substantially similar characteristics. Why not pick one? A key | |||
| difference is that today RADIUS is largely transported upon UDP, and | difference is that today RADIUS is largely transported upon UDP, and | |||
| its use is largely, though not exclusively, intra-domain. Diameter | its use is largely, though not exclusively, intra-domain. Diameter | |||
| itself was designed to scale to broader uses. We leave as a | itself was designed to scale to broader uses. We leave as a | |||
| deployment decision, which protocol will be appropriate. | deployment decision, which protocol will be appropriate. The | |||
| protocol defines all the necessary new AAA attributes as RADIUS | ||||
| attributes, this allows for the same structures and attributes to be | ||||
| used in both RADIUS and Diameter. We also note that there exist | ||||
| proxies which convert from RADIUS to Diameter and back. This makes | ||||
| it possible for both to be deployed in a single federation substrate. | ||||
| Through the integrity protection mechanisms in the AAA framework, the | Through the integrity protection mechanisms in the AAA framework, the | |||
| relying party can establish technical trust that messages are being | identity provider can establish technical trust that messages are | |||
| sent by the appropriate relying party. Any given interaction will be | being sent by the appropriate relying party. Any given interaction | |||
| associated with one federation at the policy level. The legal or | will be associated with one federation at the policy level. The | |||
| business relationship defines what statements the identity provider | legal or business relationship defines what statements the identity | |||
| is trusted to make and how these statements are interpreted by the | provider is trusted to make and how these statements are interpreted | |||
| relying party. The AAA framework also permits the relying party or | by the relying party. The AAA framework also permits the relying | |||
| elements between the relying party and identity provider to make | party or elements between the relying party and identity provider to | |||
| statements about the relying party. | make statements about the relying party. | |||
| The AAA framework provides transport for attributes. Statements made | The AAA framework provides transport for attributes. Statements made | |||
| about the subject by the identity provider, statements made about the | about the subject by the identity provider, statements made about the | |||
| relying party and other information is transported as attributes. | relying party and other information are transported as attributes. | |||
| One demand that the AAA substrate makes of the upper layers is that | One demand that the AAA substrate makes of the upper layers is that | |||
| they must properly identify the end points of the communication. It | they must properly identify the end points of the communication. It | |||
| must be possible for the AAA client at the RP to determine where to | must be possible for the AAA client at the RP to determine where to | |||
| send each RADIUS or Diameter message. Without this requirement, it | send each RADIUS or Diameter message. Without this requirement, it | |||
| would be the RP's responsibility to determine the identity of the | would be the RP's responsibility to determine the identity of the | |||
| principal on its own, without the assistance of an IdP. This | client on its own, without the assistance of an IdP. This | |||
| architecture makes use of the Network Access Identifier (NAI), where | architecture makes use of the Network Access Identifier (NAI), where | |||
| the IdP is indicated in the realm component [RFC4282]. The NAI is | the IdP is indicated by the realm component [RFC4282]. The NAI is | |||
| represented and consumed by the GSS-API layer as GSS_C_NT_USER_NAME | represented and consumed by the GSS-API layer as GSS_C_NT_USER_NAME | |||
| as specified in [RFC2743]. The GSS-API EAP mechanism includes the | as specified in [RFC2743]. The GSS-API EAP mechanism includes the | |||
| NAI in the EAP Response/Identity message. | NAI in the EAP Response/Identity message. | |||
| 2.1.2. Discovery and Rules Determination | ||||
| While we are using the AAA protocols to communicate with the IdP, the | ||||
| RP may have multiple federation substrates to select from. The RP | ||||
| has a number of criteria that it will use in selecting which of the | ||||
| different federations to use: | ||||
| o The federation selected must be able to communicate with the IdP. | ||||
| o The federation selected must match the business rules and | ||||
| technical policies required for the RP security requirements. | ||||
| The RP needs to discover which federation will be used to contact the | The RP needs to discover which federation will be used to contact the | |||
| IDP. As part of this process, the RP determines the set of business | IdP. The first selection criteria in discovery is going to be the | |||
| rules and technical policies governing the relationship; this is | name of the IdP to be contacted. The second selection criteria in | |||
| called rules determination. The RP also needs to establish technical | discovery is going to be the set of business rules and technical | |||
| trust in the communications with the IDP. | policies governing the relationship; this is called rules | |||
| determination. The RP also needs to establish technical trust in the | ||||
| communications with the IdP. | ||||
| Rules determination covers a broad range of decisions about the | Rules determination covers a broad range of decisions about the | |||
| exchange. One of these is whether the given RP is permitted to talk | exchange. One of these is whether the given RP is permitted to talk | |||
| to the IDP using a given federation at all, so rules determination | to the IdP using a given federation at all, so rules determination | |||
| encompasses the basic authorization decision. Other factors are | encompasses the basic authorization decision. Other factors are | |||
| included, such as what policies govern release of information about | included, such as what policies govern release of information about | |||
| the principal to the RP and what policies govern the RP's use of this | the principal to the RP and what policies govern the RP's use of this | |||
| information. While rules determination is ultimately a business | information. While rules determination is ultimately a business | |||
| function, it has significant impact on the technical exchanges. The | function, it has significant impact on the technical exchanges. The | |||
| protocols need to communicate the result of authorization. When | protocols need to communicate the result of authorization. When | |||
| multiple sets of rules are possible, the protocol must disambiguate | multiple sets of rules are possible, the protocol must disambiguate | |||
| which set of rules are in play. Some rules have technical | which set of rules are in play. Some rules have technical | |||
| enforcement mechanisms; for example in some federations intermediates | enforcement mechanisms; for example in some federations intermediates | |||
| validate information that is being communicated within the | validate information that is being communicated within the | |||
| federation. | federation. | |||
| Several deployment approaches are possible. These can most easily be | ABFAB has not formally defined any part of discovery at this point. | |||
| The process of specifying and evaluating the business rules and | ||||
| technical policies is too complex to provide a simple framework. | ||||
| There is not currently a way to know if a AAA proxy is able to | ||||
| communicate with a specific IdP, although this may change with some | ||||
| of the routing protocols that are being considered. At the present | ||||
| time, the discovery process is going to be a manual configuration | ||||
| process. | ||||
| 2.1.3. Routing and Technical Trust | ||||
| Several approaches to having messages routed through the federation | ||||
| substrate are possible. These routing methods can most easily be | ||||
| classified based on the mechanism for technical trust that is used. | classified based on the mechanism for technical trust that is used. | |||
| The choice of technical trust mechanism constrains how rules | The choice of technical trust mechanism constrains how rules | |||
| determination is implemented. Regardless of what deployment strategy | determination is implemented. Regardless of what deployment strategy | |||
| is chosen, it is important that the technical trust mechanism | is chosen, it is important that the technical trust mechanism | |||
| constrain the names of both parties to the exchange. The trust | constrain the names of both parties to the exchange. The trust | |||
| mechanism ought to ensure that the entity acting as IDP for a given | mechanism ought to ensure that the entity acting as IdP for a given | |||
| NAI is permitted to be the IDP for that realm, and that any service | NAI is permitted to be the IdP for that realm, and that any service | |||
| name claimed by the RP is permitted to be claimed by that entity. | name claimed by the RP is permitted to be claimed by that entity. | |||
| Here are the categories of technical trust determination: | Here are the categories of technical trust determination: | |||
| AAA Proxy: The simplest model is that an RP supports a request | AAA Proxy: | |||
| directly to an AAA proxy. The hop-by-hop integrity protection of | The simplest model is that an RP supports a request directly to an | |||
| the AAA fabric provides technical trust. An RP can submit a | AAA proxy. The hop-by-hop integrity protection of the AAA fabric | |||
| request directly to a federation. Alternatively, a federation | provides technical trust. An RP can submit a request directly to | |||
| disambiguation fabric can be used. Such a fabric takes | a federation. Alternatively, a federation disambiguation fabric | |||
| information about what federations the RP is part of and what | can be used. Such a fabric takes information about what | |||
| federations the IDP is part of and routes a message to the | federations the RP is part of and what federations the IdP is part | |||
| appropriate federation. The routing of messages across the fabric | of and routes a message to the appropriate federation. The | |||
| plus attributes added to requests and responses provides rules | routing of messages across the fabric plus attributes added to | |||
| determination. For example, when a disambiguation fabric routes a | requests and responses provides rules determination. For example, | |||
| message to a given federation, that federation's rules are chosen. | when a disambiguation fabric routes a message to a given | |||
| Naming is enforced as messages travel across the fabric. The | federation, that federation's rules are chosen. Naming is | |||
| entities near the RP confirm its identity and validate names it | enforced as messages travel across the fabric. The entities near | |||
| claims. The fabric routes the message towards the appropriate | the RP confirm its identity and validate names it claims. The | |||
| IDP, validating the IDP's name in the process. The routing can be | fabric routes the message towards the appropriate IdP, validating | |||
| statically configured. Alternatively a routing protocol could be | the IdP's name in the process. The routing can be statically | |||
| developed to exchange reachability information about given IDPs | configured. Alternatively a routing protocol could be developed | |||
| and to apply policy across the AAA fabric. Such a routing | to exchange reachability information about given IdPs and to apply | |||
| protocol could flood naming constraints to the appropriate points | policy across the AAA fabric. Such a routing protocol could flood | |||
| in the fabric. | naming constraints to the appropriate points in the fabric. | |||
| Trust Broker: Instead of routing messages through AAA proxies, some | Trust Broker: | |||
| trust broker could establish keys between entities near the RP and | Instead of routing messages through AAA proxies, some trust broker | |||
| entities near the IDP. The advantage of this approach is | could establish keys between entities near the RP and entities | |||
| efficiency of message handling. Fewer entities are needed to be | near the IdP. The advantage of this approach is efficiency of | |||
| involved for each message. Security may be improved by sending | message handling. Fewer entities are needed to be involved for | |||
| individual messages over fewer hops. Rules determination involves | each message. Security may be improved by sending individual | |||
| decisions made by trust brokers about what keys to grant. Also, | messages over fewer hops. Rules determination involves decisions | |||
| associated with each credential is context about rules and about | made by trust brokers about what keys to grant. Also, associated | |||
| other aspects of technical trust including names that may be | with each credential is context about rules and about other | |||
| claimed. A routing protocol similar to the one for AAA proxies is | aspects of technical trust including names that may be claimed. A | |||
| likely to be useful to trust brokers in flooding rules and naming | routing protocol similar to the one for AAA proxies is likely to | |||
| be useful to trust brokers in flooding rules and naming | ||||
| constraints. | constraints. | |||
| Global Credential: A global credential such as a public key and | Global Credential: | |||
| certificate in a public key infrastructure can be used to | A global credential such as a public key and certificate in a | |||
| establish technical trust. A directory or distributed database | public key infrastructure can be used to establish technical | |||
| such as the Domain Name System is needed for an RP to discover | trust. A directory or distributed database such as the Domain | |||
| what endpoint to contact for a given NAI. Certificates provide a | Name System is used by the RP to discover the endpoint to contact | |||
| place to store information about rules determination and naming | for a given NAI. Either the database or certificates can provide | |||
| constraints. Provided that no intermediates are required and that | a place to store information about rules determination and naming | |||
| the RP and IDP are sufficient to enforce and determine rules, | constraints. Provided that no intermediates are required (or | |||
| rules determination is reasonably simple. However applying | appear to be required) and that the RP and IdP are sufficient to | |||
| certain rules is likely to be quite complex. For example if | enforce and determine rules, rules determination is reasonably | |||
| multiple sets of rules are possible between an IDP and RP, | simple. However applying certain rules is likely to be quite | |||
| confirming the correct set is used may be difficult. This is | complex. For example if multiple sets of rules are possible | |||
| particularly true if intermediates are involved in making the | between an IdP and RP, confirming the correct set is used may be | |||
| decision. Also, to the extent that directory information needs to | difficult. This is particularly true if intermediates are | |||
| be trusted, rules determination may be more complex. | involved in making the decision. Also, to the extent that | |||
| directory information needs to be trusted, rules determination may | ||||
| be more complex. | ||||
| Real-world deployments are likely to be mixtures of these basic | Real-world deployments are likely to be mixtures of these basic | |||
| approaches. For example, it will be quite common for an RP to route | approaches. For example, it will be quite common for an RP to route | |||
| traffic to a AAA proxy within an organization. That proxy MAY use | traffic to a AAA proxy within an organization. That proxy could then | |||
| any of the three methods to get closer to the IDP. It is also likely | use any of the three methods to get closer to the IdP. It is also | |||
| that rather than being directly reachable, an IDP may have a proxy | likely that rather than being directly reachable, the IdP may have a | |||
| within its organization. Federations MAY provide a traditional AAA | proxy on the edge of its organization. Federations will likely | |||
| proxy interface even if they also provide another mechanism for | provide a traditional AAA proxy interface even if they also provide | |||
| increased efficiency or security. | another mechanism for increased efficiency or security. | |||
| 2.1.4. SAML Assertions | ||||
| For the traditional use of AAA frameworks, network access, the only | ||||
| requirement that was necessary to grant access was an affirmative | ||||
| response from the IdP. In the ABFAB world, the RP may need to get | ||||
| additional information about the client before granting access. | ||||
| ABFAB therefore has a requirement that it can transport an arbitrary | ||||
| set of attributes about the client from the IdP to the RP. | ||||
| Security Assertions Markup Language (SAML) [OASIS.saml-core-2.0-os] | ||||
| was designed in order to carry an extensible set of attributes about | ||||
| a subject. Since SAML is extensible in the attribute space, ABFAB | ||||
| has no immediate needs to update the core SAML specifications for our | ||||
| work. It will be necessary to update IdPs that need to return SAML | ||||
| assertions to IdPs and for both the IdP and the RP to implement a new | ||||
| SAML profile designed to carry SAML assertions in AAA. The new | ||||
| profile can be found in RFCXXXX [I-D.ietf-abfab-aaa-saml]. | ||||
| There are two issues that need to be highlighted: | ||||
| o The security of SAML Assertions. | ||||
| o Namespaces and mapping of SAML attributes. | ||||
| SAML Assertions have an optional signature that can be used to | ||||
| protect and provide origination of the assertion. These signatures | ||||
| are normally based on asymmetric key operations and require that the | ||||
| verifier be able to check not only the cryptographic operation, but | ||||
| also the binding of the originators name and the public key. In a | ||||
| federated environment it will not always be possible for the RP to | ||||
| validate the binding, for this reason the technical trust established | ||||
| in the federation is used as an alternate method of validating the | ||||
| origination and integrity of the SAML Assertion. | ||||
| Attributes placed in SAML Assertions can have different namespaces | ||||
| assigned to the same name. In many, but not all, cases a the | ||||
| federation agreements will determine what attributes can be used in a | ||||
| SAML statement. This means that the RP needs to map from the | ||||
| federation names, types and semantics into the onces that the | ||||
| policies of the RP are written in. In other cases the federation | ||||
| substrate may modify the SAML Assertions in transit to do the | ||||
| necessary namespace, naming and semantic mappings as the assertion | ||||
| crosses the different boundaries in the federation. If the proxies | ||||
| are modifying the SAML Assertion, then will obviously remove any | ||||
| signatures on the SAML Assertions as they would no longer validate. | ||||
| In this case the technical trust is the required mechanism for | ||||
| validating the integrity of the assertion. In the last case, the | ||||
| attributes may still be in the namespace of the originating IdP. | ||||
| When this occurs the RP will need to get the required mapping | ||||
| operations from the federation agreements and do the appropriate | ||||
| mappings itself. | ||||
| 2.2. Client To Identity Provider | 2.2. Client To Identity Provider | |||
| Looking at the communications between the client and the IdP, the | ||||
| following items need to be dealt with: | ||||
| o The client and the IdP need to mutually authenticate each other. | ||||
| o The client and the IdP need to mutually agree on the identity of | ||||
| the RP. | ||||
| ABFAB selected EAP for the purposes of mutual authentication and | ||||
| assisted in creating some new EAP channel binding documents for | ||||
| dealing with determining the identity of the RP. ABFAB has defined | ||||
| and specified a new channel binding mechanism that operates as an EAP | ||||
| method for the purpose of agreeing on the identity of the RP. | ||||
| 2.2.1. Extensible Authentication Protocol (EAP) | ||||
| Traditional web federation does not describe how a subject interacts | Traditional web federation does not describe how a subject interacts | |||
| with an identity provider for authentication. As a result, this | with an identity provider for authentication. As a result, this | |||
| communication is not standardized. There are several disadvantages | communication is not standardized. There are several disadvantages | |||
| to this approach. It is difficult to have subjects that are machines | to this approach. It is difficult to have subjects that are machines | |||
| rather than humans that use some sort of programatic credential. In | rather than humans that use some sort of programatic credential. In | |||
| addition, use of browsers for authentication restricts the deployment | addition, use of browsers for authentication restricts the deployment | |||
| of more secure forms of authentication beyond plaintext username and | of more secure forms of authentication beyond plaintext username and | |||
| password known by the server. In a number of cases the | password known by the server. In a number of cases the | |||
| authentication interface may be presented before the subject has | authentication interface may be presented before the subject has | |||
| adequately validated they are talking to the intended server. By | adequately validated they are talking to the intended server. By | |||
| skipping to change at page 20, line 35 ¶ | skipping to change at page 23, line 18 ¶ | |||
| and successfully deployed technology, namely by the Extensible | and successfully deployed technology, namely by the Extensible | |||
| Authentication Protocol (EAP) framework [RFC3748]. Figure 2 | Authentication Protocol (EAP) framework [RFC3748]. Figure 2 | |||
| illustrates the integration graphically. | illustrates the integration graphically. | |||
| EAP is an end-to-end framework; it provides for two-way communication | EAP is an end-to-end framework; it provides for two-way communication | |||
| between a peer (i.e,service client or principal) through the | between a peer (i.e,service client or principal) through the | |||
| authenticator (i.e., service provider) to the back-end (i.e., | authenticator (i.e., service provider) to the back-end (i.e., | |||
| identity provider). Conveniently, this is precisely the | identity provider). Conveniently, this is precisely the | |||
| communication path that is needed for federated identity. Although | communication path that is needed for federated identity. Although | |||
| EAP support is already integrated in AAA systems (see [RFC3579] and | EAP support is already integrated in AAA systems (see [RFC3579] and | |||
| [RFC4072]) several challenges remain: one is to carry EAP payloads | [RFC4072]) several challenges remain: | |||
| from the end host to the relying party. Another is to verify | ||||
| statements the relying party has made to the subject, confirm these | o The first is how to carry EAP payloads from the end host to the | |||
| statements are consistent with statements made to the identity | relying party. | |||
| provider and confirm all the above are consistent with the federation | ||||
| and any federation-specific policy or configuration. Another | o Another is to verify statements the relying party has made to the | |||
| challenge is choosing which identity provider to use for which | subject, confirm these statements are consistent with statements | |||
| service. | made to the identity provider and confirm all the above are | |||
| consistent with the federation and any federation-specific policy | ||||
| or configuration. | ||||
| o Another challenge is choosing which identity provider to use for | ||||
| which service. | ||||
| 2.2.2. Channel Binding | ||||
| The client knows, in theory, the name of the RP that it attempted to | ||||
| connect to, however in the event that an attacker has intercepted the | ||||
| protocol, the client and the IdP need to be able to detect this | ||||
| situation. A general overview of the problem can be found in | ||||
| [I-D.hartman-emu-mutual-crypto-bind]. | ||||
| The recommended way to deal with channel binding can be found in RFC | ||||
| XXXX [I-D.ietf-emu-chbind]. | ||||
| 2.3. Client to Relying Party | 2.3. Client to Relying Party | |||
| The final set of interactions between parties to consider are those | ||||
| between the client and the RP. In some ways this is the most complex | ||||
| set since at least part of it is outside the scope of the ABFAB work. | ||||
| The interactions between these parties include: | ||||
| o Running the protocol that implements the web service that is | ||||
| provided by the RP and desired by the client. | ||||
| o Authenticating the client to the RP and the RP to the client. | ||||
| o Providing the necessary security services to the web service | ||||
| protocol that it needs beyond authentication. | ||||
| 2.3.1. GSS-API | ||||
| One of the remaining layers is responsible for integration of | One of the remaining layers is responsible for integration of | |||
| federated authentication into the application. There are a number of | federated authentication into the application. There are a number of | |||
| approaches that applications have adopted for security. So, there | approaches that applications have adopted for security. So, there | |||
| may need to be multiple strategies for integration of federated | may need to be multiple strategies for integration of federated | |||
| authentication into applications. However, we have started with a | authentication into applications. However, we have started with a | |||
| strategy that provides integration to a large number of application | strategy that provides integration to a large number of application | |||
| protocols. | protocols. | |||
| Many applications such as SSH [RFC4462], NFS [RFC2203], DNS [RFC3645] | Many applications such as SSH [RFC4462], NFS [RFC2203], DNS [RFC3645] | |||
| and several non-IETF applications support the Generic Security | and several non-IETF applications support the Generic Security | |||
| skipping to change at page 23, line 5 ¶ | skipping to change at page 25, line 23 ¶ | |||
| integration. What does this mean from a protocol standpoint and how | integration. What does this mean from a protocol standpoint and how | |||
| does this relate to other layers? This means we need to design a | does this relate to other layers? This means we need to design a | |||
| concrete GSS-API mechanism. We have chosen to use a GSS-API | concrete GSS-API mechanism. We have chosen to use a GSS-API | |||
| mechanism that encapsulates EAP authentication. So, GSS-API (and | mechanism that encapsulates EAP authentication. So, GSS-API (and | |||
| SASL) encapsulate EAP between the end-host and the service. The AAA | SASL) encapsulate EAP between the end-host and the service. The AAA | |||
| framework encapsulates EAP between the relying party and the identity | framework encapsulates EAP between the relying party and the identity | |||
| provider. The GSS-API mechanism includes rules about how principals | provider. The GSS-API mechanism includes rules about how principals | |||
| and services are named as well as per-message security and other | and services are named as well as per-message security and other | |||
| facilities required by the applications we wish to support. | facilities required by the applications we wish to support. | |||
| 2.3.2. Protocol Transport | ||||
| The transport of data between the client and the relying party is not | ||||
| provided by GSS-API. GSS-API creates and consumes messages, but it | ||||
| does not provide the transport itself, instead the protocol using | ||||
| GSS-API needs to provide the transport. In many cases HTTP or HTTPS | ||||
| is used for this transport, but other transports are perfectly | ||||
| acceptable. The core GSS-API document [RFC2743] provides some | ||||
| details on what requirements exist. | ||||
| In addition we highlight the following: | ||||
| o The transport does not need to provide either privacy or | ||||
| integrity. After GSS-EAP has finished negotiation, GSS-API can be | ||||
| used to provide both services. If the negotiation process itself | ||||
| needs protection from eavesdroppers then the transport would need | ||||
| to provide the necessary services. | ||||
| o The transport needs to provide reliable transport of the messages. | ||||
| o The transport needs to ensure that tokens are delivered in order | ||||
| during the negotiation process. | ||||
| o GSS-API messages need to be delivered atomically. If the | ||||
| transport breaks up a message it must also reassemble the message | ||||
| before delivery. | ||||
| 3. Application Security Services | 3. Application Security Services | |||
| One of the key goals is to integrate federated authentication into | One of the key goals is to integrate federated authentication into | |||
| existing application protocols and where possible, existing | existing application protocols and where possible, existing | |||
| implementations of these protocols. Another goal is to perform this | implementations of these protocols. Another goal is to perform this | |||
| integration while meeting the best security practices of the | integration while meeting the best security practices of the | |||
| technologies used to perform the integration. This section describes | technologies used to perform the integration. This section describes | |||
| security services and properties required by the EAP GSS-API | security services and properties required by the EAP GSS-API | |||
| mechanism in order to meet these goals. This information could be | mechanism in order to meet these goals. This information could be | |||
| viewed as specific to that mechanism. However, other future | viewed as specific to that mechanism. However, other future | |||
| skipping to change at page 24, line 37 ¶ | skipping to change at page 27, line 37 ¶ | |||
| 3.2. GSS-API Channel Binding | 3.2. GSS-API Channel Binding | |||
| [RFC5056] defines a concept of channel binding to prevent man-in-the- | [RFC5056] defines a concept of channel binding to prevent man-in-the- | |||
| middle attacks. It is common to provide SASL and GSS-API with | middle attacks. It is common to provide SASL and GSS-API with | |||
| another layer to provide transport security; Transport Layer Security | another layer to provide transport security; Transport Layer Security | |||
| (TLS) is the most common such layer. TLS provides its own server | (TLS) is the most common such layer. TLS provides its own server | |||
| authentication. However there are a variety of situations where this | authentication. However there are a variety of situations where this | |||
| authentication is not checked for policy or usability reasons. Even | authentication is not checked for policy or usability reasons. Even | |||
| when it is checked, if the trust infrastructure behind the TLS | when it is checked, if the trust infrastructure behind the TLS | |||
| authentication is different from the trust infrastructure behind the | authentication is different from the trust infrastructure behind the | |||
| GSS-API mutual authentication. If the endpoints of the GSS-API | GSS-API mutual authentication then confirming the end-points using | |||
| authentication are different than the endpoints of the lower layer, | both trust infrastructures is likely to enhance security. If the | |||
| this is a strong indication of a problem such as a man-in-the-middle | endpoints of the GSS-API authentication are different than the | |||
| attack. Channel binding provides a facility to determine whether | endpoints of the lower layer, this is a strong indication of a | |||
| these endpoints are the same. | problem such as a man-in-the-middle attack. Channel binding provides | |||
| a facility to determine whether these endpoints are the same. | ||||
| The GSS-EAP mechanism needs to support channel binding. When an | The GSS-EAP mechanism needs to support channel binding. When an | |||
| application provides channel binding data, the mechanism needs to | application provides channel binding data, the mechanism needs to | |||
| confirm this is the same on both sides consistent with the GSS-API | confirm this is the same on both sides consistent with the GSS-API | |||
| specification. XXXThere is an open question here as to the details; | specification. XXXThere is an open question here as to the details; | |||
| today RFC 5554 governs. We could use that and the current draft | today RFC 5554 governs. We could use that and the current draft | |||
| assumes we will. However in Beijing we became aware of some changes | assumes we will. However in Beijing we became aware of some changes | |||
| to these details that would make life much better for GSS | to these details that would make life much better for GSS | |||
| authentication of HTTP. We should resolve this with kitten and | authentication of HTTP. We should resolve this with kitten and | |||
| replace this note with a reference to the spec we're actually | replace this note with a reference to the spec we're actually | |||
| skipping to change at page 36, line 43 ¶ | skipping to change at page 39, line 43 ¶ | |||
| [I-D.iab-privacy-terminology] | [I-D.iab-privacy-terminology] | |||
| Hansen, M., Tschofenig, H., Smith, R., and A. Cooper, | Hansen, M., Tschofenig, H., Smith, R., and A. Cooper, | |||
| "Privacy Terminology and Concepts", | "Privacy Terminology and Concepts", | |||
| draft-iab-privacy-terminology-01 (work in progress), | draft-iab-privacy-terminology-01 (work in progress), | |||
| March 2012. | March 2012. | |||
| [I-D.ietf-abfab-gss-eap] | [I-D.ietf-abfab-gss-eap] | |||
| Hartman, S. and J. Howlett, "A GSS-API Mechanism for the | Hartman, S. and J. Howlett, "A GSS-API Mechanism for the | |||
| Extensible Authentication Protocol", | Extensible Authentication Protocol", | |||
| draft-ietf-abfab-gss-eap-07 (work in progress), May 2012. | draft-ietf-abfab-gss-eap-08 (work in progress), June 2012. | |||
| [I-D.ietf-abfab-aaa-saml] | ||||
| Howlett, J. and S. Hartman, "A RADIUS Attribute, Binding | ||||
| and Profiles for SAML", draft-ietf-abfab-aaa-saml-03 (work | ||||
| in progress), March 2012. | ||||
| [I-D.ietf-emu-chbind] | ||||
| Hartman, S., Clancy, T., and K. Hoeper, "Channel Binding | ||||
| Support for EAP Methods", draft-ietf-emu-chbind-16 (work | ||||
| in progress), May 2012. | ||||
| 10.2. Informative References | 10.2. Informative References | |||
| [RFC2903] de Laat, C., Gross, G., Gommans, L., Vollbrecht, J., and | ||||
| D. Spence, "Generic AAA Architecture", RFC 2903, | ||||
| August 2000. | ||||
| [I-D.nir-tls-eap] | [I-D.nir-tls-eap] | |||
| Nir, Y., Sheffer, Y., Tschofenig, H., and P. Gutmann, "A | Nir, Y., Sheffer, Y., Tschofenig, H., and P. Gutmann, "A | |||
| Flexible Authentication Framework for the Transport Layer | Flexible Authentication Framework for the Transport Layer | |||
| Security (TLS) Protocol using the Extensible | Security (TLS) Protocol using the Extensible | |||
| Authentication Protocol (EAP)", draft-nir-tls-eap-13 (work | Authentication Protocol (EAP)", draft-nir-tls-eap-13 (work | |||
| in progress), December 2011. | in progress), December 2011. | |||
| [I-D.ietf-oauth-v2] | [I-D.ietf-oauth-v2] | |||
| Hammer-Lahav, E., Recordon, D., and D. Hardt, "The OAuth | Hammer-Lahav, E., Recordon, D., and D. Hardt, "The OAuth | |||
| 2.0 Authorization Framework", draft-ietf-oauth-v2-26 (work | 2.0 Authorization Framework", draft-ietf-oauth-v2-28 (work | |||
| in progress), May 2012. | in progress), June 2012. | |||
| [I-D.iab-privacy-considerations] | [I-D.iab-privacy-considerations] | |||
| Cooper, A., Tschofenig, H., Aboba, B., Peterson, J., and | Cooper, A., Tschofenig, H., Aboba, B., Peterson, J., and | |||
| J. Morris, "Privacy Considerations for Internet | J. Morris, "Privacy Considerations for Internet | |||
| Protocols", draft-iab-privacy-considerations-02 (work in | Protocols", draft-iab-privacy-considerations-02 (work in | |||
| progress), March 2012. | progress), March 2012. | |||
| [RFC4017] Stanley, D., Walker, J., and B. Aboba, "Extensible | [RFC4017] Stanley, D., Walker, J., and B. Aboba, "Extensible | |||
| Authentication Protocol (EAP) Method Requirements for | Authentication Protocol (EAP) Method Requirements for | |||
| Wireless LANs", RFC 4017, March 2005. | Wireless LANs", RFC 4017, March 2005. | |||
| skipping to change at page 38, line 21 ¶ | skipping to change at page 41, line 36 ¶ | |||
| Cantor, S., Kemp, J., Philpott, R., and E. Maler, | Cantor, S., Kemp, J., Philpott, R., and E. Maler, | |||
| "Assertions and Protocol for the OASIS Security Assertion | "Assertions and Protocol for the OASIS Security Assertion | |||
| Markup Language (SAML) V2.0", OASIS Standard saml-core- | Markup Language (SAML) V2.0", OASIS Standard saml-core- | |||
| 2.0-os, March 2005. | 2.0-os, March 2005. | |||
| [RFC2904] Vollbrecht, J., Calhoun, P., Farrell, S., Gommans, L., | [RFC2904] Vollbrecht, J., Calhoun, P., Farrell, S., Gommans, L., | |||
| Gross, G., de Bruijn, B., de Laat, C., Holdrege, M., and | Gross, G., de Bruijn, B., de Laat, C., Holdrege, M., and | |||
| D. Spence, "AAA Authorization Framework", RFC 2904, | D. Spence, "AAA Authorization Framework", RFC 2904, | |||
| August 2000. | August 2000. | |||
| [I-D.hartman-emu-mutual-crypto-bind] | ||||
| Hartman, S., Wasserman, M., and D. Zhang, "EAP Mutual | ||||
| Cryptographic Binding", | ||||
| draft-hartman-emu-mutual-crypto-bind-00 (work in | ||||
| progress), March 2012. | ||||
| [WS-TRUST] | [WS-TRUST] | |||
| Lawrence, K., Kaler, C., Nadalin, A., Goodner, M., Gudgin, | Lawrence, K., Kaler, C., Nadalin, A., Goodner, M., Gudgin, | |||
| M., Barbir, A., and H. Granqvist, "WS-Trust 1.4", OASIS | M., Barbir, A., and H. Granqvist, "WS-Trust 1.4", OASIS | |||
| Standard ws-trust-200902, February 2009, <http:// | Standard ws-trust-200902, February 2009, <http:// | |||
| docs.oasis-open.org/ws-sx/ws-trust/v1.4/ws-trust.html>. | docs.oasis-open.org/ws-sx/ws-trust/v1.4/ws-trust.html>. | |||
| URIs | URIs | |||
| [1] <http://www.openid.net> | [1] <http://www.openid.net> | |||
| [2] <http://www.eduroam.org> | [2] <http://www.eduroam.org> | |||
| Editorial Comments | ||||
| [anchor4] JLS: Add section on discussion EAP methods and | ||||
| requirements there on | ||||
| [anchor9] JLS: I don't believe this is a true statement - check it | ||||
| with Josh and Sam. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Josh Howlett | Josh Howlett | |||
| JANET(UK) | JANET(UK) | |||
| Lumen House, Library Avenue, Harwell | Lumen House, Library Avenue, Harwell | |||
| Oxford OX11 0SG | Oxford OX11 0SG | |||
| UK | UK | |||
| Phone: +44 1235 822363 | Phone: +44 1235 822363 | |||
| Email: Josh.Howlett@ja.net | Email: Josh.Howlett@ja.net | |||
| End of changes. 81 change blocks. | ||||
| 259 lines changed or deleted | 469 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||