コード例 #1
0
        public void ConfigureAuth(IAppBuilder app)
        {
            app.SetDefaultSignInAsAuthenticationType("ExternalCookie");
            var cookieOptions = new CookieAuthenticationOptions
            {
                AuthenticationType = "ExternalCookie",
                AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Active,
                CookieName         = ".AspNet.ExternalCookie",
                LogoutPath         = new PathString("/Account/LogOff"),
                LoginPath          = new PathString("/Account/Login")
            };

            app.UseCookieAuthentication(cookieOptions);

            var twitterOptions = new Microsoft.Owin.Security.Twitter.TwitterAuthenticationOptions
            {
                ConsumerKey    = WebConfigurationManager.AppSettings["TwitterKey"],
                ConsumerSecret = WebConfigurationManager.AppSettings["TwitterSecret"],
                Provider       = new Microsoft.Owin.Security.Twitter.TwitterAuthenticationProvider
                {
                    OnAuthenticated = (context) =>
                    {
                        context.Identity.AddClaim(new System.Security.Claims.Claim("urn:twitter:access_token", context.AccessToken, null, "Twitter"));
                        context.Identity.AddClaim(new System.Security.Claims.Claim("urn:twitter:access_token_secret", context.AccessTokenSecret, null, "Twitter"));
                        return(Task.FromResult(true));
                    }
                }
            };

            app.UseTwitterAuthentication(twitterOptions);
        }
コード例 #2
0
        private static void ConfigTwitter(IAppBuilder app)
        {
            var twitter        = TDSettings.DefaultTwitter();
            var twitterOptions = new Microsoft.Owin.Security.Twitter.TwitterAuthenticationOptions()
            {
                ConsumerKey    = twitter.ID,
                ConsumerSecret = twitter.Key,
                Provider       = new Microsoft.Owin.Security.Twitter.TwitterAuthenticationProvider
                {
                    OnAuthenticated = context =>
                    {
                        context.Identity.AddClaim(new Claim("urn:twitter:access_token", context.AccessToken));
                        context.Identity.AddClaim(new Claim("urn:twitter:access_secret", context.AccessTokenSecret));
                        return(Task.FromResult(0));
                    }
                },
                BackchannelCertificateValidator = new Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator(new[]
                {
                    "A5EF0B11CEC04103A34A659048B21CE0572D7D47",  // VeriSign Class 3 Secure Server CA - G2
                    "0D445C165344C1827E1D20AB25F40163D8BE79A5",  // VeriSign Class 3 Secure Server CA - G3
                    "7FD365A7C2DDECBBF03009F34339FA02AF333133",  // VeriSign Class 3 Public Primary Certification Authority - G5
                    "39A55D933676616E73A761DFA16A7E59CDE66FAD",  // Symantec Class 3 Secure Server CA - G4
                    "‎add53f6680fe66e383cbac3e60922e3b4c412bed", // Symantec Class 3 EV SSL CA - G3
                    "4eb6d578499b1ccf5f581ead56be3d9b6744a5e5",  // VeriSign Class 3 Primary CA - G5
                    "5168FF90AF0207753CCCD9656462A212B859723B",  // DigiCert SHA2 High Assurance Server C‎A
                    "B13EC36903F8BF4701D498261A0802EF63642BC3"   // DigiCert High Assurance EV Root CA
                })
            };

            app.UseTwitterAuthentication(twitterOptions);
        }
