public async Task ParseJsonFull() { var tempConfigFile = new FileInfo(Path.GetTempFileName()); File.WriteAllText(tempConfigFile.FullName, @"{ ""ClientId"": ""testoktaid"", ""OktaDomain"": ""https://dev-00000.oktapreview.com"", ""RedirectUri"": ""com.test:/redirect"", ""PostLogoutRedirectUri"": ""com.test:/logout"", ""Scope"": ""test1 test2 test3"", ""AuthorizationServerId"": ""test1"", ""ClockSkew"": 90 }" ); OktaConfig config = await OktaConfig.LoadFromJsonFileAsync(tempConfigFile.FullName); Assert.Equal("testoktaid", config.ClientId); Assert.Equal("https://dev-00000.oktapreview.com", config.OktaDomain); Assert.Equal("com.test:/redirect", config.RedirectUri); Assert.Equal("com.test:/logout", config.PostLogoutRedirectUri); Assert.Equal("test1 test2 test3", config.Scope); Assert.Equal((IEnumerable <string>)(new string[] { "test1", "test2", "test3" }), config.Scopes); Assert.Equal("test1", config.AuthorizationServerId); Assert.Equal(TimeSpan.FromSeconds(90), config.ClockSkew); try { tempConfigFile.Delete(); } catch (Exception ex) { Debug.WriteLine("Unable to clean up temp file used for testing OktaConfig JSON file parsing at " + tempConfigFile.FullName + Environment.NewLine + ex.ToString()); } }
public static bool ClientIsPopulated(this OktaConfig oktaConfig) { return(oktaConfig != null && !string.IsNullOrWhiteSpace(oktaConfig.Domain) && !string.IsNullOrWhiteSpace(oktaConfig.ClientId) && !string.IsNullOrWhiteSpace(oktaConfig.ClientSecret)); }
private async void FabOnClick(object sender, EventArgs eventArgs) { View view = (View)sender; OidcClient client = new OidcClient(this, await OktaConfig.LoadFromXmlStreamAsync(Assets.Open("OktaConfig.xml"))); var res = await client.SignInWithBrowserAsync(); res.AccessToken.Clone(); }
public override bool FinishedLaunching(UIApplication app, NSDictionary options) { global::Xamarin.Forms.Forms.SetFlags("CollectionView_Experimental"); global::Xamarin.Forms.Forms.Init(); LoadApplication(new T()); bool result = base.FinishedLaunching(app, options); OktaContext.Init(new OidcClient(Window.RootViewController, OktaConfig.LoadFromPList("OktaConfig.plist"))); return(result); }
public UserService(IRepository <Entities.Users.User> userRepository, IOptions <OktaConfig> oktaOptions, IMapper mapper, ILogger <UserService> logger) { _oktaConfig = oktaOptions.Value; _oktaClient = new OktaClient(new OktaClientConfiguration { OktaDomain = _oktaConfig.OktaDomain, Token = _oktaConfig.ApiToken }); _userRepository = userRepository; _mapper = mapper; _logger = logger; }
protected override void OnCreate(Bundle savedInstanceState) { OktaContext.Init(new OidcClient(this, OktaConfig.LoadFromXmlStream(Assets.Open("OktaConfig.xml")))); // TODO: change this to use .AddSignXXXCompletedListener methods. OktaContext.Current.SignInCompleted += (sender, args) => Shell.Current.GoToAsync("//ProfilePage"); OktaContext.Current.SignOutCompleted += (sender, args) => Shell.Current.GoToAsync("//ProfilePage"); TabLayoutResource = Resource.Layout.Tabbar; ToolbarResource = Resource.Layout.Toolbar; base.OnCreate(savedInstanceState); global::Xamarin.Essentials.Platform.Init(this, savedInstanceState); global::Xamarin.Forms.Forms.Init(this, savedInstanceState); LoadApplication(new OktaApp()); }
public override void ViewDidLoad() { base.ViewDidLoad(); // Perform any additional setup after loading the view, typically from a nib. OktaConfig config = OktaConfig.LoadFromPList("OktaConfig.plist"); this.configTestView.Text = $"Domain: {config.OktaDomain}\n" + $"ClientId: {config.ClientId}\n" + $"RedirectUri: {config.RedirectUri}\n" + $"PostLogoutRedirecturi: {config.PostLogoutRedirectUri}\n" + $"Scope: {string.Join(", ", config.Scopes)}\n" + $"ClockSkew: {config.ClockSkew.ToString()}\n"; client = new OidcClient(this, config); }
public static bool DomainIsPopulated(this OktaConfig oktaConfig) { return(!string.IsNullOrWhiteSpace(oktaConfig?.Domain)); }
public static IServiceCollection AddOktaMvcAuthentication(this IServiceCollection services, OktaConfig oktaConfig) { if (services == null) { throw new ArgumentNullException(nameof(services)); } if (oktaConfig.ClientIsPopulated()) { services.AddAuthentication(options => { options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme; options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme; options.DefaultChallengeScheme = OktaDefaults.MvcAuthenticationScheme; }) .AddCookie() .AddOktaMvc(new OktaMvcOptions { OktaDomain = oktaConfig.Domain, ClientId = oktaConfig.ClientId, ClientSecret = oktaConfig.ClientSecret, AuthorizationServerId = oktaConfig.AuthorizationServerId ?? "" }); } return(services); }