-
Notifications
You must be signed in to change notification settings - Fork 4.5k
/
SiteAuthSettings.cs
501 lines (494 loc) · 30.2 KB
/
SiteAuthSettings.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// <auto-generated/>
#nullable disable
using System;
using System.Collections.Generic;
using Azure.Core;
using Azure.ResourceManager.Models;
namespace Azure.ResourceManager.AppService.Models
{
/// <summary> Configuration settings for the Azure App Service Authentication / Authorization feature. </summary>
public partial class SiteAuthSettings : ResourceData
{
/// <summary>
/// Keeps track of any properties unknown to the library.
/// <para>
/// To assign an object to the value of this property use <see cref="BinaryData.FromObjectAsJson{T}(T, System.Text.Json.JsonSerializerOptions?)"/>.
/// </para>
/// <para>
/// To assign an already formatted json string to this property use <see cref="BinaryData.FromString(string)"/>.
/// </para>
/// <para>
/// Examples:
/// <list type="bullet">
/// <item>
/// <term>BinaryData.FromObjectAsJson("foo")</term>
/// <description>Creates a payload of "foo".</description>
/// </item>
/// <item>
/// <term>BinaryData.FromString("\"foo\"")</term>
/// <description>Creates a payload of "foo".</description>
/// </item>
/// <item>
/// <term>BinaryData.FromObjectAsJson(new { key = "value" })</term>
/// <description>Creates a payload of { "key": "value" }.</description>
/// </item>
/// <item>
/// <term>BinaryData.FromString("{\"key\": \"value\"}")</term>
/// <description>Creates a payload of { "key": "value" }.</description>
/// </item>
/// </list>
/// </para>
/// </summary>
private IDictionary<string, BinaryData> _serializedAdditionalRawData;
/// <summary> Initializes a new instance of <see cref="SiteAuthSettings"/>. </summary>
public SiteAuthSettings()
{
AllowedExternalRedirectUrls = new ChangeTrackingList<string>();
AllowedAudiences = new ChangeTrackingList<string>();
AdditionalLoginParams = new ChangeTrackingList<string>();
GoogleOAuthScopes = new ChangeTrackingList<string>();
FacebookOAuthScopes = new ChangeTrackingList<string>();
GitHubOAuthScopes = new ChangeTrackingList<string>();
MicrosoftAccountOAuthScopes = new ChangeTrackingList<string>();
}
/// <summary> Initializes a new instance of <see cref="SiteAuthSettings"/>. </summary>
/// <param name="id"> The id. </param>
/// <param name="name"> The name. </param>
/// <param name="resourceType"> The resourceType. </param>
/// <param name="systemData"> The systemData. </param>
/// <param name="isEnabled"> <code>true</code> if the Authentication / Authorization feature is enabled for the current app; otherwise, <code>false</code>. </param>
/// <param name="runtimeVersion">
/// 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.
/// </param>
/// <param name="unauthenticatedClientAction"> The action to take when an unauthenticated client attempts to access the app. </param>
/// <param name="isTokenStoreEnabled">
/// <code>true</code> to durably store platform-specific security tokens that are obtained during login flows; otherwise, <code>false</code>.
/// The default is <code>false</code>.
/// </param>
/// <param name="allowedExternalRedirectUrls">
/// 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.
/// </param>
/// <param name="defaultProvider">
/// 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".
/// </param>
/// <param name="tokenRefreshExtensionHours">
/// 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.
/// </param>
/// <param name="clientId">
/// 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
/// </param>
/// <param name="clientSecret">
/// 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
/// </param>
/// <param name="clientSecretSettingName"> The app setting name that contains the client secret of the relying party application. </param>
/// <param name="clientSecretCertificateThumbprintString">
/// An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property acts as
/// a replacement for the Client Secret. It is also optional.
/// </param>
/// <param name="issuer">
/// 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
/// </param>
/// <param name="validateIssuer"> Gets a value indicating whether the issuer should be a valid HTTPS url and be validated as such. </param>
/// <param name="allowedAudiences">
/// Allowed audience values to consider when validating JWTs issued by
/// Azure Active Directory. Note that the <code>ClientID</code> value is always considered an
/// allowed audience, regardless of this setting.
/// </param>
/// <param name="additionalLoginParams">
/// Login parameters to send to the OpenID Connect authorization endpoint when
/// a user logs in. Each parameter must be in the form "key=value".
/// </param>
/// <param name="aadClaimsAuthorization"> Gets a JSON string containing the Azure AD Acl settings. </param>
/// <param name="googleClientId">
/// 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/
/// </param>
/// <param name="googleClientSecret">
/// 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/
/// </param>
/// <param name="googleClientSecretSettingName">
/// The app setting name that contains the client secret associated with
/// the Google web application.
/// </param>
/// <param name="googleOAuthScopes">
/// 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/
/// </param>
/// <param name="facebookAppId">
/// 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
/// </param>
/// <param name="facebookAppSecret">
/// 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
/// </param>
/// <param name="facebookAppSecretSettingName"> The app setting name that contains the app secret used for Facebook Login. </param>
/// <param name="facebookOAuthScopes">
/// 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
/// </param>
/// <param name="gitHubClientId">
/// The Client Id of the GitHub app used for login.
/// This setting is required for enabling Github login
/// </param>
/// <param name="gitHubClientSecret">
/// The Client Secret of the GitHub app used for Github Login.
/// This setting is required for enabling Github login.
/// </param>
/// <param name="gitHubClientSecretSettingName">
/// The app setting name that contains the client secret of the Github
/// app used for GitHub Login.
/// </param>
/// <param name="gitHubOAuthScopes">
/// The OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.
/// This setting is optional
/// </param>
/// <param name="twitterConsumerKey">
/// 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
/// </param>
/// <param name="twitterConsumerSecret">
/// 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
/// </param>
/// <param name="twitterConsumerSecretSettingName">
/// The app setting name that contains the OAuth 1.0a consumer secret of the Twitter
/// application used for sign-in.
/// </param>
/// <param name="microsoftAccountClientId">
/// 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
/// </param>
/// <param name="microsoftAccountClientSecret">
/// 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
/// </param>
/// <param name="microsoftAccountClientSecretSettingName">
/// The app setting name containing the OAuth 2.0 client secret that was created for the
/// app used for authentication.
/// </param>
/// <param name="microsoftAccountOAuthScopes">
/// 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
/// </param>
/// <param name="isAuthFromFile">
/// "true" if the auth config settings should be read from a file,
/// "false" otherwise
/// </param>
/// <param name="authFilePath">
/// The path of the config file containing auth settings.
/// If the path is relative, base will the site's root directory.
/// </param>
/// <param name="configVersion">
/// The ConfigVersion of the Authentication / Authorization feature in use for the current app.
/// The setting in this value can control the behavior of the control plane for Authentication / Authorization.
/// </param>
/// <param name="kind"> Kind of resource. </param>
/// <param name="serializedAdditionalRawData"> Keeps track of any properties unknown to the library. </param>
internal SiteAuthSettings(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, bool? isEnabled, string runtimeVersion, UnauthenticatedClientAction? unauthenticatedClientAction, bool? isTokenStoreEnabled, IList<string> allowedExternalRedirectUrls, BuiltInAuthenticationProvider? defaultProvider, double? tokenRefreshExtensionHours, string clientId, string clientSecret, string clientSecretSettingName, string clientSecretCertificateThumbprintString, string issuer, bool? validateIssuer, IList<string> allowedAudiences, IList<string> additionalLoginParams, string aadClaimsAuthorization, string googleClientId, string googleClientSecret, string googleClientSecretSettingName, IList<string> googleOAuthScopes, string facebookAppId, string facebookAppSecret, string facebookAppSecretSettingName, IList<string> facebookOAuthScopes, string gitHubClientId, string gitHubClientSecret, string gitHubClientSecretSettingName, IList<string> gitHubOAuthScopes, string twitterConsumerKey, string twitterConsumerSecret, string twitterConsumerSecretSettingName, string microsoftAccountClientId, string microsoftAccountClientSecret, string microsoftAccountClientSecretSettingName, IList<string> microsoftAccountOAuthScopes, string isAuthFromFile, string authFilePath, string configVersion, string kind, IDictionary<string, BinaryData> serializedAdditionalRawData) : base(id, name, resourceType, systemData)
{
IsEnabled = isEnabled;
RuntimeVersion = runtimeVersion;
UnauthenticatedClientAction = unauthenticatedClientAction;
IsTokenStoreEnabled = isTokenStoreEnabled;
AllowedExternalRedirectUrls = allowedExternalRedirectUrls;
DefaultProvider = defaultProvider;
TokenRefreshExtensionHours = tokenRefreshExtensionHours;
ClientId = clientId;
ClientSecret = clientSecret;
ClientSecretSettingName = clientSecretSettingName;
ClientSecretCertificateThumbprintString = clientSecretCertificateThumbprintString;
Issuer = issuer;
ValidateIssuer = validateIssuer;
AllowedAudiences = allowedAudiences;
AdditionalLoginParams = additionalLoginParams;
AadClaimsAuthorization = aadClaimsAuthorization;
GoogleClientId = googleClientId;
GoogleClientSecret = googleClientSecret;
GoogleClientSecretSettingName = googleClientSecretSettingName;
GoogleOAuthScopes = googleOAuthScopes;
FacebookAppId = facebookAppId;
FacebookAppSecret = facebookAppSecret;
FacebookAppSecretSettingName = facebookAppSecretSettingName;
FacebookOAuthScopes = facebookOAuthScopes;
GitHubClientId = gitHubClientId;
GitHubClientSecret = gitHubClientSecret;
GitHubClientSecretSettingName = gitHubClientSecretSettingName;
GitHubOAuthScopes = gitHubOAuthScopes;
TwitterConsumerKey = twitterConsumerKey;
TwitterConsumerSecret = twitterConsumerSecret;
TwitterConsumerSecretSettingName = twitterConsumerSecretSettingName;
MicrosoftAccountClientId = microsoftAccountClientId;
MicrosoftAccountClientSecret = microsoftAccountClientSecret;
MicrosoftAccountClientSecretSettingName = microsoftAccountClientSecretSettingName;
MicrosoftAccountOAuthScopes = microsoftAccountOAuthScopes;
IsAuthFromFile = isAuthFromFile;
AuthFilePath = authFilePath;
ConfigVersion = configVersion;
Kind = kind;
_serializedAdditionalRawData = serializedAdditionalRawData;
}
/// <summary> <code>true</code> if the Authentication / Authorization feature is enabled for the current app; otherwise, <code>false</code>. </summary>
[WirePath("properties.enabled")]
public bool? IsEnabled { get; set; }
/// <summary>
/// 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.
/// </summary>
[WirePath("properties.runtimeVersion")]
public string RuntimeVersion { get; set; }
/// <summary> The action to take when an unauthenticated client attempts to access the app. </summary>
[WirePath("properties.unauthenticatedClientAction")]
public UnauthenticatedClientAction? UnauthenticatedClientAction { get; set; }
/// <summary>
/// <code>true</code> to durably store platform-specific security tokens that are obtained during login flows; otherwise, <code>false</code>.
/// The default is <code>false</code>.
/// </summary>
[WirePath("properties.tokenStoreEnabled")]
public bool? IsTokenStoreEnabled { get; set; }
/// <summary>
/// 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.
/// </summary>
[WirePath("properties.allowedExternalRedirectUrls")]
public IList<string> AllowedExternalRedirectUrls { get; }
/// <summary>
/// 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".
/// </summary>
[WirePath("properties.defaultProvider")]
public BuiltInAuthenticationProvider? DefaultProvider { get; set; }
/// <summary>
/// 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.
/// </summary>
[WirePath("properties.tokenRefreshExtensionHours")]
public double? TokenRefreshExtensionHours { get; set; }
/// <summary>
/// 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
/// </summary>
[WirePath("properties.clientId")]
public string ClientId { get; set; }
/// <summary>
/// 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
/// </summary>
[WirePath("properties.clientSecret")]
public string ClientSecret { get; set; }
/// <summary> The app setting name that contains the client secret of the relying party application. </summary>
[WirePath("properties.clientSecretSettingName")]
public string ClientSecretSettingName { get; set; }
/// <summary>
/// An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property acts as
/// a replacement for the Client Secret. It is also optional.
/// </summary>
[WirePath("properties.clientSecretCertificateThumbprint")]
public string ClientSecretCertificateThumbprintString { get; set; }
/// <summary>
/// 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
/// </summary>
[WirePath("properties.issuer")]
public string Issuer { get; set; }
/// <summary> Gets a value indicating whether the issuer should be a valid HTTPS url and be validated as such. </summary>
[WirePath("properties.validateIssuer")]
public bool? ValidateIssuer { get; set; }
/// <summary>
/// Allowed audience values to consider when validating JWTs issued by
/// Azure Active Directory. Note that the <code>ClientID</code> value is always considered an
/// allowed audience, regardless of this setting.
/// </summary>
[WirePath("properties.allowedAudiences")]
public IList<string> AllowedAudiences { get; }
/// <summary>
/// Login parameters to send to the OpenID Connect authorization endpoint when
/// a user logs in. Each parameter must be in the form "key=value".
/// </summary>
[WirePath("properties.additionalLoginParams")]
public IList<string> AdditionalLoginParams { get; }
/// <summary> Gets a JSON string containing the Azure AD Acl settings. </summary>
[WirePath("properties.aadClaimsAuthorization")]
public string AadClaimsAuthorization { get; set; }
/// <summary>
/// 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/
/// </summary>
[WirePath("properties.googleClientId")]
public string GoogleClientId { get; set; }
/// <summary>
/// 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/
/// </summary>
[WirePath("properties.googleClientSecret")]
public string GoogleClientSecret { get; set; }
/// <summary>
/// The app setting name that contains the client secret associated with
/// the Google web application.
/// </summary>
[WirePath("properties.googleClientSecretSettingName")]
public string GoogleClientSecretSettingName { get; set; }
/// <summary>
/// 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/
/// </summary>
[WirePath("properties.googleOAuthScopes")]
public IList<string> GoogleOAuthScopes { get; }
/// <summary>
/// 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
/// </summary>
[WirePath("properties.facebookAppId")]
public string FacebookAppId { get; set; }
/// <summary>
/// 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
/// </summary>
[WirePath("properties.facebookAppSecret")]
public string FacebookAppSecret { get; set; }
/// <summary> The app setting name that contains the app secret used for Facebook Login. </summary>
[WirePath("properties.facebookAppSecretSettingName")]
public string FacebookAppSecretSettingName { get; set; }
/// <summary>
/// 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
/// </summary>
[WirePath("properties.facebookOAuthScopes")]
public IList<string> FacebookOAuthScopes { get; }
/// <summary>
/// The Client Id of the GitHub app used for login.
/// This setting is required for enabling Github login
/// </summary>
[WirePath("properties.gitHubClientId")]
public string GitHubClientId { get; set; }
/// <summary>
/// The Client Secret of the GitHub app used for Github Login.
/// This setting is required for enabling Github login.
/// </summary>
[WirePath("properties.gitHubClientSecret")]
public string GitHubClientSecret { get; set; }
/// <summary>
/// The app setting name that contains the client secret of the Github
/// app used for GitHub Login.
/// </summary>
[WirePath("properties.gitHubClientSecretSettingName")]
public string GitHubClientSecretSettingName { get; set; }
/// <summary>
/// The OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.
/// This setting is optional
/// </summary>
[WirePath("properties.gitHubOAuthScopes")]
public IList<string> GitHubOAuthScopes { get; }
/// <summary>
/// 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
/// </summary>
[WirePath("properties.twitterConsumerKey")]
public string TwitterConsumerKey { get; set; }
/// <summary>
/// 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
/// </summary>
[WirePath("properties.twitterConsumerSecret")]
public string TwitterConsumerSecret { get; set; }
/// <summary>
/// The app setting name that contains the OAuth 1.0a consumer secret of the Twitter
/// application used for sign-in.
/// </summary>
[WirePath("properties.twitterConsumerSecretSettingName")]
public string TwitterConsumerSecretSettingName { get; set; }
/// <summary>
/// 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
/// </summary>
[WirePath("properties.microsoftAccountClientId")]
public string MicrosoftAccountClientId { get; set; }
/// <summary>
/// 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
/// </summary>
[WirePath("properties.microsoftAccountClientSecret")]
public string MicrosoftAccountClientSecret { get; set; }
/// <summary>
/// The app setting name containing the OAuth 2.0 client secret that was created for the
/// app used for authentication.
/// </summary>
[WirePath("properties.microsoftAccountClientSecretSettingName")]
public string MicrosoftAccountClientSecretSettingName { get; set; }
/// <summary>
/// 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
/// </summary>
[WirePath("properties.microsoftAccountOAuthScopes")]
public IList<string> MicrosoftAccountOAuthScopes { get; }
/// <summary>
/// "true" if the auth config settings should be read from a file,
/// "false" otherwise
/// </summary>
[WirePath("properties.isAuthFromFile")]
public string IsAuthFromFile { get; set; }
/// <summary>
/// The path of the config file containing auth settings.
/// If the path is relative, base will the site's root directory.
/// </summary>
[WirePath("properties.authFilePath")]
public string AuthFilePath { get; set; }
/// <summary>
/// The ConfigVersion of the Authentication / Authorization feature in use for the current app.
/// The setting in this value can control the behavior of the control plane for Authentication / Authorization.
/// </summary>
[WirePath("properties.configVersion")]
public string ConfigVersion { get; set; }
/// <summary> Kind of resource. </summary>
[WirePath("kind")]
public string Kind { get; set; }
}
}