feat: 🛂 integrate Authentik authentication with Coolify
- Configured Authentik as the OAuth provider in Coolify.
This commit is contained in:
@@ -17,6 +17,7 @@ class SettingsOauth extends Component
|
|||||||
$carry["oauth_settings_map.$setting->provider.client_secret"] = 'nullable';
|
$carry["oauth_settings_map.$setting->provider.client_secret"] = 'nullable';
|
||||||
$carry["oauth_settings_map.$setting->provider.redirect_uri"] = 'nullable';
|
$carry["oauth_settings_map.$setting->provider.redirect_uri"] = 'nullable';
|
||||||
$carry["oauth_settings_map.$setting->provider.tenant"] = 'nullable';
|
$carry["oauth_settings_map.$setting->provider.tenant"] = 'nullable';
|
||||||
|
$carry["oauth_settings_map.$setting->provider.base_url"] = 'nullable';
|
||||||
|
|
||||||
return $carry;
|
return $carry;
|
||||||
}, []);
|
}, []);
|
||||||
|
@@ -21,6 +21,7 @@ class EventServiceProvider extends ServiceProvider
|
|||||||
],
|
],
|
||||||
\SocialiteProviders\Manager\SocialiteWasCalled::class => [
|
\SocialiteProviders\Manager\SocialiteWasCalled::class => [
|
||||||
\SocialiteProviders\Azure\AzureExtendSocialite::class.'@handle',
|
\SocialiteProviders\Azure\AzureExtendSocialite::class.'@handle',
|
||||||
|
\SocialiteProviders\Authentik\AuthentikExtendSocialite::class.'@handle',
|
||||||
],
|
],
|
||||||
ProxyStarted::class => [
|
ProxyStarted::class => [
|
||||||
ProxyStartedNotification::class,
|
ProxyStartedNotification::class,
|
||||||
|
@@ -18,6 +18,17 @@ function get_socialite_provider(string $provider)
|
|||||||
return Socialite::driver('azure')->setConfig($azure_config);
|
return Socialite::driver('azure')->setConfig($azure_config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($provider == 'authentik') {
|
||||||
|
$authentik_config = new \SocialiteProviders\Manager\Config(
|
||||||
|
$oauth_setting->client_id,
|
||||||
|
$oauth_setting->client_secret,
|
||||||
|
$oauth_setting->redirect_uri,
|
||||||
|
['base_url' => $oauth_setting->base_url],
|
||||||
|
);
|
||||||
|
|
||||||
|
return Socialite::driver('authentik')->setConfig($authentik_config);
|
||||||
|
}
|
||||||
|
|
||||||
$config = [
|
$config = [
|
||||||
'client_id' => $oauth_setting->client_id,
|
'client_id' => $oauth_setting->client_id,
|
||||||
'client_secret' => $oauth_setting->client_secret,
|
'client_secret' => $oauth_setting->client_secret,
|
||||||
|
@@ -35,6 +35,7 @@
|
|||||||
"pusher/pusher-php-server": "^7.2",
|
"pusher/pusher-php-server": "^7.2",
|
||||||
"resend/resend-laravel": "^0.13.0",
|
"resend/resend-laravel": "^0.13.0",
|
||||||
"sentry/sentry-laravel": "^4.6",
|
"sentry/sentry-laravel": "^4.6",
|
||||||
|
"socialiteproviders/authentik": "^5.2",
|
||||||
"socialiteproviders/microsoft-azure": "^5.1",
|
"socialiteproviders/microsoft-azure": "^5.1",
|
||||||
"spatie/laravel-activitylog": "^4.7.3",
|
"spatie/laravel-activitylog": "^4.7.3",
|
||||||
"spatie/laravel-data": "^3.4.3",
|
"spatie/laravel-data": "^3.4.3",
|
||||||
|
50
composer.lock
generated
50
composer.lock
generated
@@ -7586,6 +7586,56 @@
|
|||||||
],
|
],
|
||||||
"time": "2024-09-19T12:58:53+00:00"
|
"time": "2024-09-19T12:58:53+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "socialiteproviders/authentik",
|
||||||
|
"version": "5.2.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/SocialiteProviders/Authentik.git",
|
||||||
|
"reference": "4cf129cf04728a38e0531c54454464b162f0fa66"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/SocialiteProviders/Authentik/zipball/4cf129cf04728a38e0531c54454464b162f0fa66",
|
||||||
|
"reference": "4cf129cf04728a38e0531c54454464b162f0fa66",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-json": "*",
|
||||||
|
"php": "^8.0",
|
||||||
|
"socialiteproviders/manager": "^4.4"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"SocialiteProviders\\Authentik\\": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "rf152",
|
||||||
|
"email": "git@rf152.co.uk"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Authentik OAuth2 Provider for Laravel Socialite",
|
||||||
|
"keywords": [
|
||||||
|
"authentik",
|
||||||
|
"laravel",
|
||||||
|
"oauth",
|
||||||
|
"provider",
|
||||||
|
"socialite"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"docs": "https://socialiteproviders.com/authentik",
|
||||||
|
"issues": "https://github.com/socialiteproviders/providers/issues",
|
||||||
|
"source": "https://github.com/socialiteproviders/providers"
|
||||||
|
},
|
||||||
|
"time": "2023-11-07T22:21:16+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "socialiteproviders/manager",
|
"name": "socialiteproviders/manager",
|
||||||
"version": "v4.6.0",
|
"version": "v4.6.0",
|
||||||
|
@@ -38,4 +38,11 @@ return [
|
|||||||
'tenant' => env('AZURE_TENANT_ID'),
|
'tenant' => env('AZURE_TENANT_ID'),
|
||||||
'proxy' => env('AZURE_PROXY'),
|
'proxy' => env('AZURE_PROXY'),
|
||||||
],
|
],
|
||||||
|
|
||||||
|
'authentik' => [
|
||||||
|
'base_url' => env('AUTHENTIK_BASE_URL'),
|
||||||
|
'client_id' => env('AUTHENTIK_CLIENT_ID'),
|
||||||
|
'client_secret' => env('AUTHENTIK_CLIENT_SECRET'),
|
||||||
|
'redirect' => env('AUTHENTIK_REDIRECT_URI'),
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
@@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('oauth_settings', function (Blueprint $table) {
|
||||||
|
Schema::table('oauth_settings', function (Blueprint $table) {
|
||||||
|
$table->string('base_url')->nullable();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('oauth_settings', function (Blueprint $table) {
|
||||||
|
Schema::table('oauth_settings', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('base_url');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
@@ -32,5 +32,9 @@ class OauthSettingSeeder extends Seeder
|
|||||||
'id' => 4,
|
'id' => 4,
|
||||||
'provider' => 'google',
|
'provider' => 'google',
|
||||||
]);
|
]);
|
||||||
|
OauthSetting::firstOrCreate([
|
||||||
|
'id' => 5,
|
||||||
|
'provider' => 'authentik',
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"auth.login": "Login",
|
"auth.login": "Login",
|
||||||
|
"auth.login.authentik": "Login with Authentik",
|
||||||
"auth.login.azure": "Login with Microsoft",
|
"auth.login.azure": "Login with Microsoft",
|
||||||
"auth.login.bitbucket": "Login with Bitbucket",
|
"auth.login.bitbucket": "Login with Bitbucket",
|
||||||
"auth.login.github": "Login with GitHub",
|
"auth.login.github": "Login with GitHub",
|
||||||
|
@@ -32,6 +32,10 @@
|
|||||||
<x-forms.input id="oauth_settings_map.{{ $oauth_setting->provider }}.tenant"
|
<x-forms.input id="oauth_settings_map.{{ $oauth_setting->provider }}.tenant"
|
||||||
label="Tenant" />
|
label="Tenant" />
|
||||||
@endif
|
@endif
|
||||||
|
@if ($oauth_setting->provider == 'authentik')
|
||||||
|
<x-forms.input id="oauth_settings_map.{{ $oauth_setting->provider }}.base_url"
|
||||||
|
label="Base URL" />
|
||||||
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
Reference in New Issue
Block a user