コード例 #3
0
ファイル: Startup.cs プロジェクト: logicpoweredsol/maginco
        public void Configuration(IAppBuilder app)
        {
            //app.CreatePerOwinContext(ApplicationDbContext.Create);
            //app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
            //app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);
            app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                AuthenticationType = "ApplicationCookie",
                LoginPath          = new PathString("/auth/login")
            });

            DataProtectionProvider = app.GetDataProtectionProvider();


            app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

            // Enables the application to temporarily store user information when they are verifying the second factor in the two-factor authentication process.
            app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5));

            if (!string.IsNullOrEmpty(ConfigurationManager.AppSettings.Get("FacebookAppId")))
            {
                var facebookOptions = new Microsoft.Owin.Security.Facebook.FacebookAuthenticationOptions
                {
                    AppId     = ConfigurationManager.AppSettings.Get("FacebookAppId"),
                    AppSecret = ConfigurationManager.AppSettings.Get("FacebookAppSecret"),

                    Provider = new Microsoft.Owin.Security.Facebook.FacebookAuthenticationProvider
                    {
                        OnAuthenticated = (context) =>
                        {
                            context.Identity.AddClaim(new System.Security.Claims.Claim("urn:facebook:access_token", context.AccessToken, XmlSchemaString, "Facebook"));
                            //context.Identity.AddClaim(new System.Security.Claims.Claim("urn:facebook:email", context.Email, XmlSchemaString, "Facebook"));
                            foreach (var x in context.User)
                            {
                                var    claimType  = string.Format("urn:facebook:{0}", x.Key);
                                string claimValue = x.Value.ToString();
                                if (!context.Identity.HasClaim(claimType, claimValue))
                                {
                                    context.Identity.AddClaim(new System.Security.Claims.Claim(claimType, claimValue, XmlSchemaString, "Facebook"));
                                }
                            }
                            return(Task.FromResult(0));
                        }
                    }
                };

                facebookOptions.Scope.Add("email");
                app.UseFacebookAuthentication(facebookOptions);
            }



            if (!string.IsNullOrEmpty(ConfigurationManager.AppSettings.Get("TwitterAppId")))
            {
                var twitterOptions = new Microsoft.Owin.Security.Twitter.TwitterAuthenticationOptions
                {
                    ConsumerKey    = ConfigurationManager.AppSettings.Get("TwitterAppId"),
                    ConsumerSecret = ConfigurationManager.AppSettings.Get("TwitterAppSecret"),
                    BackchannelCertificateValidator = new CertificateSubjectKeyIdentifierValidator(new[]
                    {
                        "A5EF0B11CEC04103A34A659048B21CE0572D7D47",
                        "0D445C165344C1827E1D20AB25F40163D8BE79A5",
                        "7FD365A7C2DDECBBF03009F34339FA02AF333133",
                        "39A55D933676616E73A761DFA16A7E59CDE66FAD",
                        "5168FF90AF0207753CCCD9656462A212B859723B",
                        "B13EC36903F8BF4701D498261A0802EF63642BC3"
                    }),
                    Provider = new Microsoft.Owin.Security.Twitter.TwitterAuthenticationProvider
                    {
                        OnAuthenticated = (context) =>
                        {
                            context.Identity.AddClaim(new System.Security.Claims.Claim("urn:twitter:access_token", context.AccessToken, XmlSchemaString, "Twitter"));
                            return(Task.FromResult(0));
                        }
                    }
                };

                app.UseTwitterAuthentication(twitterOptions);
            }

            if (!string.IsNullOrEmpty(ConfigurationManager.AppSettings.Get("GoogleAppId")))
            {
                var GoogleOptions = new Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationOptions
                {
                    ClientId     = ConfigurationManager.AppSettings.Get("GoogleAppId"),
                    ClientSecret = ConfigurationManager.AppSettings.Get("GoogleAppSecret"),
                    //SignInAsAuthenticationType = DefaultAuthenticationTypes.ExternalCookie,
                    Provider = new Microsoft.Owin.Security.Google.GoogleOAuth2AuthenticationProvider
                    {
                        OnAuthenticated = (context) =>
                        {
                            context.Identity.AddClaim(new System.Security.Claims.Claim("urn:google:access_token", context.AccessToken, XmlSchemaString, "Google"));
                            context.Identity.AddClaim(new System.Security.Claims.Claim("First_Name", context.GivenName, XmlSchemaString, "Google"));
                            context.Identity.AddClaim(new System.Security.Claims.Claim("Last_Name", context.FamilyName, XmlSchemaString, "Google"));
                            context.Identity.AddClaim(new System.Security.Claims.Claim("Email", context.Email, XmlSchemaString, "Google"));
                            return(Task.FromResult(0));
                        }
                    }
                };


                app.UseGoogleAuthentication(GoogleOptions);
            }

            if (!string.IsNullOrEmpty(ConfigurationManager.AppSettings.Get("LinkedInAppId")))
            {
                var LinkedInOptions = new Owin.Security.Providers.LinkedIn.LinkedInAuthenticationOptions
                {
                    ClientId     = ConfigurationManager.AppSettings.Get("LinkedInAppId"),
                    ClientSecret = ConfigurationManager.AppSettings.Get("LinkedInAppSecret"),

                    Provider = new Owin.Security.Providers.LinkedIn.LinkedInAuthenticationProvider
                    {
                        OnAuthenticated = (context) =>
                        {
                            context.Identity.AddClaim(new System.Security.Claims.Claim("urn:google:access_token", context.AccessToken, XmlSchemaString, "LinkedIn"));
                            context.Identity.AddClaim(new System.Security.Claims.Claim("First_Name", context.GivenName, XmlSchemaString, "LinkedIn"));
                            context.Identity.AddClaim(new System.Security.Claims.Claim("Last_Name", context.FamilyName, XmlSchemaString, "LinkedIn"));
                            context.Identity.AddClaim(new System.Security.Claims.Claim("Email", context.Email, XmlSchemaString, "LinkedIn"));
                            context.Identity.AddClaim(new System.Security.Claims.Claim("Company", context.Positions, XmlSchemaString, "LinkedIn"));
                            return(Task.FromResult(0));
                        }
                    }
                };


                app.UseLinkedInAuthentication(LinkedInOptions);
            }
        }
