mirror of https://github.com/portainer/portainer
216 lines
8.4 KiB
HTML
216 lines
8.4 KiB
HTML
<div>
|
|
<div class="col-sm-12 form-section-title">
|
|
Automatic user provisioning
|
|
</div>
|
|
<div class="form-group">
|
|
<span class="col-sm-12 text-muted small">
|
|
With automatic user provisioning enabled, Portainer will create user(s) automatically with standard user role. If
|
|
disabled, users must be created beforehand in Portainer in order to login.
|
|
</span>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="col-sm-3 col-lg-2 control-label text-left">Automatic user provisioning</label>
|
|
<label class="switch" style="margin-left: 20px">
|
|
<input type="checkbox" ng-model="$ctrl.settings.OAuthAutoCreateUsers" /><i></i>
|
|
</label>
|
|
</div>
|
|
|
|
<div ng-if="$ctrl.settings.OAuthAutoCreateUsers">
|
|
<div class="form-group">
|
|
<span class="col-sm-12 text-muted small">
|
|
<p>The users created by the automatic provisioning feature can be added to a default team on creation.</p>
|
|
<p>By assigning newly created users to a team they will be able to access the environments associated to that team. This setting is optional and if not set newly created users won't be able to access any environments.</p>
|
|
</span>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="col-sm-3 col-lg-2 control-label text-left">Default team</label>
|
|
<span class="small text-muted" style="margin-left: 20px;" ng-if="$ctrl.teams.length === 0">
|
|
You have not yet created any team. Head over the <a ui-sref="portainer.teams">teams view</a> to manage user teams.
|
|
</span>
|
|
<button type="button" class="btn btn-sm btn-danger" ng-click="$ctrl.settings.DefaultTeamID = null" ng-disabled="!$ctrl.settings.DefaultTeamID" ng-if="$ctrl.teams.length > 0"><i class="fa fa-times" aria-hidden="true"></i></button>
|
|
<div class="col-sm-9 col-lg-9" ng-if="$ctrl.teams.length > 0">
|
|
<select class="form-control" ng-model="$ctrl.settings.DefaultTeamID" ng-options="team.Id as team.Name for team in $ctrl.teams">
|
|
<option value="">No team</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<oauth-providers-selector on-select="$ctrl.onSelectProvider" provider="$ctrl.state.provider"></oauth-providers-selector>
|
|
|
|
<div class="col-sm-12 form-section-title">OAuth Configuration</div>
|
|
|
|
<div class="form-group" ng-if="$ctrl.state.provider.name == 'microsoft'">
|
|
<label for="oauth_microsoft_tenant_id" class="col-sm-3 col-lg-2 control-label text-left">
|
|
Tenant ID
|
|
<portainer-tooltip position="bottom" message="ID of the Azure AD directory in which you created the OAuth application"></portainer-tooltip>
|
|
</label>
|
|
<div class="col-sm-9 col-lg-10">
|
|
<input
|
|
type="text"
|
|
class="form-control"
|
|
id="oauth_microsoft_tenant_id"
|
|
placeholder="xxxxxxxxxxxxxxxxxxxx"
|
|
ng-model="$ctrl.state.microsoftTenantID"
|
|
ng-change="$ctrl.onMicrosoftTenantIDChange()"
|
|
/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="oauth_client_id" class="col-sm-3 col-lg-2 control-label text-left">
|
|
Client ID
|
|
<portainer-tooltip position="bottom" message="Public identifier of the OAuth application"></portainer-tooltip>
|
|
</label>
|
|
<div class="col-sm-9 col-lg-10">
|
|
<input
|
|
type="text"
|
|
class="form-control"
|
|
id="oauth_client_id"
|
|
ng-model="$ctrl.settings.ClientID"
|
|
placeholder="xxxxxxxxxxxxxxxxxxxx"
|
|
/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="oauth_client_secret" class="col-sm-3 col-lg-2 control-label text-left">
|
|
Client secret
|
|
</label>
|
|
<div class="col-sm-9 col-lg-10">
|
|
<input
|
|
type="password"
|
|
class="form-control"
|
|
id="oauth_client_secret"
|
|
ng-model="$ctrl.settings.ClientSecret"
|
|
placeholder="xxxxxxxxxxxxxxxxxxxx"
|
|
/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group" ng-if="$ctrl.state.provider.name == 'custom' || $ctrl.state.overrideConfiguration">
|
|
<label for="oauth_authorization_uri" class="col-sm-3 col-lg-2 control-label text-left">
|
|
Authorization URL
|
|
<portainer-tooltip
|
|
position="bottom"
|
|
message="URL used to authenticate against the OAuth provider. Will redirect the user to the OAuth provider login view"
|
|
></portainer-tooltip>
|
|
</label>
|
|
<div class="col-sm-9 col-lg-10">
|
|
<input
|
|
type="text"
|
|
class="form-control"
|
|
id="oauth_authorization_uri"
|
|
ng-model="$ctrl.settings.AuthorizationURI"
|
|
placeholder="https://example.com/oauth/authorize"
|
|
/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group" ng-if="$ctrl.state.provider.name == 'custom' || $ctrl.state.overrideConfiguration">
|
|
<label for="oauth_access_token_uri" class="col-sm-3 col-lg-2 control-label text-left">
|
|
Access token URL
|
|
<portainer-tooltip
|
|
position="bottom"
|
|
message="URL used by Portainer to exchange a valid OAuth authentication code for an access token"
|
|
></portainer-tooltip>
|
|
</label>
|
|
<div class="col-sm-9 col-lg-10">
|
|
<input
|
|
type="text"
|
|
class="form-control"
|
|
id="oauth_access_token_uri"
|
|
ng-model="$ctrl.settings.AccessTokenURI"
|
|
placeholder="https://example.com/oauth/token"
|
|
/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group" ng-if="$ctrl.state.provider.name == 'custom' || $ctrl.state.overrideConfiguration">
|
|
<label for="oauth_resource_uri" class="col-sm-3 col-lg-2 control-label text-left">
|
|
Resource URL
|
|
<portainer-tooltip
|
|
position="bottom"
|
|
message="URL used by Portainer to retrieve information about the authenticated user"
|
|
></portainer-tooltip>
|
|
</label>
|
|
<div class="col-sm-9 col-lg-10">
|
|
<input
|
|
type="text"
|
|
class="form-control"
|
|
id="oauth_resource_uri"
|
|
ng-model="$ctrl.settings.ResourceURI"
|
|
placeholder="https://example.com/user"
|
|
/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group" ng-if="$ctrl.state.provider.name == 'custom' || $ctrl.state.overrideConfiguration">
|
|
<label for="oauth_redirect_uri" class="col-sm-3 col-lg-2 control-label text-left">
|
|
Redirect URL
|
|
<portainer-tooltip
|
|
position="bottom"
|
|
message="URL used by the OAuth provider to redirect the user after successful authentication. Should be set to your Portainer instance URL"
|
|
></portainer-tooltip>
|
|
</label>
|
|
<div class="col-sm-9 col-lg-10">
|
|
<input
|
|
type="text"
|
|
class="form-control"
|
|
id="oauth_redirect_uri"
|
|
ng-model="$ctrl.settings.RedirectURI"
|
|
placeholder="http://yourportainer.com/"
|
|
/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group" ng-if="$ctrl.state.provider.name == 'custom' || $ctrl.state.overrideConfiguration">
|
|
<label for="oauth_user_identifier" class="col-sm-3 col-lg-2 control-label text-left">
|
|
User identifier
|
|
<portainer-tooltip
|
|
position="bottom"
|
|
message="Identifier that will be used by Portainer to create an account for the authenticated user. Retrieved from the resource server specified via the Resource URL field"
|
|
></portainer-tooltip>
|
|
</label>
|
|
<div class="col-sm-9 col-lg-10">
|
|
<input
|
|
type="text"
|
|
class="form-control"
|
|
id="oauth_user_identifier"
|
|
ng-model="$ctrl.settings.UserIdentifier"
|
|
placeholder="id"
|
|
/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group" ng-if="$ctrl.state.provider.name == 'custom' || $ctrl.state.overrideConfiguration">
|
|
<label for="oauth_scopes" class="col-sm-3 col-lg-2 control-label text-left">
|
|
Scopes
|
|
<portainer-tooltip
|
|
position="bottom"
|
|
message="Scopes required by the OAuth provider to retrieve information about the authenticated user. Refer to your OAuth provider documentation for more information about this"
|
|
></portainer-tooltip>
|
|
</label>
|
|
<div class="col-sm-9 col-lg-10">
|
|
<input
|
|
type="text"
|
|
class="form-control"
|
|
id="oauth_scopes"
|
|
ng-model="$ctrl.settings.Scopes"
|
|
placeholder="id,email,name"
|
|
/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group" ng-if="$ctrl.state.provider.name != 'custom'">
|
|
<div class="col-sm-12">
|
|
<a class="small interactive" ng-if="!$ctrl.state.overrideConfiguration" ng-click="$ctrl.state.overrideConfiguration = true;">
|
|
<i class="fa fa-wrench space-right" aria-hidden="true"></i> Override default configuration
|
|
</a>
|
|
<a class="small interactive" ng-if="$ctrl.state.overrideConfiguration" ng-click="$ctrl.state.overrideConfiguration = false; $ctrl.resetProviderConfiguration()">
|
|
<i class="fa fa-cogs space-right" aria-hidden="true"></i> Use default configuration
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|