| < draft-ietf-abfab-arch-00.txt | draft-ietf-abfab-arch-01.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: January 30, 2012 Painless Security | Expires: September 11, 2012 Painless Security | |||
| H. Tschofenig | H. Tschofenig | |||
| Nokia Siemens Networks | Nokia Siemens Networks | |||
| E. Lear | E. Lear | |||
| Cisco Systems GmbH | Cisco Systems GmbH | |||
| July 29, 2011 | March 10, 2012 | |||
| Application Bridging for Federated Access Beyond Web (ABFAB) | Application Bridging for Federated Access Beyond Web (ABFAB) | |||
| Architecture | Architecture | |||
| draft-ietf-abfab-arch-00.txt | draft-ietf-abfab-arch-01.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 | |||
| the commonly used security mechanisms for both federated and non- | the commonly used security mechanisms for both federated and non- | |||
| federated access management, including RADIUS, Diameter, GSS, GS2, | federated access management, including the Remote Authentication Dial | |||
| EAP and SAML. The architecture addresses the problem of federated | In User Service (RADIUS) and the Diameter protocol, the Generic | |||
| access management to primarily non-web-based services, in a manner | Security Service (GSS), the GS2 family, the Extensible Authentication | |||
| that will scale to large numbers of identity providers, relying | Protocol (EAP) and the Security Assertion Markup Language (SAML). | |||
| parties, and federations. | The architecture addresses the problem of federated access management | |||
| to primarily non-web-based services, in a manner that will scale to | ||||
| large numbers of identity providers, relying parties, and | ||||
| federations. | ||||
| Status of this Memo | Status of this Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| 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 September 11, 2012. | ||||
| This Internet-Draft will expire on January 30, 2012. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2011 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 | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| 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 . . . . . . . . . . . . . . . . 5 | 1.2. An Overview of Federation . . . . . . . . . . . . . . . . 5 | |||
| 1.3. Challenges to Contemporary Federation . . . . . . . . . . 8 | 1.3. Challenges to Contemporary Federation . . . . . . . . . . 8 | |||
| 1.4. An Overview of ABFAB-based Federation . . . . . . . . . . 8 | 1.4. An Overview of ABFAB-based Federation . . . . . . . . . . 8 | |||
| 1.5. Design Goals . . . . . . . . . . . . . . . . . . . . . . . 11 | 1.5. Design Goals . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 1.6. Use of AAA . . . . . . . . . . . . . . . . . . . . . . . . 11 | 1.6. Use of AAA . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 2. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 2. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 2.1. Federation Substrate . . . . . . . . . . . . . . . . . . . 13 | 2.1. Relying Party to Identity Provider . . . . . . . . . . . . 14 | |||
| 2.1.1. Discovery, Rules Determination, and Technical Trust . 14 | 2.2. Client To Identity Provider . . . . . . . . . . . . . . . 17 | |||
| 2.2. Subject To Identity Provider . . . . . . . . . . . . . . . 16 | 2.3. Client to Relying Party . . . . . . . . . . . . . . . . . 18 | |||
| 2.3. Application to Service . . . . . . . . . . . . . . . . . . 17 | ||||
| 2.4. Personalization Layer . . . . . . . . . . . . . . . . . . 19 | ||||
| 2.5. Tieing Layers Together . . . . . . . . . . . . . . . . . . 19 | ||||
| 3. Application Security Services . . . . . . . . . . . . . . . . 21 | 3. Application Security Services . . . . . . . . . . . . . . . . 21 | |||
| 3.1. Server (Mutual) Authentication . . . . . . . . . . . . . . 21 | 3.1. Authentication . . . . . . . . . . . . . . . . . . . . . . 21 | |||
| 3.2. GSS-API Channel Binding . . . . . . . . . . . . . . . . . 22 | 3.2. GSS-API Channel Binding . . . . . . . . . . . . . . . . . 22 | |||
| 3.3. Host-Based Service Names . . . . . . . . . . . . . . . . . 23 | 3.3. Host-Based Service Names . . . . . . . . . . . . . . . . . 23 | |||
| 3.4. Per-Message Tokens . . . . . . . . . . . . . . . . . . . . 24 | 3.4. Per-Message Tokens . . . . . . . . . . . . . . . . . . . . 24 | |||
| 4. Future Work: Attribute Providers . . . . . . . . . . . . . . . 25 | 4. Future Work: Attribute Providers . . . . . . . . . . . . . . . 25 | |||
| 5. Privacy Considerations . . . . . . . . . . . . . . . . . . . . 26 | 5. Privacy Considerations . . . . . . . . . . . . . . . . . . . . 26 | |||
| 5.1. What entities collect and use data? . . . . . . . . . . . 26 | 5.1. What Entities collect and use Data? . . . . . . . . . . . 26 | |||
| 5.2. Relationship between User's and other Entities . . . . . . 27 | 5.2. Relationship between User's and other Entities . . . . . . 27 | |||
| 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? . . . . . . . . . . . . . . . . . . . . . . . . 27 | Collected? . . . . . . . . . . . . . . . . . . . . . . . . 27 | |||
| 5.4. What is the Identification Level of the Data? . . . . . . 27 | 5.4. What is the Identification Level of the Data? . . . . . . 27 | |||
| 5.5. Privacy Challenges . . . . . . . . . . . . . . . . . . . . 28 | 5.5. Privacy Challenges . . . . . . . . . . . . . . . . . . . . 28 | |||
| 6. Deployment Considerations . . . . . . . . . . . . . . . . . . 29 | 6. Deployment Considerations . . . . . . . . . . . . . . . . . . 29 | |||
| 6.1. EAP Channel Binding . . . . . . . . . . . . . . . . . . . 29 | 6.1. EAP Channel Binding . . . . . . . . . . . . . . . . . . . 29 | |||
| 6.2. AAA Proxy Behavior . . . . . . . . . . . . . . . . . . . . 29 | 6.2. AAA Proxy Behavior . . . . . . . . . . . . . . . . . . . . 29 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 30 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 30 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31 | |||
| skipping to change at page 5, line 14 ¶ | skipping to change at page 5, line 14 ¶ | |||
| to that particular Relying Party. Federated access management | to that particular Relying Party. Federated access management | |||
| therefore provides various strategies for protecting the Subject's | therefore provides various strategies for protecting the Subject's | |||
| privacy. Other privacy aspects typically of concern are the | privacy. Other privacy aspects typically of concern are the | |||
| policy for releasing personal data about the Subjectfrom the IdP | policy for releasing personal data about the Subjectfrom the IdP | |||
| to the RP, the purpose of the usage, the retention period of the | to the RP, the purpose of the usage, the retention period of the | |||
| data, and many more. | 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 that an affiliation or 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 provision this information, either on request by by the | the IdP to provision this information, either on request by the RP | |||
| RP or unsolicited. | or unsolicited. | |||
| 1.1. Terminology | 1.1. Terminology | |||
| This document uses identity management and privacy terminology from | This document uses identity management and privacy terminology from | |||
| [I-D.hansen-privacy-terminology]. In particular, this document uses | [I-D.iab-privacy-terminology]. In particular, this document uses the | |||
| the terms pseudonymity, unlinkability, anonymity, and identity | terms identity provider, relying party, (data) subject, identifier, | |||
| management. | pseudonymity, unlinkability, and anonymity. | |||
| We make one note about the IdP: in this architecture, the IdP | In this architecture the IdP consists of the following components: an | |||
| consists of the following components: an EAP server, a radius server, | EAP server, a RADIUS or a Diameter server, and optionally a SAML | |||
| and optionally a SAML Assertion service. The IdP is also responsible | Assertion service. | |||
| for authentication, even though it may rely upon other components | ||||
| within a domain for such an operation. The reader is advised that | This document uses the term Network Access Identifier (NAI), as | |||
| for succinctness, in most cases the term IdP is used, except where | defined in [RFC4282]. | |||
| additional clarity seems appropriate. | ||||
| 1.2. An Overview of Federation | 1.2. An Overview of Federation | |||
| In the previous section we introduced the following actors: | In the previous section we introduced the following actors: | |||
| o the Subject, | o the Subject, | |||
| o the Identity Provider, and | o the Identity Provider, and | |||
| o the Relying Party. | o the Relying Party. | |||
| These entities and their relationships are illustrated graphically in | These entities and their relationships are illustrated graphically in | |||
| Figure 1. | Figure 1. | |||
| ,----------\ ,---------\ | ,----------\ ,---------\ | |||
| | Identity | Federation | Relying | | | Identity | Federation | Relying | | |||
| | Provider + <-------------------> + Party | | | Provider + <-------------------> + Party | | |||
| `----------' '---------' | `----------' '---------' | |||
| < | < | |||
| \ | \ | |||
| \ Identity | \ Authentication | |||
| \ management | \ | |||
| \ | \ | |||
| \ | \ | |||
| \ | \ | |||
| \ +------------+ | \ +---------+ | |||
| \ | | | \ | | O | |||
| v| Subject | | v| Client | \|/ Subject | |||
| | | | | | | | |||
| +------------+ | +---------+ / \ | |||
| Figure 1: General federation framework model | Figure 1: Entities and their Relationships | |||
| A federation typically this relationship encompasses operational | A federation typically this relationship encompasses operational | |||
| specifications and legal rules: | specifications and legal rules: | |||
| Operational Specifications: | Operational Specifications: | |||
| This includes the technical specifications (e.g. protocols used to | This includes the technical specifications (e.g. protocols used to | |||
| communicate between the three parties), process standards, | 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 | |||
| skipping to change at page 7, line 18 ¶ | skipping to change at page 7, line 18 ¶ | |||
| 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 are sometimes required to deploy complex 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, while in other deployments | the required technical functionality. In other deployments fewer | |||
| those are missing. | 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 credentialling the Subject (for example, | |||
| at time of enrollment in the context of employment within an | at 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 | |||
| skipping to change at page 7, line 50 ¶ | skipping to change at page 7, line 50 ¶ | |||
| It is, for example, entirely compatible with a relationship between | It is, for example, entirely compatible with a relationship between | |||
| the IdP and Subject that is only as weak as completing a web form and | the IdP and Subject that is only as weak as completing a web form and | |||
| confirming the verification email. | confirming the verification email. | |||
| 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, | Similarly it is also important to note that, in the general case, | |||
| there is no requirement of a long-term relationship betweem the RP | there is no requirement of a long-term relationship between the RP | |||
| and the Subject. This is a property of federation that yields many | and the Subject. This is a property of federation that yields many | |||
| of its benefits. However, federation does not preclude the | of its benefits. However, federation does not preclude the | |||
| possibility relationship between the RP and the Subject, should needs | possibility of a pre-existing relationship existing between the RP | |||
| dictate. | and the Subject, nor that they may use the introduction to create a | |||
| new long-term relationship 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 Subject and in | might indeed be a human behind the device denoted as Subject 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 such federated services has proliferated, however, | As the number of federated services has proliferated, however, the | |||
| the role of the individual has become ambiguous in certain | role of the individual can become ambiguous in certain circumstances. | |||
| circumstances. For example, a school might provide online access to | For example, a school might provide online access to a student's | |||
| grades to a parent who is also a teacher. She must clearly | grades to their parents for review, and to the student's teacher for | |||
| distinguish her role upon access. After all, she is probably not | modifying the grades. A teacher who is also a parent must clearly | |||
| allowed to edit her own child's grades. | distinguish here 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 a user is | increasingly difficult to discover which identity provider(s) a user | |||
| associated with. This is true for both the web and non-web case, but | is associated with. This is true for both the web and non-web case, | |||
| particularly acute for the latter ans many non-web authentication | but is particularly acute for the latter as many non-web | |||
| systems are not semantically rich enough on their own to allow for | authentication systems are not semantically rich enough on their own | |||
| such ambiguities. For instance, in the case of an email provider, | to allow for such ambiguities. For instance, in the case of an email | |||
| the use of SMTP and IMAP protocols does not on its own provide for a | provider, the use of SMTP and IMAP protocols does not on its own | |||
| way to select a federation. However, the building blocks do exist to | provide for a way to select a federation. However, the building | |||
| add this functionality. | blocks do exist to add this functionality. | |||
| 1.4. An Overview of ABFAB-based Federation | 1.4. An Overview of ABFAB-based Federation | |||
| The previous section described the general model of federation, and | The previous section described the general model of federation, and | |||
| its the application of federated access management. This section | its the application of federated access management. This section | |||
| provides a brief overview of ABFAB in the context of this model. | provides a brief overview of ABFAB in the context of this model. | |||
| The steps taken generally in an ABFAB federated authentication/ | The steps taken generally in an ABFAB federated authentication/ | |||
| authorization exchange are as follows: | authorization exchange are as follows: | |||
| skipping to change at page 9, line 10 ¶ | skipping to change at page 9, line 11 ¶ | |||
| 3. Client Application provides NAI to RP: At the conclusion of | 3. Client Application provides NAI to RP: At the conclusion of | |||
| mechanism selection the NAI must be provided to the RP for | mechanism selection the NAI must be provided to the RP for | |||
| discovery. | discovery. | |||
| 4. Discovery of federated IdP: This is discussed in detail below. | 4. Discovery of federated IdP: This is discussed in detail below. | |||
| Either the RP is configured with authorized IdPs, or it makes | Either the RP is configured with authorized IdPs, or it makes | |||
| use of a federation proxy. | use of a federation proxy. | |||
| 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 forward RADIUS request that | is, it or its agent will forward the RADIUS/Diameter request to | |||
| encapsulates a GSS/EAP access request to an IdP. This may or | an IdP, which encapsulates the EAP access request. This may or | |||
| may not contain a SAML request as a series of attributes.. At | may not contain a SAML request as a series of attributes. At | |||
| this stage, the RP will likely have no idea who the principal | this stage, the RP will likely have no idea who the principal | |||
| is. The RP claims its identity to the IdP in AAA attributes, | is. The RP claims its identity to the IdP in AAA attributes, | |||
| and it makes whatever SAML Attribute Requests through a AAA | and it makes whatever SAML Attribute Requests through a AAA | |||
| attribute. XXX- Check order of SAML attribute request. | attribute. | |||
| 6. IdP informs the principal of which EAP method to use: The | 6. IdP informs the principal of which EAP method to use: The | |||
| available and appropriate methods are discussed below in this | available and appropriate methods are discussed below in this | |||
| memo. | memo. | |||
| 7. A bunch of EAP messages happen between the endpoints: Messages | 7. A bunch of EAP messages happen between the EAP peer and the EAP | |||
| are exchanged between the principal and the IdP until a result | server, i.e., the principal and the IdP in our identity | |||
| is determined. The number and content of those messages will | management terminology, until the result of the authentication | |||
| depend on the EAP method. If the IdP is unable to authenticate | protocol is determined. The number and content of those | |||
| the principal, the process concludes here. As part of this | messages will depend on the EAP method. If the IdP is unable to | |||
| process, the principal will, under protection of EAP, assert the | authenticate the principal, the process concludes here. As part | |||
| identity of the RP to which it intends to authenticate. | of this process, the principal will, under protection of EAP, | |||
| assert the identity of the RP to which it intends to | ||||
| authenticate. | ||||
| 8. Successful Authentication: At the very least the IdP (its EAP | 8. Successful Authentication: At the very least the IdP (its EAP | |||
| server) and EAP peer / subject have authenticated one another. | server) and EAP peer / subject have authenticated one another. | |||
| As a result of this step, the subject and the IdP hold two | As a result of this step, the subject and the IdP hold two | |||
| cryptographic keys- a Master Session Key (MSK), and an Extended | cryptographic keys- a Master Session Key (MSK), and an Extended | |||
| MSK (EMSK). If the asserted identity of the RP by the principal | MSK (EMSK). If the asserted identity of the RP by the principal | |||
| matches the identity the RP itself asserted, there is some | matches the identity the RP itself asserted, there is some | |||
| confidence that the RP is now authenticated to the IdP. | confidence that the RP is now authenticated to the IdP. | |||
| 9. Local IdP Policy Check: At this stage, the IdP checks local | 9. Local IdP Policy Check: At this stage, the IdP checks local | |||
| skipping to change at page 10, line 20 ¶ | skipping to change at page 11, line 5 ¶ | |||
| authorization identies. It will apply these results in an | authorization identies. It will apply these results in an | |||
| application-specific way. | application-specific way. | |||
| 12. RP returns results to principal: Once the RP has a response it | 12. RP returns results to principal: Once the RP has a response it | |||
| must inform the client application of the result. If all has | must inform the client application of the result. If all has | |||
| gone well, all are authenticated, and the application proceeds | gone well, all are authenticated, and the application proceeds | |||
| with appropriate authorization levels. | with appropriate authorization levels. | |||
| An example communication flow is given below: | An example communication flow is given below: | |||
| Relying Party Client App IdP | Relying Client Identity | |||
| 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 Principal | |||
| | | | | | | | | |||
| | |< - - (7) - ->| EAP Exchange to authenticate | | |< - - (7) - ->| EAP Exchange to authenticate | |||
| | | | Principal | | | | Principal | |||
| | | | | | | | | |||
| | | (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: | |||
| skipping to change at page 13, line 16 ¶ | skipping to change at page 13, line 16 ¶ | |||
| Section 1 already introduced the federated access architecture, with | Section 1 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 | it 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 both the relying party | |||
| as well as to the end host for application integration, those changes | as well as to the client for application integration, those changes | |||
| are kept at a minimum. A mechanism that can demonstrate deployment | are kept at a minimum. A mechanism that can demonstrate deployment | |||
| benefits (based on ease of update of existing software, low | benefits (based on ease of update of existing software, low | |||
| implementation effort, etc.)is preferred and there may be a need to | implementation effort, etc.) is preferred and there may be a need to | |||
| specify multiple mechanisms to support the range of different | specify multiple mechanisms to support the range of different | |||
| deployment scenarios. | deployment 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]. | |||
| There are several architectural layers in the system; this section | The architecture consists of several buiding blocks, which is shown | |||
| discusses the individual layers. | graphically in Figure 2. The subsections below explain relationship | |||
| of the protocol components in more detail. | ||||
| 2.1. Federation Substrate | +--------------+ | |||
| | Identity | | ||||
| | Provider | | ||||
| | (IdP) | | ||||
| +-^----------^-+ | ||||
| * EAP o RADIUS/ | ||||
| * o Diameter | ||||
| --v----------v-- | ||||
| /// \\\ | ||||
| // \\ | ||||
| | Federation | | ||||
| | Substrate | | ||||
| \\ // | ||||
| \\\ /// | ||||
| --^----------^-- | ||||
| * EAP o RADIUS/ | ||||
| * o Diameter | ||||
| +-------------+ +-v----------v--+ | ||||
| | |<---------------->| | | ||||
| | Client | EAP/EAP Method | Relying Party | | ||||
| | Application |<****************>| (RP) | | ||||
| | | GSS-API | | | ||||
| | |<---------------->| | | ||||
| | | Application | | | ||||
| | | Protocol | | | ||||
| | |<================>| | | ||||
| +-------------+ +---------------+ | ||||
| The federation substrate is responsible for the connunication between | Legend: | |||
| <****>: Client-to-IdP Exchange | ||||
| <---->: Client-to-RP Exchange | ||||
| <oooo>: RP-to-IdP Exchange | ||||
| <====>: Protocol through which GSS-API/GS2 exchanges are tunnelled | ||||
| Figure 2: ABFAB Protocol Instantiation | ||||
| 2.1. Relying Party to Identity Provider | ||||
| The federation substrate is responsible for the communication between | ||||
| the relying party and the identity provider. This layer is | the relying party and the identity provider. This layer is | |||
| responsible for the inter-domain communication and for the technical | responsible for the inter-domain communication and for the technical | |||
| mechanisms necessary to establish inter-domain trust. | mechanisms necessary to establish inter-domain trust. | |||
| A key design goal is the re-use of an existing infrastructure, we | A key design goal is the re-use of an existing infrastructure, we | |||
| build upon the AAA framework as utilized by RADIUS [RFC2138] and | build upon the AAA framework as utilized by RADIUS [RFC2138] and | |||
| Diameter [RFC3588]. Since this document does not aim to re-describe | Diameter [RFC3588]. Since this document does not aim to re-describe | |||
| the AAA framework the interested reader is referred to [RFC2904]. | the AAA framework the interested reader is referred to [RFC2904]. | |||
| Building on the AAA infrastructure, and RADIUS and Diameter as | Building on the AAA infrastructure, and RADIUS and Diameter as | |||
| protocols, modifications to that infrastructure is to be avoided. | protocols, modifications to that infrastructure is to be avoided. | |||
| Also, modifications to AAA servers should be kept at a minimum. | Also, modifications to AAA servers should be kept at a minimum. | |||
| 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. | |||
| skipping to change at page 14, line 22 ¶ | skipping to change at page 15, line 30 ¶ | |||
| business relationship defines what statements the identity provider | business relationship defines what statements the identity provider | |||
| is trusted to make and how these statements are interpreted by the | is trusted to make and how these statements are interpreted by the | |||
| relying party. The AAA framework also permits the relying party or | relying party. The AAA framework also permits the relying party or | |||
| elements between the relying party and identity provider to make | elements between the relying party and identity provider to make | |||
| statements about the relying party. | 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 is transported as attributes. | |||
| 2.1.1. Discovery, Rules Determination, and Technical Trust | ||||
| One demand that the AAA substrate must make of the upper layers is | One demand that the AAA substrate must make of the upper layers is | |||
| that they must properly identify the end points of the communication. | that they must properly identify the end points of the communication. | |||
| That is- it must be possible for the AAA client at the RP to | That is- it must be possible for the AAA client at the RP to | |||
| determine where to send each RADIUS or Diameter message. Without | determine where to send each RADIUS or Diameter message. Without | |||
| this requirement, it would be the RP's responsibility to determine | this requirement, it would be the RP's responsibility to determine | |||
| the identity of the principal on its own, without the assistance of | the identity of the principal on its own, without the assistance of | |||
| an IdP. This architecture makes use of the Network Access Identifier | an IdP. This architecture makes use of the Network Access Identifier | |||
| (NAI), where the IdP is indicated in the realm component [RFC4282]. | (NAI), where the IdP is indicated in the realm component [RFC4282]. | |||
| The NAI is represented and consumed by the GSS-API layer as | The NAI is represented and consumed by the GSS-API layer as | |||
| GSS_C_NT_USER_NAME as specified in [RFC2743]. The GSS-API EAp | GSS_C_NT_USER_NAME as specified in [RFC2743]. The GSS-API EAp | |||
| skipping to change at page 16, line 31 ¶ | skipping to change at page 17, line 36 ¶ | |||
| 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 MAY use | |||
| any of the three methods to get closer to the IDP. It is also likely | any of the three methods to get closer to the IDP. It is also likely | |||
| that rather than being directly reachable, an IDP may have a proxy | that rather than being directly reachable, an IDP may have a proxy | |||
| within its organization. Federations MAY provide a traditional AAA | within its organization. Federations MAY provide a traditional AAA | |||
| proxy interface even if they also provide another mechanism for | proxy interface even if they also provide another mechanism for | |||
| increased efficiency or security. | increased efficiency or security. | |||
| 2.2. Subject To Identity Provider | 2.2. Client To Identity Provider | |||
| Traditional web federation does not describe how a subject | Traditional web federation does not describe how a subject interacts | |||
| communicates with an identity provider. 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 | |||
| giving control of the authentication interface to a potential | giving control of the authentication interface to a potential | |||
| attacker, then the security of the system may be reduced and phishing | attacker, then the security of the system may be reduced and phishing | |||
| skipping to change at page 17, line 37 ¶ | skipping to change at page 18, line 42 ¶ | |||
| 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: one is to carry EAP payloads | |||
| from the end host to the relying party. Another is to verify | from the end host to the relying party. Another is to verify | |||
| statements the relying party has made to the subject, confirm these | statements the relying party has made to the subject, confirm these | |||
| statements are consistent with statements made to the identity | statements are consistent with statements made to the identity | |||
| provider and confirm all the above are consistent with the federation | provider and confirm all the above are consistent with the federation | |||
| and any federation-specific policy or configuration. Another | and any federation-specific policy or configuration. Another | |||
| challenge is choosing which identity provider to use for which | challenge is choosing which identity provider to use for which | |||
| service. | service. | |||
| 2.3. Application to Service | 2.3. Client to Relying Party | |||
| 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 | |||
| Services Application Programming Interface [RFC2743]. Many | Services Application Programming Interface [RFC2743]. Many | |||
| applications such as IMAP, SMTP, XMPP and LDAP support e Simple | applications such as IMAP, SMTP, XMPP and LDAP support the Simple | |||
| Authentication and Security Layer (SASL) [RFC4422] framework. These | Authentication and Security Layer (SASL) [RFC4422] framework. These | |||
| two approaches work together nicely: by creating a GSS-API mechanism, | two approaches work together nicely: by creating a GSS-API mechanism, | |||
| SASL integration is also addressed. In effect, using a GSS-API | SASL integration is also addressed. In effect, using a GSS-API | |||
| mechanism with SASL simply requires placing some headers on the front | mechanism with SASL simply requires placing some headers on the front | |||
| of the mechanism and constraining certain GSS-API options. | of the mechanism and constraining certain GSS-API options. | |||
| GSS-API is specified in terms of an abstract set of operations which | GSS-API is specified in terms of an abstract set of operations which | |||
| can be mapped into a programming language to form an API. When | can be mapped into a programming language to form an API. When | |||
| people are first introduced to GSS-API, they focus on it as an API. | people are first introduced to GSS-API, they focus on it as an API. | |||
| However, from the prospective of authentication for non-web | However, from the prospective of authentication for non-web | |||
| skipping to change at page 19, line 5 ¶ | skipping to change at page 21, line 5 ¶ | |||
| 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.4. Personalization Layer | ||||
| The AAA framework provides a way to transport statements from the | ||||
| identity provider to the relying party. However, we also need to say | ||||
| more about the content of these statements. In simple cases, | ||||
| attributes particular to the AAA protocol can be defined. However in | ||||
| more complicated situations it is strongly desirable to re-use an | ||||
| existing protocol for asking questions and receiving information | ||||
| about subjects. SAML is used for this. | ||||
| SAML usage may be as simple as the identity provider including a SAML | ||||
| Response message in the AAA response. Alternatively the relying | ||||
| party may generate a SAML request XXX to whom, how, and at what | ||||
| point? (see above XXX). | ||||
| 2.5. Tieing Layers Together | ||||
| +--------------+ | ||||
| | AAA Server | | ||||
| | (Identity | | ||||
| | Provider) | | ||||
| +-^----------^-+ | ||||
| * EAP | RADIUS/ | ||||
| * | Diameter | ||||
| --v----------v-- | ||||
| /// \\\ | ||||
| // \\ *** | ||||
| | Federation | back- | ||||
| | | end | ||||
| \\ // *** | ||||
| \\\ /// | ||||
| --^----------^-- | ||||
| * EAP | RADIUS/ | ||||
| Application * | Diameter | ||||
| +-------------+ Data +-v----------v--+ | ||||
| | |<---------------->| | | ||||
| | Client | EAP/EAP Method | Server Side | | ||||
| | Application |<****************>| Application | | ||||
| | @ End Host | GSS-API |(Relying Party)| | ||||
| | |<---------------->| | | ||||
| | | Application | | | ||||
| | | Protocol | | | ||||
| | |<================>| | | ||||
| +-------------+ +---------------+ | ||||
| *** front-end *** | ||||
| Legend: | ||||
| <****>: End-to-end exchange | ||||
| <---->: Hop-by-hop exchange | ||||
| <====>: Protocol through which GSS-API/GS2 exchanges are tunnelled | ||||
| Figure 2: Architecture for Federated Access of non-Web based | ||||
| Applications | ||||
| 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 | |||
| application integration strategies are very likely to need similar | application integration strategies are very likely to need similar | |||
| services. So, it is likely that these services will be expanded | services. So, it is likely that these services will be expanded | |||
| across application integration strategies if new application | across application integration strategies if new application | |||
| integration strategies are adopted. | integration strategies are adopted. | |||
| 3.1. Server (Mutual) Authentication | 3.1. Authentication | |||
| GSS-API provides an optional security service called mutual | GSS-API provides an optional security service called mutual | |||
| authentication. This service means that in addition to the initiator | authentication. This service means that in addition to the initiator | |||
| providing (potentially anonymous or pseudonymous) identity to the | providing (potentially anonymous or pseudonymous) identity to the | |||
| acceptor, the acceptor confirms its identity to the initiator. | acceptor, the acceptor confirms its identity to the initiator. | |||
| Especially for the ABFAB context, this service is confusingly named. | Especially for the ABFAB context, this service is confusingly named. | |||
| We still say that mutual authentication is provided when the identity | We still say that mutual authentication is provided when the identity | |||
| of an acceptor is strongly authenticated to an anonymous initiator. | of an acceptor is strongly authenticated to an anonymous initiator. | |||
| RFC 2743 does not explicitly talk about what mutual authentication | RFC 2743, unfortunately, does not explicitly talk about what mutual | |||
| means. Within the GSS-API community successful mutual authentication | authentication means. Within this document we therefore define it as | |||
| has come to mean: | ||||
| o If a target name is supplied by the initiator, then the initiator | o If a target name is supplied by the initiator, then the initiator | |||
| trusts that the supplied target name describes the acceptor. This | trusts that the supplied target name describes the acceptor. This | |||
| implies both that appropriate cryptographic exchanges took place | implies both that appropriate cryptographic exchanges took place | |||
| for the initiator to make such a trust decision, and that after | for the initiator to make such a trust decision, and that after | |||
| evaluating the results of these exchanges, the initiator's policy | evaluating the results of these exchanges, the initiator's policy | |||
| trusts that the target name is accurate. | trusts that the target name is accurate. | |||
| o The initiator trusts that its idea of the acceptor name correctly | o The initiator trusts that its idea of the acceptor name correctly | |||
| names the entity it is communicating with. | names the entity it is communicating with. | |||
| skipping to change at page 26, line 12 ¶ | skipping to change at page 26, line 12 ¶ | |||
| would return. (Otherwise, the IdP might as well make the query to | would return. (Otherwise, the IdP might as well make the query to | |||
| the attribute authority and then resign it.) | the attribute authority and then resign it.) | |||
| 5. Privacy Considerations | 5. Privacy Considerations | |||
| Sharing identity information raises privacy violations and as | Sharing identity information raises privacy violations and as | |||
| described throughout this document an existing architecture is re- | described throughout this document an existing architecture is re- | |||
| used for a different usage environment. As such, a discussion about | used for a different usage environment. As such, a discussion about | |||
| the privacy properties has to take these pre-conditions into | the privacy properties has to take these pre-conditions into | |||
| consideration. We use the approach suggested in | consideration. We use the approach suggested in | |||
| [I-D.morris-privacy-considerations] to shed light into what data is | [I-D.iab-privacy-considerations] to shed light into what data is | |||
| collected and used by which entity, what the relationship between | collected and used by which entity, what the relationship between | |||
| these entities and the end user is, what data about the user is | these entities and the end user is, what data about the user is | |||
| likely needed to be collected, and what the identification level of | likely needed to be collected, and what the identification level of | |||
| the data is. | the data is. | |||
| 5.1. What entities collect and use data? | 5.1. What Entities collect and use Data? | |||
| Figure 2 shows the architecture with the involved entities. Message | Figure 2 shows the architecture with the involved entities. Message | |||
| exchanges are exchanged between the client application, via the | exchanges are exchanged between the client application, via the | |||
| relying part to the AAA server. There will likely be intermediaries | relying part to the AAA server. There will likely be intermediaries | |||
| between the relying party and the AAA server, labeled generically as | between the relying party and the AAA server, labeled generically as | |||
| "federation". | "federation". | |||
| In order for the relying party to route messages to the AAA server it | In order for the relying party to route messages to the AAA server it | |||
| is necessary for the client application to provide enough information | is necessary for the client application to provide enough information | |||
| to enable the identification of the AAA server's domain. While often | to enable the identification of the AAA server's domain. While often | |||
| skipping to change at page 30, line 7 ¶ | skipping to change at page 30, line 7 ¶ | |||
| 6.1. EAP Channel Binding | 6.1. EAP Channel Binding | |||
| Discuss the implications of needing EAP channel binding. | Discuss the implications of needing EAP channel binding. | |||
| 6.2. AAA Proxy Behavior | 6.2. AAA Proxy Behavior | |||
| Discuss deployment implications of our proxy requirements. | Discuss deployment implications of our proxy requirements. | |||
| 7. Security Considerations | 7. Security Considerations | |||
| This entire document is about security. A future version of the | This document describes the architecture for Application Bridging for | |||
| document will highlight some important security concepts. | Federated Access Beyond Web (ABFAB) and security is therefore the | |||
| main focus. This section highlights the main communication channels | ||||
| and their security properties: | ||||
| Client-to-RP Channel: | ||||
| This communication channel is secured by TLS executed between the | ||||
| client and the RP. The channel binding material is provided by | ||||
| any certificates and the final message (i.e., a cryptographic | ||||
| token for the channel). Authentication may be provided by the RP | ||||
| to the client but a deployment without authentication at the TLS | ||||
| layer is possible as well. In addition, there is a channel | ||||
| between the GSS requestor and the GSS acceptor, but the keying | ||||
| material is provided by a "third party" to both entities. The | ||||
| client can derive keying material locally, but the RP gets the | ||||
| material from the IdP. There is no cryptographic binding on this | ||||
| channel until the EAP processing has finished and the MSK is | ||||
| transferred from the IdP to the RP. | ||||
| RP-to-IdP Channel: | ||||
| The security of this communication channel is mainly provided by | ||||
| the functionality offered via RADIUS and Diameter. At the time of | ||||
| writing there are no end-to-end security mechanisms standardized | ||||
| and thereby the architecture has to rely on hop-by-hop security | ||||
| with trusted AAA entities or, as an alternative but possible | ||||
| deployment variant, direct communication between the AAA client to | ||||
| the AAA server. Note that the authorization result the IdP | ||||
| provides to the RP in the form of a SAML assertion may, however, | ||||
| be protected such that the SAML related components are secured | ||||
| end-to-end. | ||||
| Client-to-IdP Channel: | ||||
| This communication interaction is accomplished with the help of | ||||
| EAP and EAP methods. The offered security protection will depend | ||||
| on the EAP method that is chosen but a minimum requirement fis to | ||||
| offer mutual authentication, and key derivation. The IdP is | ||||
| responsible during this process to determine that the RP that is | ||||
| communication to the client over the RP-to-IdP channel is the same | ||||
| one talking to the IdP. This is accomplished via the EAP channel | ||||
| binding. | ||||
| 8. IANA Considerations | 8. IANA Considerations | |||
| This document does not require actions by IANA. | This document does not require actions by IANA. | |||
| 9. Acknowledgments | 9. Acknowledgments | |||
| We would like to thank Mayutan Arumaithurai and Klaas Wierenga for | We would like to thank Mayutan Arumaithurai and Klaas Wierenga for | |||
| their feedback. Additionally, we would like to thank Eve Maler, | their feedback. Additionally, we would like to thank Eve Maler, | |||
| Nicolas Williams, Bob Morgan, Scott Cantor, Jim Fenton, and Luke | Nicolas Williams, Bob Morgan, Scott Cantor, Jim Fenton, and Luke | |||
| Howard for their feedback on the federation terminology question. | Howard for their feedback on the federation terminology question. | |||
| Furthermore, we would like to thank Klaas Wierenga for his review of | Furthermore, we would like to thank Klaas Wierenga for his review of | |||
| the pre-00 draft version. | the pre-00 draft version. | |||
| We would like to thank Jim Schaad for his detailed review of the -00 | ||||
| working group draft version. | ||||
| 10. References | 10. References | |||
| 10.1. Normative References | 10.1. Normative References | |||
| [RFC2743] Linn, J., "Generic Security Service Application Program | [RFC2743] Linn, J., "Generic Security Service Application Program | |||
| Interface Version 2, Update 1", RFC 2743, January 2000. | Interface Version 2, Update 1", RFC 2743, January 2000. | |||
| [RFC2865] Rigney, C., Willens, S., Rubens, A., and W. Simpson, | [RFC2865] Rigney, C., Willens, S., Rubens, A., and W. Simpson, | |||
| "Remote Authentication Dial In User Service (RADIUS)", | "Remote Authentication Dial In User Service (RADIUS)", | |||
| RFC 2865, June 2000. | RFC 2865, June 2000. | |||
| skipping to change at page 33, line 34 ¶ | skipping to change at page 33, line 34 ¶ | |||
| Dial In User Service) Support For Extensible | Dial In User Service) Support For Extensible | |||
| Authentication Protocol (EAP)", RFC 3579, September 2003. | Authentication Protocol (EAP)", RFC 3579, September 2003. | |||
| [RFC4072] Eronen, P., Hiller, T., and G. Zorn, "Diameter Extensible | [RFC4072] Eronen, P., Hiller, T., and G. Zorn, "Diameter Extensible | |||
| Authentication Protocol (EAP) Application", RFC 4072, | Authentication Protocol (EAP) Application", RFC 4072, | |||
| August 2005. | August 2005. | |||
| [RFC4282] Aboba, B., Beadles, M., Arkko, J., and P. Eronen, "The | [RFC4282] Aboba, B., Beadles, M., Arkko, J., and P. Eronen, "The | |||
| Network Access Identifier", RFC 4282, December 2005. | Network Access Identifier", RFC 4282, December 2005. | |||
| [I-D.hansen-privacy-terminology] | [I-D.iab-privacy-terminology] | |||
| Hansen, M. and H. Tschofenig, "Terminology for Talking | Hansen, M., Tschofenig, H., and R. Smith, "Privacy | |||
| about Privacy by Data Minimization: Anonymity, | Terminology", draft-iab-privacy-terminology-00 (work in | |||
| Unlinkability, Undetectability, Unobservability, | progress), January 2012. | |||
| Pseudonymity, and Identity Management", | ||||
| draft-hansen-privacy-terminology-02 (work in progress), | ||||
| March 2011. | ||||
| [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-02 (work in progress), July 2011. | draft-ietf-abfab-gss-eap-05 (work in progress), | |||
| March 2012. | ||||
| 10.2. Informative References | 10.2. Informative References | |||
| [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-12 (work | Authentication Protocol (EAP)", draft-nir-tls-eap-13 (work | |||
| in progress), June 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 Protocol", draft-ietf-oauth-v2-20 (work | 2.0 Authorization Protocol", draft-ietf-oauth-v2-25 (work | |||
| in progress), July 2011. | in progress), March 2012. | |||
| [I-D.morris-privacy-considerations] | [I-D.iab-privacy-considerations] | |||
| Aboba, B., Morris, J., Peterson, J., and H. Tschofenig, | Cooper, A., Tschofenig, H., Aboba, B., Peterson, J., and | |||
| "Privacy Considerations for Internet Protocols", | J. Morris, "Privacy Considerations for Internet | |||
| draft-morris-privacy-considerations-03 (work in progress), | Protocols", draft-iab-privacy-considerations-01 (work in | |||
| March 2011. | progress), October 2011. | |||
| [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. | |||
| [RFC5106] Tschofenig, H., Kroeselberg, D., Pashalidis, A., Ohba, Y., | [RFC5106] Tschofenig, H., Kroeselberg, D., Pashalidis, A., Ohba, Y., | |||
| and F. Bersani, "The Extensible Authentication Protocol- | and F. Bersani, "The Extensible Authentication Protocol- | |||
| Internet Key Exchange Protocol version 2 (EAP-IKEv2) | Internet Key Exchange Protocol version 2 (EAP-IKEv2) | |||
| Method", RFC 5106, February 2008. | Method", RFC 5106, February 2008. | |||
| End of changes. 51 change blocks. | ||||
| 166 lines changed or deleted | 193 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/ | ||||