コード例 #4
0
        // For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864
        public void ConfigureAuth(IAppBuilder app)
        {
            // Enable the application to use a cookie to store information for the signed in user
            app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                LoginPath = new PathString("/Account/Login")
            });
            // Use a cookie to temporarily store information about a user logging in with a third party login provider
            app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

            // Microsoft : Create application
            // https://account.live.com/developers/applications
            if (ConfigurationManager.AppSettings.Get("MicrosoftClientId").Length > 0)
            {
                var msaccountOptions = new Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationOptions()
                {
                    ClientId = ConfigurationManager.AppSettings.Get("MicrosoftClientId"),
                    ClientSecret = ConfigurationManager.AppSettings.Get("MicrosoftClientSecret"),
                    Provider = new Microsoft.Owin.Security.MicrosoftAccount.MicrosoftAccountAuthenticationProvider()
                    {
                        OnAuthenticated = (context) =>
                            {
                                context.Identity.AddClaim(new System.Security.Claims.Claim("urn:microsoftaccount:access_token", context.AccessToken, XmlSchemaString, "Microsoft"));
                                return Task.FromResult(0);
                            }
                    }
                };

                app.UseMicrosoftAccountAuthentication(msaccountOptions);
            }

            // Twitter : Create a new application
            // https://dev.twitter.com/apps
            if (ConfigurationManager.AppSettings.Get("TwitterConsumerKey").Length > 0)
            {
                var twitterOptions = new Microsoft.Owin.Security.Twitter.TwitterAuthenticationOptions()
                {
                    ConsumerKey = ConfigurationManager.AppSettings.Get("TwitterConsumerKey"),
                    ConsumerSecret = ConfigurationManager.AppSettings.Get("TwitterConsumerSecret"),
                    Provider = new Microsoft.Owin.Security.Twitter.TwitterAuthenticationProvider()
                    {
                        OnAuthenticated = (context) =>
                            {
                                context.Identity.AddClaim(new System.Security.Claims.Claim("urn:twitter:access_token", context.AccessToken, XmlSchemaString, "Twitter"));
                                return Task.FromResult(0);
                            }
                    }
                };

                app.UseTwitterAuthentication(twitterOptions);
            }

            // Facebook : Create New App
            // https://dev.twitter.com/apps
            if (ConfigurationManager.AppSettings.Get("FacebookAppId").Length > 0)
            {
                var facebookOptions = new Microsoft.Owin.Security.Facebook.FacebookAuthenticationOptions()
                {
                    AppId = ConfigurationManager.AppSettings.Get("FacebookAppId"),
                    AppSecret = ConfigurationManager.AppSettings.Get("FacebookAppSecret"),
                    Provider = new Microsoft.Owin.Security.Facebook.FacebookAuthenticationProvider()
                    {
                        OnAuthenticated = (context) =>
                            {
                                context.Identity.AddClaim(new System.Security.Claims.Claim("urn:facebook:access_token", context.AccessToken, XmlSchemaString, "Facebook"));
                                foreach (var x in context.User)
                                {
                                    var claimType = string.Format("urn:facebook:{0}", x.Key);
                                    string claimValue = x.Value.ToString();
                                    if (!context.Identity.HasClaim(claimType, claimValue))
                                        context.Identity.AddClaim(new System.Security.Claims.Claim(claimType, claimValue, XmlSchemaString, "Facebook"));

                                }
                                return Task.FromResult(0);
                            }
                    }

                };
                app.UseFacebookAuthentication(facebookOptions);
            }

            // Foursquare : Create a new app
            // https://foursquare.com/developers/apps
            if (ConfigurationManager.AppSettings.Get("FoursquareClientId").Length > 0)
            {
                var foursquareOptions = new Citrius.Owin.Security.Foursquare.FoursquareAuthenticationOptions()
                {
                    ClientId = ConfigurationManager.AppSettings.Get("FoursquareClientId"),
                    ClientSecret = ConfigurationManager.AppSettings.Get("FoursquareClientSecret"),
                    Provider = new Citrius.Owin.Security.Foursquare.FoursquareAuthenticationProvider()
                    {
                        OnAuthenticated = context =>
                        {
                            context.Identity.AddClaim(new System.Security.Claims.Claim("urn:foursquare:access_token", context.AccessToken, XmlSchemaString, "Foursquare"));
                            //foreach (var x in context.User)
                            //{
                            //    var claimType = string.Format("urn:foursquare:{0}", x.Key);
                            //    string claimValue = x.Value.ToString();
                            //    if (!context.Identity.HasClaim(claimType, claimValue))
                            //        context.Identity.AddClaim(new System.Security.Claims.Claim(claimType, claimValue, XmlSchemaString, "Foursquare"));
                            //}

                            return Task.FromResult(0);
                        }
                    }
                };

                app.UseFoursquareAuthentication(foursquareOptions);

                //app.UseFoursquareAuthentication(
                //    clientId: ConfigurationManager.AppSettings.Get("FoursquareClientId"),
                //    clientSecret: ConfigurationManager.AppSettings.Get("FoursquareClientSecret"));

            }

            // Google : nothing to do here.
            app.UseGoogleAuthentication();
        }