//-----------------------------------------------------------------------
//
// Copyright (c) Outercurve Foundation. All rights reserved.
//
//-----------------------------------------------------------------------
namespace DotNetOpenAuth.OAuth2 {
///
/// OAuth 2 Client types
///
///
/// Based on their ability to
/// authenticate securely with the authorization server (i.e. ability to
/// maintain the confidentiality of their client credentials).
/// The client type designation is based on the authorization server's
/// definition of secure authentication and its acceptable exposure
/// levels of client credentials.
/// The authorization server SHOULD NOT make assumptions about the client
/// type, nor accept the type information provided by the client
/// developer without first establishing trust.
/// A client application consisting of multiple components, each with its
/// own client type (e.g. a distributed client with both a confidential
/// server-based component and a public browser-based component), MUST
/// register each component separately as a different client to ensure
/// proper handling by the authorization server. The authorization
/// server MAY provider tools to manage such complex clients through a
/// single administration interface.
///
public enum ClientType {
///
/// Clients capable of maintaining the confidentiality of their
/// credentials (e.g. client implemented on a secure server with
/// restricted access to the client credentials), or capable of secure
/// client authentication using other means.
///
Confidential,
///
/// Clients incapable of maintaining the confidentiality of their
/// credentials (e.g. clients executing on the device used by the
/// resource owner such as an installed native application or a web
/// browser-based application), and incapable of secure client
/// authentication via any other means.
///
Public,
}
}