Files
desktop-edge-win/DesktopEdge/Views/Controls/AddIdentitySignerChoice.xaml
Christopher Britton c10a94578b Enroll to cert / token (#1001)
* add enroll-to fields to AddIdentity payload

* add AddIdentityViewModel for external JWT signer discovery draft

* wire signer discovery into add-by-URL preflight, simplify JWT signer fetching significantly

* add signer discovery and picker to add-by-URL draft

* clean up enroll identifier payload lambdas to be more readable

* extract dialog fade-in/fade-out animation helpers

* discover external JWT signers and add a dedicated enroll-mode dialog when applicable

* Trigger external auth for enroll to token/cert on 'join network'

* clear the identities list when the tunneler shuts off

* remove identity clear from LoadStatusFromService in favor of the one in ServiceClient_OnClientDisconnected

* initial multi-tun support commit. used for development

* fix reconnect loop

* Update release notes

---------

Co-authored-by: dovholuknf <46322585+dovholuknf@users.noreply.github.com>
2026-05-07 11:50:33 -04:00

78 lines
4.0 KiB
XML

<!--
Copyright NetFoundry Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<UserControl x:Class="ZitiDesktopEdge.AddIdentitySignerChoice"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ZitiDesktopEdge"
mc:Ignorable="d"
d:Width="400">
<Grid Margin="0" Height="Auto" VerticalAlignment="Center">
<Border Background="{StaticResource DarkBackgroundBrush}"
BorderBrush="Gray"
BorderThickness="2"
CornerRadius="10"
Padding="10" />
<StackPanel Margin="5,10,5,10">
<Label Content="Configure Enrollment" Foreground="White" FontSize="16" HorizontalAlignment="Center" FontWeight="Bold" />
<Label Content="Choose how this identity connects to the network" Foreground="White" Opacity="0.7" FontSize="12" HorizontalAlignment="Center" Margin="0,0,0,10" />
<Label Content="Identity Provider"
Foreground="White" Opacity="0.7" FontSize="12"
HorizontalAlignment="Center"
Visibility="{Binding SignerPickerVisibility}" />
<ComboBox x:Name="SignerPicker"
ItemsSource="{Binding Signers}"
SelectedItem="{Binding SelectedSigner}"
DisplayMemberPath="Name"
Visibility="{Binding SignerPickerVisibility}"
Background="White" Foreground="Black"
FontSize="12" Padding="8,2"
HorizontalAlignment="Center" HorizontalContentAlignment="Center"
Width="200" Margin="0,0,0,15" />
<StackPanel x:Name="EnrollModePanel"
Orientation="Vertical"
HorizontalAlignment="Center"
Visibility="{Binding EnrollModeRadiosVisibility}"
Margin="0,0,0,15">
<RadioButton GroupName="EnrollMode"
IsChecked="{Binding IsUserSessionSelected}"
Foreground="White" Margin="0,2">
<StackPanel>
<TextBlock Text="User session" FontSize="12" />
<TextBlock Text="requires periodic login, tied to user account"
FontSize="10" Opacity="0.7" />
</StackPanel>
</RadioButton>
<RadioButton GroupName="EnrollMode"
IsChecked="{Binding IsDeviceCertificateSelected}"
Foreground="White" Margin="0,2">
<StackPanel>
<TextBlock Text="Device certificate" FontSize="12" />
<TextBlock Text="no re-auth, tied to this machine"
FontSize="10" Opacity="0.7" />
</StackPanel>
</RadioButton>
</StackPanel>
<local:StyledButton x:Name="JoinNetworkBtn" OnClick="JoinNetworkUrl" Label="Join Network" />
</StackPanel>
<Image Source="/Assets/Images/close.png" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="0,20,20,0" Width="15" Height="15" Cursor="Hand" MouseUp="ExecuteClose" />
</Grid>
</UserControl>