# encoding: utf-8
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
module Azure::ARM::Web
module Models
#
# Configuration settings for the Azure App Service Authentication /
# Authorization feature.
#
class SiteAuthSettings < ProxyOnlyResource
include MsRestAzure
# @return [Boolean] true
if the Authentication /
# Authorization feature is enabled for the current app; otherwise,
# false
.
attr_accessor :enabled
# @return [String] The RuntimeVersion of the Authentication /
# Authorization feature in use for the current app.
# The setting in this value can control the behavior of certain features
# in the Authentication / Authorization module.
attr_accessor :runtime_version
# @return [UnauthenticatedClientAction] The action to take when an
# unauthenticated client attempts to access the app. Possible values
# include: 'RedirectToLoginPage', 'AllowAnonymous'
attr_accessor :unauthenticated_client_action
# @return [Boolean] true
to durably store platform-specific
# security tokens that are obtained during login flows; otherwise,
# false
.
# The default is false
.
attr_accessor :token_store_enabled
# @return [Array] External URLs that can be redirected to as part
# of logging in or logging out of the app. Note that the query string
# part of the URL is ignored.
# This is an advanced setting typically only needed by Windows Store
# application backends.
# Note that URLs within the current domain are always implicitly allowed.
attr_accessor :allowed_external_redirect_urls
# @return [BuiltInAuthenticationProvider] The default authentication
# provider to use when multiple providers are configured.
# This setting is only needed if multiple providers are configured and
# the unauthenticated client
# action is set to "RedirectToLoginPage". Possible values include:
# 'AzureActiveDirectory', 'Facebook', 'Google', 'MicrosoftAccount',
# 'Twitter'
attr_accessor :default_provider
# @return [Float] The number of hours after session token expiration that
# a session token can be used to
# call the token refresh API. The default is 72 hours.
attr_accessor :token_refresh_extension_hours
# @return [String] The Client ID of this relying party application, known
# as the client_id.
# This setting is required for enabling OpenID Connection authentication
# with Azure Active Directory or
# other 3rd party OpenID Connect providers.
# More information on OpenID Connect:
# http://openid.net/specs/openid-connect-core-1_0.html
attr_accessor :client_id
# @return [String] The Client Secret of this relying party application
# (in Azure Active Directory, this is also referred to as the Key).
# This setting is optional. If no client secret is configured, the OpenID
# Connect implicit auth flow is used to authenticate end users.
# Otherwise, the OpenID Connect Authorization Code Flow is used to
# authenticate end users.
# More information on OpenID Connect:
# http://openid.net/specs/openid-connect-core-1_0.html
attr_accessor :client_secret
# @return [String] The OpenID Connect Issuer URI that represents the
# entity which issues access tokens for this application.
# When using Azure Active Directory, this value is the URI of the
# directory tenant, e.g. https://sts.windows.net/{tenant-guid}/.
# This URI is a case-sensitive identifier for the token issuer.
# More information on OpenID Connect Discovery:
# http://openid.net/specs/openid-connect-discovery-1_0.html
attr_accessor :issuer
# @return [Array] Allowed audience values to consider when
# validating JWTs issued by
# Azure Active Directory. Note that the ClientID
value is
# always considered an
# allowed audience, regardless of this setting.
attr_accessor :allowed_audiences
# @return [Array] Login parameters to send to the OpenID Connect
# authorization endpoint when
# a user logs in. Each parameter must be in the form "key=value".
attr_accessor :additional_login_params
# @return [String] The OpenID Connect Client ID for the Google web
# application.
# This setting is required for enabling Google Sign-In.
# Google Sign-In documentation:
# https://developers.google.com/identity/sign-in/web/
attr_accessor :google_client_id
# @return [String] The client secret associated with the Google web
# application.
# This setting is required for enabling Google Sign-In.
# Google Sign-In documentation:
# https://developers.google.com/identity/sign-in/web/
attr_accessor :google_client_secret
# @return [Array] The OAuth 2.0 scopes that will be requested as
# part of Google Sign-In authentication.
# This setting is optional. If not specified, "openid", "profile", and
# "email" are used as default scopes.
# Google Sign-In documentation:
# https://developers.google.com/identity/sign-in/web/
attr_accessor :google_oauth_scopes
# @return [String] The App ID of the Facebook app used for login.
# This setting is required for enabling Facebook Login.
# Facebook Login documentation:
# https://developers.facebook.com/docs/facebook-login
attr_accessor :facebook_app_id
# @return [String] The App Secret of the Facebook app used for Facebook
# Login.
# This setting is required for enabling Facebook Login.
# Facebook Login documentation:
# https://developers.facebook.com/docs/facebook-login
attr_accessor :facebook_app_secret
# @return [Array] The OAuth 2.0 scopes that will be requested as
# part of Facebook Login authentication.
# This setting is optional.
# Facebook Login documentation:
# https://developers.facebook.com/docs/facebook-login
attr_accessor :facebook_oauth_scopes
# @return [String] The OAuth 1.0a consumer key of the Twitter application
# used for sign-in.
# This setting is required for enabling Twitter Sign-In.
# Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in
attr_accessor :twitter_consumer_key
# @return [String] The OAuth 1.0a consumer secret of the Twitter
# application used for sign-in.
# This setting is required for enabling Twitter Sign-In.
# Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in
attr_accessor :twitter_consumer_secret
# @return [String] The OAuth 2.0 client ID that was created for the app
# used for authentication.
# This setting is required for enabling Microsoft Account authentication.
# Microsoft Account OAuth documentation:
# https://dev.onedrive.com/auth/msa_oauth.htm
attr_accessor :microsoft_account_client_id
# @return [String] The OAuth 2.0 client secret that was created for the
# app used for authentication.
# This setting is required for enabling Microsoft Account authentication.
# Microsoft Account OAuth documentation:
# https://dev.onedrive.com/auth/msa_oauth.htm
attr_accessor :microsoft_account_client_secret
# @return [Array] The OAuth 2.0 scopes that will be requested as
# part of Microsoft Account authentication.
# This setting is optional. If not specified, "wl.basic" is used as the
# default scope.
# Microsoft Account Scopes and permissions documentation:
# https://msdn.microsoft.com/en-us/library/dn631845.aspx
attr_accessor :microsoft_account_oauth_scopes
#
# Mapper for SiteAuthSettings class as Ruby Hash.
# This will be used for serialization/deserialization.
#
def self.mapper()
{
required: false,
serialized_name: 'SiteAuthSettings',
type: {
name: 'Composite',
class_name: 'SiteAuthSettings',
model_properties: {
id: {
required: false,
read_only: true,
serialized_name: 'id',
type: {
name: 'String'
}
},
name: {
required: false,
read_only: true,
serialized_name: 'name',
type: {
name: 'String'
}
},
kind: {
required: false,
serialized_name: 'kind',
type: {
name: 'String'
}
},
type: {
required: false,
read_only: true,
serialized_name: 'type',
type: {
name: 'String'
}
},
enabled: {
required: false,
serialized_name: 'properties.enabled',
type: {
name: 'Boolean'
}
},
runtime_version: {
required: false,
serialized_name: 'properties.runtimeVersion',
type: {
name: 'String'
}
},
unauthenticated_client_action: {
required: false,
serialized_name: 'properties.unauthenticatedClientAction',
type: {
name: 'Enum',
module: 'UnauthenticatedClientAction'
}
},
token_store_enabled: {
required: false,
serialized_name: 'properties.tokenStoreEnabled',
type: {
name: 'Boolean'
}
},
allowed_external_redirect_urls: {
required: false,
serialized_name: 'properties.allowedExternalRedirectUrls',
type: {
name: 'Sequence',
element: {
required: false,
serialized_name: 'StringElementType',
type: {
name: 'String'
}
}
}
},
default_provider: {
required: false,
serialized_name: 'properties.defaultProvider',
type: {
name: 'Enum',
module: 'BuiltInAuthenticationProvider'
}
},
token_refresh_extension_hours: {
required: false,
serialized_name: 'properties.tokenRefreshExtensionHours',
type: {
name: 'Double'
}
},
client_id: {
required: false,
serialized_name: 'properties.clientId',
type: {
name: 'String'
}
},
client_secret: {
required: false,
serialized_name: 'properties.clientSecret',
type: {
name: 'String'
}
},
issuer: {
required: false,
serialized_name: 'properties.issuer',
type: {
name: 'String'
}
},
allowed_audiences: {
required: false,
serialized_name: 'properties.allowedAudiences',
type: {
name: 'Sequence',
element: {
required: false,
serialized_name: 'StringElementType',
type: {
name: 'String'
}
}
}
},
additional_login_params: {
required: false,
serialized_name: 'properties.additionalLoginParams',
type: {
name: 'Sequence',
element: {
required: false,
serialized_name: 'StringElementType',
type: {
name: 'String'
}
}
}
},
google_client_id: {
required: false,
serialized_name: 'properties.googleClientId',
type: {
name: 'String'
}
},
google_client_secret: {
required: false,
serialized_name: 'properties.googleClientSecret',
type: {
name: 'String'
}
},
google_oauth_scopes: {
required: false,
serialized_name: 'properties.googleOAuthScopes',
type: {
name: 'Sequence',
element: {
required: false,
serialized_name: 'StringElementType',
type: {
name: 'String'
}
}
}
},
facebook_app_id: {
required: false,
serialized_name: 'properties.facebookAppId',
type: {
name: 'String'
}
},
facebook_app_secret: {
required: false,
serialized_name: 'properties.facebookAppSecret',
type: {
name: 'String'
}
},
facebook_oauth_scopes: {
required: false,
serialized_name: 'properties.facebookOAuthScopes',
type: {
name: 'Sequence',
element: {
required: false,
serialized_name: 'StringElementType',
type: {
name: 'String'
}
}
}
},
twitter_consumer_key: {
required: false,
serialized_name: 'properties.twitterConsumerKey',
type: {
name: 'String'
}
},
twitter_consumer_secret: {
required: false,
serialized_name: 'properties.twitterConsumerSecret',
type: {
name: 'String'
}
},
microsoft_account_client_id: {
required: false,
serialized_name: 'properties.microsoftAccountClientId',
type: {
name: 'String'
}
},
microsoft_account_client_secret: {
required: false,
serialized_name: 'properties.microsoftAccountClientSecret',
type: {
name: 'String'
}
},
microsoft_account_oauth_scopes: {
required: false,
serialized_name: 'properties.microsoftAccountOAuthScopes',
type: {
name: 'Sequence',
element: {
required: false,
serialized_name: 'StringElementType',
type: {
name: 'String'
}
}
}
}
}
}
}
end
end
end
end