| < draft-lear-abfab-arch-01.txt | draft-lear-abfab-arch-02.txt > | |||
|---|---|---|---|---|
| ABFAB J. Howlett | ABFAB J. Howlett | |||
| Internet-Draft JANET(UK) | Internet-Draft JANET(UK) | |||
| Intended status: Informational S. Hartmann | Intended status: Informational S. Hartman | |||
| Expires: June 24, 2011 Painless Security | Expires: September 10, 2011 Painless Security | |||
| H. Tschofenig | H. Tschofenig | |||
| Nokia Siemens Networks | Nokia Siemens Networks | |||
| E. Lear | E. Lear | |||
| Cisco Systems GmbH | Cisco Systems GmbH | |||
| December 21, 2010 | March 9, 2011 | |||
| Application Bridging for Federated Access Beyond Web (ABFAB) | Application Bridging for Federated Access Beyond Web (ABFAB) | |||
| Architecture | Architecture | |||
| draft-lear-abfab-arch-01.txt | draft-lear-abfab-arch-02.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 authentication and authorization. Most of this | space of federated access management. Most of this effort has | |||
| effort has focused on two common use cases: network and web-based | focused on two use-cases: network and web-based access. However, the | |||
| access, with few common building blocks within the architecture. | solutions to these use-cases that have been proposed and deployed | |||
| 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 mechanisms for both federated and non-federated | the commonly used security mechanisms for both federated and non- | |||
| authentication and authorization, including Radius/Diameter, GSS/GS2, | federated access management, including RADIUS, Diameter, GSS, GS2, | |||
| and SAML, to primarily address non-web based authentication, in a | EAP and SAML. 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 federations. | that will scale to large numbers of federations. | |||
| Status of this Memo | Status of this Memo | |||
| This Internet-Draft is submitted to IETF 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), its areas, and its working groups. Note that | Task Force (IETF). Note that other groups may also distribute | |||
| other groups may also distribute working documents as Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts. | 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." | |||
| The list of current Internet-Drafts can be accessed at | This Internet-Draft will expire on September 10, 2011. | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | ||||
| The list of Internet-Draft Shadow Directories can be accessed at | ||||
| http://www.ietf.org/shadow.html. | ||||
| This Internet-Draft will expire on June 24, 2011. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2011 IETF Trust and the persons identified as the | ||||
| Copyright (c) 2010 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 BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 1.1. Federation Description . . . . . . . . . . . . . . . . . . 3 | 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 1.2. Design Goals . . . . . . . . . . . . . . . . . . . . . . . 7 | 1.2. An Overview of Federation . . . . . . . . . . . . . . . . 5 | |||
| 1.3. Use of Radius . . . . . . . . . . . . . . . . . . . . . . 8 | 1.3. Challenges to Contemporary Federation . . . . . . . . . . 8 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 1.4. An Overview of ABFAB-based Federation . . . . . . . . . . 8 | |||
| 3. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 1.5. Design Goals . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 3.1. Federation Substrate . . . . . . . . . . . . . . . . . . . 10 | 1.6. Use of AAA . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 3.2. Subject To Identity Provider . . . . . . . . . . . . . . . 12 | 2. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 3.3. Application to Service . . . . . . . . . . . . . . . . . . 13 | 2.1. Federation Substrate . . . . . . . . . . . . . . . . . . . 13 | |||
| 3.4. Personalization Layer . . . . . . . . . . . . . . . . . . 14 | 2.1.1. Discovery, Rules Determination, and Technical Trust . 14 | |||
| 3.5. Tieing Layers Together . . . . . . . . . . . . . . . . . . 14 | 2.2. Subject To Identity Provider . . . . . . . . . . . . . . . 16 | |||
| 4. Application Security Services . . . . . . . . . . . . . . . . 16 | 2.3. Application to Service . . . . . . . . . . . . . . . . . . 17 | |||
| 4.1. Server (Mutual) Authentication . . . . . . . . . . . . . . 16 | 2.4. Personalization Layer . . . . . . . . . . . . . . . . . . 19 | |||
| 4.2. GSS-API Channel Binding . . . . . . . . . . . . . . . . . 17 | 2.5. Tieing Layers Together . . . . . . . . . . . . . . . . . . 19 | |||
| 4.3. Host-Based Service Names . . . . . . . . . . . . . . . . . 18 | 3. Application Security Services . . . . . . . . . . . . . . . . 21 | |||
| 4.4. Per-Message Tokens . . . . . . . . . . . . . . . . . . . . 19 | 3.1. Server (Mutual) Authentication . . . . . . . . . . . . . . 21 | |||
| 5. Privacy Considerations . . . . . . . . . . . . . . . . . . . . 20 | 3.2. GSS-API Channel Binding . . . . . . . . . . . . . . . . . 22 | |||
| 6. Deployment Considerations . . . . . . . . . . . . . . . . . . 21 | 3.3. Host-Based Service Names . . . . . . . . . . . . . . . . . 23 | |||
| 6.1. EAP Channel Binding . . . . . . . . . . . . . . . . . . . 21 | 3.4. Per-Message Tokens . . . . . . . . . . . . . . . . . . . . 24 | |||
| 6.2. AAA Proxy Behavior . . . . . . . . . . . . . . . . . . . . 21 | 4. Future Work: Attribute Providers . . . . . . . . . . . . . . . 25 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 22 | 5. Privacy Considerations . . . . . . . . . . . . . . . . . . . . 26 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 | 5.1. What entities collect and use data? . . . . . . . . . . . 26 | |||
| 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 24 | 5.2. Relationship between User's and other Entities . . . . . . 27 | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 25 | 5.3. What Data about the User is likely Needed to be | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . . 25 | Collected? . . . . . . . . . . . . . . . . . . . . . . . . 27 | |||
| 10.2. Informative References . . . . . . . . . . . . . . . . . . 25 | 5.4. What is the Identification Level of the Data? . . . . . . 27 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 28 | 5.5. Privacy Challenges . . . . . . . . . . . . . . . . . . . . 28 | |||
| 6. Deployment Considerations . . . . . . . . . . . . . . . . . . 29 | ||||
| 6.1. EAP Channel Binding . . . . . . . . . . . . . . . . . . . 29 | ||||
| 6.2. AAA Proxy Behavior . . . . . . . . . . . . . . . . . . . . 29 | ||||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 30 | ||||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31 | ||||
| 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 32 | ||||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 33 | ||||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . . 33 | ||||
| 10.2. Informative References . . . . . . . . . . . . . . . . . . 33 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 37 | ||||
| 1. Introduction | 1. Introduction | |||
| XXX This document is a first draft. Comments and contributions are | The Internet uses numerous security mechanisms to manage access to | |||
| requested. | various resources. These mechanisms have been generalized and scaled | |||
| over the last decade through mechanisms such as SASL/GS2 [RFC5801], | ||||
| The Internet makes uses of numerous authentication methods to grant | ||||
| access to various resources. These mechanisms have been generalized | ||||
| and scaled over the last decade through mechanisms such as GS2, | ||||
| Security Assertion Markup Language (SAML) [OASIS.saml-core-2.0-os], | Security Assertion Markup Language (SAML) [OASIS.saml-core-2.0-os], | |||
| Radius, and Diameter. So-called "federated" access has evolved over | RADIUS, and Diameter. | |||
| the last decade between web servers through such standards as SAML, | ||||
| OpenID, and OAUTH, allowing entire domains of individuals to be | ||||
| authorized for resources. The key scaling points that have been | ||||
| addressed are the following: | ||||
| o An Internet service need not copy manually authentication | A Relying Party (RP) is the entity that manages access to some | |||
| information from a domain to allow for authentication and | resource. The actor that is requesting access to that resource is | |||
| authorization. | often described as the Subject. Many security mechanisms are | |||
| manifested as an exchange of information between these actors. The | ||||
| RP is therefore able to decide whether the Subject is authorised, or | ||||
| not. | ||||
| o Individual users are able to make use of a single credential to | Some security mechanisms allow the RP to delegate aspects of the | |||
| authenticate to such services. | access management decision to an actor called the Identity Provider | |||
| (IdP). This delegation requires technical signalling, trust and a | ||||
| common understanding of semantics between the RP and IdP. These | ||||
| aspects are generally managed within a relationship known as a | ||||
| 'federation'. This style of access management is accordingly | ||||
| described as 'federated access management'. | ||||
| Federated access management has evolved over the last decade through | ||||
| such standards as SAML, OpenID [1], and OAUTH [RFC5849]. The | ||||
| benefits of federated access management include: | ||||
| o Single or Simplified sign-on. An Internet service can delegate | ||||
| access management, and the associated responsibilities such as | ||||
| identity management and credentialing, to an organisation that | ||||
| already has a long-term relationship with the Subject. This is | ||||
| often attractive for Relying Parties who frequently do not want | ||||
| these responsibilities. The Subject may also therefore require | ||||
| fewer credentials, which is often desirable. | ||||
| o Privacy. Often a Relying Party does not need to know the identity | ||||
| of a Subject to reach an access management decision. It is | ||||
| frequently only necessary for the Relying Party to establish, for | ||||
| example, that the Subject is affiliated with a particular | ||||
| organisation or has a certain role or entitlement. Sometimes the | ||||
| RP does require an identifier for the Subject (for example, so | ||||
| that it can recognise the Subject subsequently); in this case, it | ||||
| is common practise for the IdP to only release a pseudonym that is | ||||
| specific to that particular Relying Party. Federated access | ||||
| management therefore provides various strategies for protecting | ||||
| the Subject's privacy. | ||||
| o Provisioning. Sometimes a Relying Party needs, or would like, to | ||||
| know more about a subject that an affiliation or pseudonym. For | ||||
| example, a Relying Party may want the Subject's email address or | ||||
| name. Some federated access management technologies provide the | ||||
| ability for the IdP to provision this information, either on | ||||
| request by by the RP or unsolicited. | ||||
| 1.1. Terminology | ||||
| This document uses identity management and privacy terminology from | ||||
| [I-D.hansen-privacy-terminology]. In particular, this document uses | ||||
| the terms pseudonymity, unlinkability, anonymity. | ||||
| We make one note about the IdP: in this architecture, the IdP | ||||
| consists of the following components: an EAP server, a radius server, | ||||
| and optionally a SAML Assertion service. The IdP is also responsible | ||||
| for authentication, even though it may rely upon other components | ||||
| within a domain for such an operation. The reader is advised that | ||||
| for succinctness, in most cases the term IdP is used, except where | ||||
| additional clarity seems appropriate. | ||||
| 1.2. An Overview of Federation | ||||
| In the previous section we introduced the following actors: | ||||
| o the Subject, | ||||
| o the Identity Provider, and | ||||
| o the Relying Party. | ||||
| These entities and their relationships are illustrated graphically in | ||||
| Figure 1. | ||||
| ,----------\ ,---------\ | ||||
| | Identity | Federation | Relying | | ||||
| | Provider + <-------------------> + Party | | ||||
| `----------' '---------' | ||||
| < | ||||
| \ | ||||
| \ Identity | ||||
| \ management | ||||
| \ | ||||
| \ | ||||
| \ | ||||
| \ +------------+ | ||||
| \ | | | ||||
| v| Subject | | ||||
| | | | ||||
| +------------+ | ||||
| Figure 1: General federation framework model | ||||
| Figure 1 shows the federation relationship between the IdP and RP. | ||||
| Typically this relationship encompasses the following: | ||||
| o Technical infrastructure. This infrastructure is generally used | ||||
| to support signalling and trust establishment between the IdP and | ||||
| RP. | ||||
| o Policy framework. This framework is generally used to establish | ||||
| expectations between an IdP and RP that may facilitate stronger | ||||
| trust and common semantics. | ||||
| The nature of federation dictates that there is some form of | ||||
| relationship between the identity provider and the relying party. | ||||
| This is particularly important when the relying party wants to use | ||||
| information obtained from the identity provider for access management | ||||
| decisions and when the identity provider does not want to release | ||||
| information to every relying party (or only under certain | ||||
| conditions). | ||||
| In a federation, policy is agreed upon by some form of administrative | ||||
| management. The policy and infrastructure are then instantiated | ||||
| through an operational framework. This may include the measurement | ||||
| of compliance in some fashion. To support the more generic | ||||
| deployment case, we assume that the identity provider and the RP | ||||
| belong to different administrative domains. | ||||
| While it is possible to have a bilateral agreement between every IdP | ||||
| and every RP; on an Internet scale this setup requires the | ||||
| introduction of the multi-lateral federation concept, as the | ||||
| management of such pair-wise relationships would otherwise prove | ||||
| burdensome. | ||||
| While many of the non-technical aspects of federation, such as | ||||
| business practices and operational arrangements, are outside the | ||||
| scope of the IETF they still impact the architecture setup on how to | ||||
| ensure the dynamic establishment of trust. | ||||
| Some deployments are sometimes required to deploy complex technical | ||||
| infrastructure including message routing intermediaries to offer the | ||||
| required technical functionality while in other deployments those are | ||||
| missing. | ||||
| Figure 1 also shows the relationship between the IdP and the Subject. | ||||
| Often a real world entity is associated with the Subject; for | ||||
| example, a person or some software. | ||||
| The IdP will typically have a long-term relationship with the | ||||
| Subject. This relationship would typically involve the IdP | ||||
| positively identifying and credentialling the Subject (for example, | ||||
| at time of enrollment in the context of employment within an | ||||
| organisation). The relationship will often be instantiated within an | ||||
| agreement between the IdP and the Subject (for example, within an | ||||
| employment contract or terms of use that stipulates the appropriate | ||||
| use of credentials and so forth). | ||||
| While federation is often discussed within the context of relatively | ||||
| formal relationships, such as between an Enterprise and an Employee | ||||
| or a Government and a Citizen, federation does not in any way require | ||||
| this; nor, indeed, does it require any particular level of formality. | ||||
| 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 | ||||
| confirming the verification email. | ||||
| However, the nature and quality of the relationship between the | ||||
| 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 | ||||
| an IdP. This is sometimes described as the Level of Assurance. | ||||
| Similarly it is also important to note that, in the general case, | ||||
| there is no requirement of a relationship betweem the RP and the | ||||
| Subject. This is a property of federation that yields many of its | ||||
| benefits. However, federation does not preclude the possibility | ||||
| relationship between the RP and the Subject, should needs dictate. | ||||
| Finally, it is important to reiterate that in some scenarios there | ||||
| might indeed be a human behind the device denoted as Subject and in | ||||
| other cases there is no human involved in the actual protocol | ||||
| execution. | ||||
| 1.3. Challenges to Contemporary Federation | ||||
| JH: Much more content needed! | ||||
| As the number of such federated services has proliferated, however, | As the number of such federated services has proliferated, however, | |||
| the role of the individual has become ambiguous in certain | the role of the individual has become ambiguous in certain | |||
| circumstances. For example, a school might provide online access to | circumstances. For example, a school might provide online access to | |||
| grades to a parent who is also a teacher. She must clearly | grades to a parent who is also a teacher. She must clearly | |||
| distinguish her role upon access. After all, she is probably not | distinguish her role upon access. After all, she is probably not | |||
| allowed to edit her own child's grades. | allowed to edit her own child's grades. | |||
| 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 a user is | |||
| associated with. This is true for both the web and non-web case, but | associated with. This is true for both the web and non-web case, but | |||
| particularly acute for the latter ans many non-web authentication | particularly acute for the latter ans many non-web authentication | |||
| systems are not semantically rich enough on their own to allow for | systems are not semantically rich enough on their own to allow for | |||
| such ambiguities. For instance, in the case of an email provider, | such ambiguities. For instance, in the case of an email provider, | |||
| the use of SMTP and IMAP protocols does not on its own provide for a | the use of SMTP and IMAP protocols does not on its own provide for a | |||
| way to select a federation. However, the building blocks do exist to | way to select a federation. However, the building blocks do exist to | |||
| add this functionality. | add this functionality. | |||
| 1.1. Federation Description | 1.4. An Overview of ABFAB-based Federation | |||
| The typical setup for a three party protocol involves the following | ||||
| entities: | ||||
| o the End Host, | ||||
| o the Identity Provider, and | ||||
| o the Relying Party. | ||||
| These entities are illustrated graphically in Figure 1. | ||||
| ----- | ||||
| /- -\ | ||||
| // \\ | ||||
| / \ | ||||
| | | | ||||
| ,----------\ | | ,---------\ | ||||
| | Identity | | | | Relying | | ||||
| | Provider +----+ Federation +---+ Party | | ||||
| `----------' | | '---------' | ||||
| < | | > | ||||
| \ | | / | ||||
| \ \ / / | ||||
| \ \\ // / | ||||
| \ \- -/ / | ||||
| \ ----- / | ||||
| \ / | ||||
| \ +------------+ / | ||||
| \ | | / | ||||
| v| End Host |v | ||||
| | | | ||||
| +------------+ | ||||
| Figure 1: Three Party Authentication Framework | ||||
| Figure 1 also shows the logical entity 'Federation'. In a | ||||
| federation, policy is agreed upon by some form of administrative | ||||
| management, and then instantiated through an operational framework | ||||
| that the members use, and where compliance is measured in some | ||||
| fashion. Some deployments may be required to deploy message routing | ||||
| intermediaries, such as application layer relays or proxies, to offer | ||||
| the required technical functionality while in other deployments those | ||||
| are missing. | ||||
| Often a real world entity is associated with the end host and | ||||
| responsible for interacting with the identity provider, even if it is | ||||
| only as weak as completing a web form and confirming the verification | ||||
| email. The outcome of this initial registration step is that | ||||
| credentials are made available to the identity provider and to the | ||||
| end host. It is important to highlight that in some scenarios there | ||||
| might indeed be a human behind the device denoted as end host and in | ||||
| other cases there is no human involved in the actual protocol | ||||
| execution. | ||||
| To support the more generic deployment case, we assume that the | The previous section described the general model of federation, and | |||
| identity provider and the relying party belong to different | its the application of federated access management. This section | |||
| administrative domains. The nature of federation dictates that there | provides a brief overview of ABFAB in the context of this model. | |||
| is some form of relationship between the identity provider and the | ||||
| relying party. This is particularly important when the relying party | ||||
| wants to use information obtained from the identity provider for | ||||
| authorization decisions and when the identity provider does not want | ||||
| to release information to every relying party (or only under certain | ||||
| conditions). While it is possible to have a bilateral agreement | ||||
| between every identity provider and every relying party; on an | ||||
| Internet scale this setup requires the introduction of a federation | ||||
| concept, as the management of such pair-wise relationships would | ||||
| otherwise prove burdensome. While many of the non-technical aspects | ||||
| of such a federation, such as business practices and operational | ||||
| arrangements, are outside the scope of the IETF they still impact the | ||||
| architecture setup on how to ensure the dynamic establishment of | ||||
| trust. | ||||
| The steps taken generally in an ABFAB federated authentication/ | The steps taken generally in an ABFAB federated authentication/ | |||
| authorization exchange are as follows (XXX not complete): | authorization exchange are as follows: | |||
| 1. Principal provides NAI to Application: Somehow the client is | 1. Principal provides NAI to Application: Somehow the client is | |||
| configured with at least the realm portion of an NAI, which | configured with at least the realm portion of an NAI, which | |||
| represents the IdP to be discovered. | represents the IdP to be discovered. | |||
| 2. Authentication mechanism selection: this is the step necessary | 2. Authentication mechanism selection: this is the step necessary | |||
| to indicate that the GSS-EAP SASL/GS2 mechanism will be used for | to indicate that the GSS-EAP SASL/GS2 mechanism will be used for | |||
| authentication/authorization. | authentication/authorization. | |||
| 3. Client Application provides NAI to RP: At the conclusion of | 3. Client Application provides NAI to RP: At the conclusion of | |||
| skipping to change at page 6, line 47 ¶ | skipping to change at page 9, line 10 ¶ | |||
| 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 RADIUS request that | |||
| encapsulates a GSS/EAP access request to an IdP. This may or | encapsulates a GSS/EAP access request to an IdP. 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 | ||||
| attribute. XXX- Check order of SAML attribute request. | ||||
| 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 endpoints: Messages | |||
| are exchanged between the principal and the IdP until a result | are exchanged between the principal and the IdP until a result | |||
| is determined. The number and content of those messages will | is determined. The number and content of those messages will | |||
| depend on the EAP method. If the IdP is unable to authenticate | depend on the EAP method. If the IdP is unable to authenticate | |||
| the principal, the process concludes here. As part of this | the principal, the process concludes here. As part of this | |||
| process, the principal will, under protection of EAP, assert the | process, the principal will, under protection of EAP, assert the | |||
| identity of the RP to which it intends to authenticate. | identity of the RP to which it intends to authenticate. | |||
| 8. Successful Authentication: At the very least the EAP server / | 8. Successful Authentication: At the very least the IdP (its EAP | |||
| IdP has authenticated the principal, and the principal has | server) and EAP peer / subject have authenticated one another. | |||
| authenticated the IdP. As a result of this step, the principal | As a result of this step, the subject and the IdP hold two | |||
| and the EAP server hold two cryptographic keys- a Master Session | cryptographic keys- a Master Session Key (MSK), and an Extended | |||
| Key (MSK), and an Extended MSK (EMSK). If the asserted identity | MSK (EMSK). If the asserted identity of the RP by the principal | |||
| of the RP by the principal matches the identity the RP itself | matches the identity the RP itself asserted, there is some | |||
| asserted, there is some confidence that the RP is now | confidence that the RP is now authenticated to the IdP. | |||
| 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 | |||
| policy to determine whether the RP and principal are authorized | policy to determine whether the RP and subject are authorized | |||
| for the assertion to be made. Additional policy checks will | for a given transaction/service, and if so, what if any, | |||
| likely have been made earlier just through the process of | attributes will be released to the RP. Additional policy checks | |||
| discovery (see later discussion). | will likely have been made earlier just through the process of | |||
| discovery. | ||||
| 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 or | made a determination of whether and how to authenticate or | |||
| authorize the principal to the RP, it returns either a negative | authorize the principal to the RP, it returns either a negative | |||
| answer to the RP, or it returns the identity of the principal to | AAA result to the RP, or it returns a positive result to the RP, | |||
| the RP, as well as an optional set of attributes associated with | along with an optional set of AAA attributes associated with the | |||
| the principal. XXX XXX XXX this needs work!!! | principal that could include one or more SAML assertions. In | |||
| addition, an EAP MSK is returned to the subject. | ||||
| 11. Return results to principal: Once the RP has a response it must | 11. RP Processes Results. When the RP receives the result from the | |||
| inform the client application of the result. If all has gone | IdP, it should have enough information to either grant or refuse | |||
| well, all are authenticated, and the application proceeds with | a resource access request. It may have information that leads | |||
| appropriate authorization levels. | it to make additional attribute queries. It may have | |||
| information that associates the principal with specific | ||||
| authorization identies. It will apply these results in an | ||||
| application-specific way. | ||||
| 12. RP returns results to principal: Once the RP has a response it | ||||
| must inform the client application of the result. If all has | ||||
| gone well, all are authenticated, and the application proceeds | ||||
| with appropriate authorization levels. | ||||
| An example communication flow is given below: | An example communication flow is given below: | |||
| Relying Party Client App IdP | Relying Party Client App IdP | |||
| | (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 | |||
| skipping to change at page 8, line 26 ¶ | skipping to change at page 10, line 36 ¶ | |||
| | | | | | | | | |||
| | |< - - (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)----->| | Results to client app. | | | | (11) RP Processes results. | |||
| | | | | ||||
| |>----(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.2. 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 | |||
| principal will be authorized for access to a specific resource . | principal 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 | |||
| skipping to change at page 9, line 22 ¶ | skipping to change at page 11, line 38 ¶ | |||
| is hard and frought with risk of cryptographic flaws. Achieving | is hard and frought 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.3. Use of Radius | 1.6. 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 identity provider | used in Figure 1 to the AAA framework the IdP corresponds to the AAA | |||
| corresponds to the AAA server, the relying party corresponds to the | server, the RP corresponds to the AAA client, and the technical | |||
| AAA client, and the technical building blocks of a federation are AAA | building blocks of a federation are AAA proxies, relays and redirect | |||
| proxies, relays and redirect agents (particularly if they are | agents (particularly if they are operated by third parties, such as | |||
| operated by third parties, such as AAA brokers and clearing houses). | AAA brokers and clearing houses). The front-end, i.e. the end host | |||
| The front-end, i.e. the end host to AAA client communication, is in | to AAA client communication, is in case of network access | |||
| case of network access authentication offered by link layer protocols | authentication offered by link layer protocols that forward | |||
| that forward authentication protocol exchanges back-and-forth. An | authentication protocol exchanges back-and-forth. An example of a | |||
| example of a large scale Radius-based federation is EDUROAM [1]. | large scale RADIUS-based federation is EDUROAM [2]. | |||
| Is it possible to design a system that builds on top of successful | Is it possible to design a system that builds on top of successful | |||
| protocols to offer non-Web-based protocols with a solid starting | protocols to offer non-Web-based protocols with a solid starting | |||
| point for authentication and authorization in a distributed system? | point for authentication and authorization in a distributed system? | |||
| 2. Terminology | 2. Architecture | |||
| This document uses identity management and privacy terminology from | ||||
| [I-D.hansen-privacy-terminology]. | ||||
| 3. Architecture | ||||
| 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 | |||
| skipping to change at page 11, line 35 ¶ | skipping to change at page 13, line 35 ¶ | |||
| 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 | There are several architectural layers in the system; this section | |||
| discusses the individual layers. | discusses the individual layers. | |||
| 3.1. Federation Substrate | 2.1. Federation Substrate | |||
| The federation substrate is responsible for the connunication between | The federation substrate is responsible for the connunication 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. | |||
| 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 is- it must be possible for the AAA server at the RP to | ||||
| determine where to send each radius or diameter message. Otherwise, | ||||
| it is the RP's responsibility to determine the identity of the | ||||
| principal on its own, without the assistance of an IdP. This | ||||
| architecture makes use of the Network Access Identifier (NAI), where | ||||
| the IdP is indicated in the realm component [RFC4282]. The NAI is | ||||
| represented and consumed by the GSS-API layer as GSS_C_NT_USER_NAME | ||||
| as specified in [RFC2743]. XXX Where is EAP here? | ||||
| Once an IdP has been determined by the RP, it or its proxy agent must | ||||
| determine whether or not the IdP itself is authorized to make | ||||
| assertions, as it will likely not blindly accept any old provider. | ||||
| Federations serve this purpose. This architecture provides for three | ||||
| approaches to resolve whether an IdP is authorized: | ||||
| Static Configuration: In this case, the federation provides the RP | ||||
| or its proxy agent with a static list of IdPs that it may trust. | ||||
| Federation Dynamic Referral In this case, the federation provides a | ||||
| proxy of its own that will in some way authorize the IdP to the | ||||
| RP, and visa versa, as not all RPs may be authorized to use all | ||||
| IdPs for all purposes within a federation. N.B., because the | ||||
| identity of the principal is likely unknown at this point, it will | ||||
| not be possible for a federation to authorize an IdP to an RP | ||||
| based on the identity of the principal. | ||||
| Federation Proxy: In this case, the authentication request is | ||||
| forwarded to a federation proxy, who then further forwards the | ||||
| request to the IdP. | ||||
| In the first two cases, it is expected that RPs will be configured to | ||||
| consult multiple federations, as a matter of practice. The first | ||||
| successful query is sufficient for the RP to then contact the IdP's | ||||
| AAA server. | ||||
| 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. | |||
| 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 | relying party can establish technical trust that messages are being | |||
| sent by the appropriate relying party. Any given interaction will be | sent by the appropriate relying party. Any given interaction will be | |||
| skipping to change at page 13, line 11 ¶ | skipping to change at page 14, line 22 ¶ | |||
| 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. | |||
| 3.2. Subject To Identity Provider | 2.1.1. Discovery, Rules Determination, and Technical Trust | |||
| 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 is- it must be possible for the AAA client at the RP to | ||||
| determine where to send each RADIUS or Diameter message. Without | ||||
| this requirement, it would be the RP's responsibility to determine | ||||
| the identity of the principal on its own, without the assistance of | ||||
| an IdP. This architecture makes use of the Network Access Identifier | ||||
| (NAI), where the IdP is indicated in the realm component [RFC4282]. | ||||
| 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 | ||||
| mechanism includes the NAI in the EAP Response/Identity message. | ||||
| 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 | ||||
| rules and technical 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 | ||||
| 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 | ||||
| encompasses the basic authorization decision. Other factors are | ||||
| 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 | ||||
| information. While rules determination is ultimately a business | ||||
| function, it has significant impact on the technical exchanges. The | ||||
| protocols need to communicate the result of authorization. When | ||||
| multiple sets of rules are possible, the protocol must disambiguate | ||||
| which set of rules are in play. Some rules have technical | ||||
| enforcement mechanisms; for example in some federations intermediates | ||||
| validate information that is being communicated within the | ||||
| federation. | ||||
| Several deployment approaches are possible. These can most easily be | ||||
| classified based on the mechanism for technical trust that is used. | ||||
| The choice of technical trust mechanism constrains how rules | ||||
| determination is implemented. Regardless of what deployment strategy | ||||
| is chosen, the technical trust mechanism MUST constrain the names of | ||||
| both parties to the exchange. The trust mechanism MUST make sure | ||||
| that the entity acting as IDP for a given NAI is permitted to be the | ||||
| IDP for that realm. The mechanism MUST make sure that any service | ||||
| name claimed by the RP is permitted to be claimed by that entity. | ||||
| Here are the categories of technical trust determination: | ||||
| AAA Proxy: The simplest model is that an RP supports a request | ||||
| directly to an AAA proxy. The hop-by-hop integrity protection of | ||||
| the AAA fabric provides technical trust. An RP can submit a | ||||
| request directly to a federation. Alternatively, a federation | ||||
| disambiguation fabric can be used. Such a fabric takes | ||||
| information about what federations the RP is part of and what | ||||
| federations the IDP is part of and routes a message to the | ||||
| appropriate federation. The routing of messages across the fabric | ||||
| plus attributes added to requests and responses provides rules | ||||
| determination. For example, when a disambiguation fabric routes a | ||||
| message to a given federation, that federation's rules are chosen. | ||||
| Naming is enforced as messages travel across the fabric. The | ||||
| entities near the RP confirm its identity and validate names it | ||||
| claims. The fabric routes the message towards the appropriate | ||||
| IDP, validating the IDP's name in the process. The routing can be | ||||
| statically configured. Alternatively a routing protocol could be | ||||
| developed to exchange reachability information about given IDPs | ||||
| and to apply policy across the AAA fabric. Such a routing | ||||
| protocol could flood naming constraints to the appropriate points | ||||
| in the fabric. | ||||
| Trust Broker: Instead of routing messages through AAA proxies, some | ||||
| trust broker could establish keys between entities near the RP and | ||||
| entities near the IDP. The advantage of this approach is | ||||
| efficiency of message handling. Fewer entities are needed to be | ||||
| involved for each message. Security may be improved by sending | ||||
| individual messages over fewer hops. Rules determination involves | ||||
| decisions made by trust brokers about what keys to grant. Also, | ||||
| associated with each credential is context about rules and about | ||||
| other aspects of technical trust including names that may be | ||||
| claimed. A routing protocol similar to the one for AAA proxies is | ||||
| likely to be useful to trust brokers in flooding rules and naming | ||||
| constraints. | ||||
| Global Credential: A global credential such as a public key and | ||||
| certificate in a public key infrastructure can be used to | ||||
| establish technical trust. A directory or distributed database | ||||
| such as the Domain Name System is needed for an RP to discover | ||||
| what endpoint to contact for a given NAI. Certificates provide a | ||||
| place to store information about rules determination and naming | ||||
| constraints. Provided that no intermediates are required and that | ||||
| the RP and IDP are sufficient to enforce and determine rules, | ||||
| rules determination is reasonably simple. However applying | ||||
| certain rules is likely to be quite complex. For example if | ||||
| multiple sets of rules are possible between an IDP and RP, | ||||
| confirming the correct set is used may be difficult. This is | ||||
| particularly true if intermediates are 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 | ||||
| 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 | ||||
| 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 | ||||
| within its organization. Federations MAY provide a traditional AAA | ||||
| proxy interface even if they also provide another mechanism for | ||||
| increased efficiency or security. | ||||
| 2.2. Subject To Identity Provider | ||||
| Traditional web federation does not describe how a subject | Traditional web federation does not describe how a subject | |||
| communicates with an identity provider. As a result, this | communicates with an identity provider. 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 | |||
| skipping to change at page 14, line 16 ¶ | skipping to change at page 17, line 37 ¶ | |||
| 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. | |||
| 3.3. Application to Service | 2.3. Application to Service | |||
| 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 e 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 [RFC5801]. In effect, using a | SASL integration is also addressed. In effect, using a GSS-API | |||
| GSS-API mechanism with SASL simply requires placing some headers on | mechanism with SASL simply requires placing some headers on the front | |||
| 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 | |||
| applications, GSS-API should be thought of as a protocol not an API. | applications, GSS-API should be thought of as a protocol not an API. | |||
| It consists of some abstract operations such as the initial context | It consists of some abstract operations such as the initial context | |||
| exchange, which includes two sub-operations (gss_init_sec_context and | exchange, which includes two sub-operations (gss_init_sec_context and | |||
| gss_accept_sec_context). An application defines which abstract | gss_accept_sec_context). An application defines which abstract | |||
| operations it is going to use and where messages produced by these | operations it is going to use and where messages produced by these | |||
| skipping to change at page 15, line 30 ¶ | skipping to change at page 19, 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. | |||
| 3.4. Personalization Layer | 2.4. Personalization Layer | |||
| The AAA framework provides a way to transport statements from the | The AAA framework provides a way to transport statements from the | |||
| identity provider to the relying party. However, we also need to say | identity provider to the relying party. However, we also need to say | |||
| more about the content of these statements. In simple cases, | more about the content of these statements. In simple cases, | |||
| attributes particular to the AAA protocol can be defined. However in | attributes particular to the AAA protocol can be defined. However in | |||
| more complicated situations it is strongly desirable to re-use an | more complicated situations it is strongly desirable to re-use an | |||
| existing protocol for asking questions and receiving information | existing protocol for asking questions and receiving information | |||
| about subjects. SAML is used for this. | about subjects. SAML is used for this. | |||
| SAML usage may be as simple as the identity provider including a SAML | SAML usage may be as simple as the identity provider including a SAML | |||
| Response message in the AAA response. Alternatively the relying | Response message in the AAA response. Alternatively the relying | |||
| party may generate a SAML request. | party may generate a SAML request XXX to whom, how, and at what | |||
| point? (see above XXX). | ||||
| 3.5. Tieing Layers Together | 2.5. Tieing Layers Together | |||
| +--------------+ | +--------------+ | |||
| | AAA Server | | | AAA Server | | |||
| | (Identity | | | (Identity | | |||
| | Provider) | | | Provider) | | |||
| +-^----------^-+ | +-^----------^-+ | |||
| * EAP | RADIUS/ | * EAP | RADIUS/ | |||
| * | Diameter | * | Diameter | |||
| --v----------v-- | --v----------v-- | |||
| /// \\\ | /// \\\ | |||
| // \\ *** | // \\ *** | |||
| skipping to change at page 17, line 5 ¶ | skipping to change at page 21, line 5 ¶ | |||
| Legend: | Legend: | |||
| <****>: End-to-end exchange | <****>: End-to-end exchange | |||
| <---->: Hop-by-hop exchange | <---->: Hop-by-hop exchange | |||
| <====>: Protocol through which GSS-API/GS2 exchanges are tunnelled | <====>: Protocol through which GSS-API/GS2 exchanges are tunnelled | |||
| Figure 2: Architecture for Federated Access of non-Web based | Figure 2: Architecture for Federated Access of non-Web based | |||
| Applications | Applications | |||
| 4. 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. | |||
| 4.1. Server (Mutual) Authentication | 3.1. Server (Mutual) 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 does not explicitly talk about what mutual authentication | |||
| skipping to change at page 18, line 17 ¶ | skipping to change at page 22, line 17 ¶ | |||
| The GSS-EAP mechanism MUST implement mutual authentication. That is, | The GSS-EAP mechanism MUST implement mutual authentication. That is, | |||
| an initiator needs to be able to request mutual authentication. When | an initiator needs to be able to request mutual authentication. When | |||
| mutual authentication is requested, only EAP methods capabale of | mutual authentication is requested, only EAP methods capabale of | |||
| providing the necessary service can be used, and appropriate steps | providing the necessary service can be used, and appropriate steps | |||
| need to be taken to provide mutual authentication. A broader set of | need to be taken to provide mutual authentication. A broader set of | |||
| EAP methods could be supported when a particular application does not | EAP methods could be supported when a particular application does not | |||
| request mutual authentication. It is an open question whether the | request mutual authentication. It is an open question whether the | |||
| mechanism will permit this. | mechanism will permit this. | |||
| 4.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. If the endpoints of the GSS-API | |||
| skipping to change at page 19, line 22 ¶ | skipping to change at page 23, line 22 ¶ | |||
| the user is able to visually authenticate the content. This is | the user is able to visually authenticate the content. This is | |||
| consistent with all uses of channel binding without protocol level | consistent with all uses of channel binding without protocol level | |||
| mutual authentication found so far. | mutual authentication found so far. | |||
| RFC 5056 channel binding (also called GSS-API channel binding when | RFC 5056 channel binding (also called GSS-API channel binding when | |||
| GSS-API is involved) is not the same thing as EAP channel binding. | GSS-API is involved) is not the same thing as EAP channel binding. | |||
| EAP channel binding is also used in the ABFAB context in order to | EAP channel binding is also used in the ABFAB context in order to | |||
| implement acceptor naming and mutual authentication. Details are | implement acceptor naming and mutual authentication. Details are | |||
| discussed in the mechanisms specification [I-D.ietf-abfab-gss-eap]. | discussed in the mechanisms specification [I-D.ietf-abfab-gss-eap]. | |||
| 4.3. Host-Based Service Names | 3.3. Host-Based Service Names | |||
| IETF security mechanisms typically take the name of a service entered | IETF security mechanisms typically take the name of a service entered | |||
| by a user and make some trust decision about whether the remote party | by a user and make some trust decision about whether the remote party | |||
| in an interaction is the intended party. GSS-API has a relatively | in an interaction is the intended party. GSS-API has a relatively | |||
| flexible naming architecture. However most of the IETF applications | flexible naming architecture. However most of the IETF applications | |||
| that use GSS-API, including SSH, NFS, IMAP, LDAP and XMPP, have | that use GSS-API, including SSH, NFS, IMAP, LDAP and XMPP, have | |||
| chosen to use host-based service names when they use GSS-API. In | chosen to use host-based service names when they use GSS-API. In | |||
| this model, the initiator names an acceptor based on a service such | this model, the initiator names an acceptor based on a service such | |||
| as "imap" or "host" (for login services such as SSH) and a host name. | as "imap" or "host" (for login services such as SSH) and a host name. | |||
| skipping to change at page 20, line 5 ¶ | skipping to change at page 24, line 5 ¶ | |||
| entity is allowed to claim the name. ABFAB needs to adopt this | entity is allowed to claim the name. ABFAB needs to adopt this | |||
| approach. | approach. | |||
| Host-based service names do not work ideally when different instances | Host-based service names do not work ideally when different instances | |||
| of a service are running on different ports. Also, these do not work | of a service are running on different ports. Also, these do not work | |||
| ideally when SRV record or other insecure referrals are used. | ideally when SRV record or other insecure referrals are used. | |||
| The GSS-EAP mechanism needs to support host-based service names in | The GSS-EAP mechanism needs to support host-based service names in | |||
| order to work with existing IETF protocols. | order to work with existing IETF protocols. | |||
| 4.4. Per-Message Tokens | 3.4. Per-Message Tokens | |||
| GSs-API provides per-message security services that can provide | GSS-API provides per-message security services that can provide | |||
| confidentiality and integrity. Some IETF protocols such as NFS and | confidentiality and integrity. Some IETF protocols such as NFS and | |||
| SSH take advantage of these services. As a result GSS-EAP needs to | SSH take advantage of these services. As a result GSS-EAP needs to | |||
| support these services. As with mutual authentication, per-message | support these services. As with mutual authentication, per-message | |||
| services will limit the set of EAP methods that are available. Any | services will limit the set of EAP methods that are available. Any | |||
| method that produces a Master Session Key (MSK) should be able to | method that produces a Master Session Key (MSK) should be able to | |||
| support per-message security services. | support per-message security services. | |||
| GSS-API provides a pseudo-random function. While the pseudo-random | GSS-API provides a pseudo-random function. While the pseudo-random | |||
| function does not involve sending data over the wire, it provides an | function does not involve sending data over the wire, it provides an | |||
| algorithm that both the initiator and acceptor can run in order to | algorithm that both the initiator and acceptor can run in order to | |||
| arrive at the same key value. This is useful for designs where a | arrive at the same key value. This is useful for designs where a | |||
| successful authentication is used to key some other function. This | successful authentication is used to key some other function. This | |||
| is similar in concept to the TLS extractor. No current IETF | is similar in concept to the TLS extractor. No current IETF | |||
| protocols require this. However GSS-EAP supports this service | protocols require this. However GSS-EAP supports this service | |||
| because it is valuable for the future and easy to do given per- | because it is valuable for the future and easy to do given per- | |||
| message services. Non-IETF protocols are expected to take advantage | message services. Non-IETF protocols are expected to take advantage | |||
| of this in the near future. | of this in the near future. | |||
| 4. Future Work: Attribute Providers | ||||
| This architecture provides for a federated authentication and | ||||
| authorization framework between IdPs, RPs, principals, and subjects. | ||||
| It does not at this time provide for a means to retrieve attributes | ||||
| from 3rd parties. However, it envisions such a possibility. We note | ||||
| that in any extension to the model, an attribute provider must be | ||||
| authorized to release specific attributes to a specific RP for a | ||||
| specific principal. In addition, we note that it is an open question | ||||
| beyond this architecture as to how the RP should know to trust a | ||||
| particular attribute provider. | ||||
| There are a number of possible technical means to provide attribute | ||||
| provider capabilities. One possible approach is for the IdP to | ||||
| provide a signed attribute request to RP that it in turn will provide | ||||
| to the attribute authority. Another approach would be for the IdP to | ||||
| provide a URI to the RP that contains a token of some form. The form | ||||
| of communications between the IdP and attribute provider as well as | ||||
| other considerations are left for the future. One thing we can say | ||||
| now is that the IdP would merely be asserting who the attribute | ||||
| authority is, and not the contents of what the attribute authority | ||||
| would return. (Otherwise, the IdP might as well make the query to | ||||
| the attribute authority and then resign it.) | ||||
| 5. Privacy Considerations | 5. Privacy Considerations | |||
| Sharing identity information may lead to privacy violations. A | Sharing identity information raises privacy violations and as | |||
| future verison of this document will provide a discussion of privacy | described throughout this document an existing architecture is re- | |||
| considerations in a federated access environment. | used for a different usage environment. As such, a discussion about | |||
| the privacy properties has to take these pre-conditions into | ||||
| consideration. We use the approach suggested in | ||||
| [I-D.morris-privacy-considerations] to shed light into what data is | ||||
| collected and used by which entity, what the relationship between | ||||
| these entities and the end user is, what data about the user is | ||||
| likely needed to be collected, and what the identification level of | ||||
| the data is. | ||||
| 5.1. What entities collect and use data? | ||||
| Figure 2 shows the architecture with the involved entities. Message | ||||
| exchanges are exchanged between the client application, via the | ||||
| relying part to the AAA server. There will likely be intermediaries | ||||
| between the relying party and the AAA server, labeled generically as | ||||
| "federation". | ||||
| In order for the relying party to route messages to the AAA server it | ||||
| is necessary for the client application to provide enough information | ||||
| to enable the identification of the AAA server's domain. While often | ||||
| the username is attached to the domain (in the form of a Network | ||||
| Access Identity (NAI) this is not necessary for the actual protocol | ||||
| operation. The EAP server component within the AAA server needs to | ||||
| authenticate the user and therefore needs to execute the respective | ||||
| authentication protocol. Once the authentication exchange is | ||||
| complete authorization information needs to be conveyed to the | ||||
| relying party to grant the user the necessary application rights. | ||||
| Information about resource consumption may be delivered as part of | ||||
| the accounting exchange during the lifetime of the granted | ||||
| application session. | ||||
| The authentication exchange may reveal an identifier that can be | ||||
| linked to a user. Additionally, a sequence of authentication | ||||
| protocol exchanges may be linked together. Depending on the chosen | ||||
| authentication protocol information at varying degrees may be | ||||
| revealed to all parties along the communication path. This | ||||
| authorization information exchange may disclose identity information | ||||
| about the user. While accounting information is created by the | ||||
| relying party it is likely to needed by intermediaries in the | ||||
| federation for financial settlement purposes and will be stored for | ||||
| billing, fraud detection, statistical purposes, and for service | ||||
| improvement by the AAA server operator. | ||||
| 5.2. Relationship between User's and other Entities | ||||
| The AAA server is a first-party site the user typically has a | ||||
| relationship with. This relationship will be created at the time | ||||
| when the security credentials are exchange and provisioned. The | ||||
| relying party and potential intermediares in the federation are | ||||
| typically operate under the contract of the first-party site. The | ||||
| user typically does not know about the intermediaries in the | ||||
| federation nor does he have any relationship with them. The protocol | ||||
| interaction triggered by the client application happens with the | ||||
| relying party at the time of application access. The relying party | ||||
| does not have a direct contractual relationship with the user but | ||||
| depending on the application the interaction may expose the brand of | ||||
| the application running by the relying party to the end user via some | ||||
| user interface. | ||||
| 5.3. What Data about the User is likely Needed to be Collected? | ||||
| The data that is likely going to be collected as part of a protocol | ||||
| exchange with application access at the relying party is accounting | ||||
| information and authorization information. This information is | ||||
| likely to be kept beyond the terminated application usage for trouble | ||||
| shooting, statistical purposes, etc. There is also like to be | ||||
| additional data collected to to improve application service usage by | ||||
| the relying party that is not conveyed to the AAA server as part of | ||||
| the accounting stream. | ||||
| 5.4. What is the Identification Level of the Data? | ||||
| With regard to identification there are several protocol layers that | ||||
| need to be considered separately. First, there is the EAP method | ||||
| exchange, which as an authentication and key exchange protocol has | ||||
| properties related to identification and protocol linkage. Second, | ||||
| there is identification at the EAP layer for routing of messages. | ||||
| Then, in the exchange between the client application and the relying | ||||
| party the identification depends on the underlying application layer | ||||
| protocol the EAP/GSS-API exchange is tunneled over. Finally, there | ||||
| is the backend exchange via the AAA infrastructure, which involves a | ||||
| range of RADIUS and Diameter extensions and yet to be defined | ||||
| extensions, such as encoding authorization information inside SAML | ||||
| assertions. | ||||
| Since this document does not attempt to define any of these exchanges | ||||
| but rather re-uses existing mechanisms the level of identification | ||||
| heavily depends on the selected mechanisms. The following two | ||||
| examples aim to illustrate the amount of existing work with respect | ||||
| to decrease exposure of personal data. | ||||
| 1. When designing EAP methods a number of different requirements may | ||||
| need to get considered; some of them are conflicting. RFC 4017 | ||||
| [RFC4017], for example, tried to list requirements for EAP | ||||
| methods utilized for network access over Wireless LANs. It also | ||||
| recommends the end-user identity hiding requirement, which is | ||||
| privacy-relevant. Some EAP methods, such as EAP-IKEv2 [RFC5106], | ||||
| also fulfill this requirement. | ||||
| 2. EAP, as the layer encapsulating EAP method specific information, | ||||
| needs identity information to allow routing requests towards the | ||||
| user's home AAA server. This information is carried within the | ||||
| Network Access Identifier (NAI) and the username part of the NAI | ||||
| (as supported by RFC 4282 [RFC4282]) can be obfuscated. | ||||
| 5.5. Privacy Challenges | ||||
| While a lot of standarization work was done to avoid leakage of | ||||
| identity information to intermediaries (such as eavesdroppers on the | ||||
| communication path between the client application and the relying | ||||
| party) in the area of authentication and key exchange protocols. | ||||
| However, from current deployments the weak aspects with respect to | ||||
| security are: | ||||
| 1. Today business contracts are used to create federations between | ||||
| identity providers and relying parties. These contracts are not | ||||
| only financial agreements but they also define the rules about | ||||
| what information is exchanged between the AAA server and the | ||||
| relying party and the potential involvement of AAA proxies and | ||||
| brokers as intermediaries. While these contracts are openly | ||||
| available for university federations they are not public in case | ||||
| of commercial deployments. Quite naturally, there is a lack of | ||||
| transparency for external parties. | ||||
| 2. In today's deployments the ability for users to determine the | ||||
| amount of information exchanged with other parties over time, as | ||||
| well as the possibility to control the amount of information | ||||
| exposed via an explict consent is limited. This is partially due | ||||
| the nature of application capabilities at the time of network | ||||
| access authentication. However, with the envisioned extension of | ||||
| the usage, as described in this document, it is desirable to | ||||
| offer these capabilities. | ||||
| 6. Deployment Considerations | 6. Deployment Considerations | |||
| 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. | |||
| skipping to change at page 26, line 45 ¶ | skipping to change at page 33, line 45 ¶ | |||
| Pfitzmann, A., Hansen, M., and H. Tschofenig, "Terminology | Pfitzmann, A., Hansen, M., and H. Tschofenig, "Terminology | |||
| for Talking about Privacy by Data Minimization: Anonymity, | for Talking about Privacy by Data Minimization: Anonymity, | |||
| Unlinkability, Undetectability, Unobservability, | Unlinkability, Undetectability, Unobservability, | |||
| Pseudonymity, and Identity Management", | Pseudonymity, and Identity Management", | |||
| draft-hansen-privacy-terminology-01 (work in progress), | draft-hansen-privacy-terminology-01 (work in progress), | |||
| August 2010. | August 2010. | |||
| [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-00 (work in progress), | draft-ietf-abfab-gss-eap-01 (work in progress), | |||
| October 2010. | February 2011. | |||
| 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, "TLS | Nir, Y., Sheffer, Y., Tschofenig, H., and P. Gutmann, "TLS | |||
| using EAP Authentication", draft-nir-tls-eap-08 (work in | using EAP Authentication", draft-nir-tls-eap-10 (work in | |||
| progress), July 2010. | progress), February 2011. | |||
| [I-D.morris-privacy-considerations] | ||||
| Aboba, B., Morris, J., Peterson, J., and H. Tschofenig, | ||||
| "Privacy Considerations for Internet Protocols", | ||||
| draft-morris-privacy-considerations-02 (work in progress), | ||||
| November 2010. | ||||
| [RFC4017] Stanley, D., Walker, J., and B. Aboba, "Extensible | ||||
| Authentication Protocol (EAP) Method Requirements for | ||||
| Wireless LANs", RFC 4017, March 2005. | ||||
| [RFC5106] Tschofenig, H., Kroeselberg, D., Pashalidis, A., Ohba, Y., | ||||
| and F. Bersani, "The Extensible Authentication Protocol- | ||||
| Internet Key Exchange Protocol version 2 (EAP-IKEv2) | ||||
| Method", RFC 5106, February 2008. | ||||
| [RFC1964] Linn, J., "The Kerberos Version 5 GSS-API Mechanism", | [RFC1964] Linn, J., "The Kerberos Version 5 GSS-API Mechanism", | |||
| RFC 1964, June 1996. | RFC 1964, June 1996. | |||
| [RFC2203] Eisler, M., Chiu, A., and L. Ling, "RPCSEC_GSS Protocol | [RFC2203] Eisler, M., Chiu, A., and L. Ling, "RPCSEC_GSS Protocol | |||
| Specification", RFC 2203, September 1997. | Specification", RFC 2203, September 1997. | |||
| [RFC3645] Kwan, S., Garg, P., Gilroy, J., Esibov, L., Westhead, J., | [RFC3645] Kwan, S., Garg, P., Gilroy, J., Esibov, L., Westhead, J., | |||
| and R. Hall, "Generic Security Service Algorithm for | and R. Hall, "Generic Security Service Algorithm for | |||
| Secret Key Transaction Authentication for DNS (GSS-TSIG)", | Secret Key Transaction Authentication for DNS (GSS-TSIG)", | |||
| skipping to change at page 27, line 37 ¶ | skipping to change at page 35, line 5 ¶ | |||
| Security Layer (SASL)", RFC 4422, June 2006. | Security Layer (SASL)", RFC 4422, June 2006. | |||
| [RFC5056] Williams, N., "On the Use of Channel Bindings to Secure | [RFC5056] Williams, N., "On the Use of Channel Bindings to Secure | |||
| Channels", RFC 5056, November 2007. | Channels", RFC 5056, November 2007. | |||
| [RFC5801] Josefsson, S. and N. Williams, "Using Generic Security | [RFC5801] Josefsson, S. and N. Williams, "Using Generic Security | |||
| Service Application Program Interface (GSS-API) Mechanisms | Service Application Program Interface (GSS-API) Mechanisms | |||
| in Simple Authentication and Security Layer (SASL): The | in Simple Authentication and Security Layer (SASL): The | |||
| GS2 Mechanism Family", RFC 5801, July 2010. | GS2 Mechanism Family", RFC 5801, July 2010. | |||
| [RFC5849] Hammer-Lahav, E., "The OAuth 1.0 Protocol", RFC 5849, | ||||
| April 2010. | ||||
| [OASIS.saml-core-2.0-os] | [OASIS.saml-core-2.0-os] | |||
| 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. | |||
| URIs | URIs | |||
| [1] <http://www.eduroam.org> | [1] <http://www.openid.net> | |||
| [2] <http://www.eduroam.org> | ||||
| Authors' Addresses | Authors' Addresses | |||
| Josh Howlett | Josh Howlett | |||
| JANET(UK) | JANET(UK) | |||
| Lumen House, Library Avenue, Harwell | ||||
| Oxford OX11 0SG | ||||
| UK | ||||
| Phone: | Phone: +44 1235 822363 | |||
| Email: Josh.Howlett@ja.net | Email: Josh.Howlett@ja.net | |||
| Sam Hartman | Sam Hartman | |||
| Painless Security | Painless Security | |||
| Phone: | Phone: | |||
| Email: hartmans-ietf@mit.edu | Email: hartmans-ietf@mit.edu | |||
| Hannes Tschofenig | Hannes Tschofenig | |||
| Nokia Siemens Networks | Nokia Siemens Networks | |||
| End of changes. 50 change blocks. | ||||
| 238 lines changed or deleted | 593 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/ | ||||