2021-03-18 21:02:04 +00:00
|
|
|
import React from "react";
|
|
|
|
import { Check, X, AlertTriangle } from "react-feather";
|
|
|
|
|
|
|
|
function Comparison() {
|
|
|
|
return (
|
|
|
|
<section className="">
|
|
|
|
<div className="container">
|
|
|
|
<h2 id="correctness">Why authentik?</h2>
|
|
|
|
<div className="table-responsive">
|
|
|
|
<table className="comparison">
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<th></th>
|
|
|
|
<th className="authentik">authentik</th>
|
|
|
|
<th>Keycloak</th>
|
|
|
|
<th>Microsoft ADFS</th>
|
|
|
|
<th>Microsoft Azure AD</th>
|
|
|
|
<th>Okta</th>
|
|
|
|
<th>Duo</th>
|
2021-03-20 10:52:41 +00:00
|
|
|
<th>Authelia</th>
|
2021-03-18 21:02:04 +00:00
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<thead className="group">
|
|
|
|
<tr>
|
2021-06-16 12:54:44 +00:00
|
|
|
<th>Protocol Support (as a provider)</th>
|
2021-03-18 21:02:04 +00:00
|
|
|
<th></th>
|
|
|
|
<th></th>
|
|
|
|
<th></th>
|
|
|
|
<th></th>
|
|
|
|
<th></th>
|
|
|
|
<th></th>
|
2021-03-20 10:52:41 +00:00
|
|
|
<th></th>
|
2021-03-18 21:02:04 +00:00
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
<tr>
|
|
|
|
<td className="row-label">SAML2</td>
|
2022-05-09 19:22:41 +00:00
|
|
|
<td className="result passed authentik">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
2021-03-18 21:02:04 +00:00
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td className="row-label">OAuth2 and OIDC</td>
|
2022-05-09 19:22:41 +00:00
|
|
|
<td className="result passed authentik">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
2023-01-26 00:14:38 +00:00
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
2022-05-09 19:22:41 +00:00
|
|
|
</td>
|
2021-03-18 21:02:04 +00:00
|
|
|
</tr>
|
2023-04-18 09:10:05 +00:00
|
|
|
<tr>
|
|
|
|
<td className="row-label">SCIM</td>
|
|
|
|
<td className="result passed authentik">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result warning">
|
|
|
|
<AlertTriangle></AlertTriangle>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
</tr>
|
2021-06-07 20:27:53 +00:00
|
|
|
<tr>
|
|
|
|
<td className="row-label">LDAP</td>
|
2022-05-09 19:22:41 +00:00
|
|
|
<td className="result passed authentik">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result warning">
|
|
|
|
<AlertTriangle></AlertTriangle>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
2023-04-18 09:10:05 +00:00
|
|
|
<td className="row-label">RADIUS</td>
|
|
|
|
<td className="result passed authentik">
|
|
|
|
<Check></Check>
|
2022-05-09 19:22:41 +00:00
|
|
|
</td>
|
|
|
|
<td className="result warning">
|
|
|
|
<AlertTriangle></AlertTriangle>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
2023-04-18 09:10:05 +00:00
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
2022-05-09 19:22:41 +00:00
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
2021-06-07 20:27:53 +00:00
|
|
|
</tr>
|
2021-03-18 21:02:04 +00:00
|
|
|
</tbody>
|
2021-06-16 12:54:44 +00:00
|
|
|
<thead className="group">
|
|
|
|
<tr>
|
|
|
|
<th>Federation support</th>
|
|
|
|
<th></th>
|
|
|
|
<th></th>
|
|
|
|
<th></th>
|
|
|
|
<th></th>
|
|
|
|
<th></th>
|
|
|
|
<th></th>
|
|
|
|
<th></th>
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
<tr>
|
|
|
|
<td className="row-label">SAML2</td>
|
2022-05-09 19:22:41 +00:00
|
|
|
<td className="result passed authentik">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
2021-06-16 12:54:44 +00:00
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td className="row-label">OAuth2 and OIDC</td>
|
2022-05-09 19:22:41 +00:00
|
|
|
<td className="result passed authentik">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
2023-01-26 00:14:38 +00:00
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
2022-05-09 19:22:41 +00:00
|
|
|
</td>
|
2021-06-16 12:54:44 +00:00
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td className="row-label">OAuth1</td>
|
2022-05-09 19:22:41 +00:00
|
|
|
<td className="result passed authentik">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
2021-06-16 12:54:44 +00:00
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td className="row-label">LDAP</td>
|
2022-05-09 19:22:41 +00:00
|
|
|
<td className="result passed authentik">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td className="row-label">SCIM</td>
|
2023-04-18 09:10:05 +00:00
|
|
|
<td className="result warning authentik">
|
|
|
|
<AlertTriangle></AlertTriangle>
|
2022-05-09 19:22:41 +00:00
|
|
|
</td>
|
|
|
|
<td className="result warning">
|
|
|
|
<AlertTriangle></AlertTriangle>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
2021-06-16 12:54:44 +00:00
|
|
|
</tr>
|
|
|
|
</tbody>
|
2021-03-18 21:02:04 +00:00
|
|
|
<thead className="group">
|
|
|
|
<tr>
|
|
|
|
<th>Use-cases</th>
|
|
|
|
<th></th>
|
|
|
|
<th></th>
|
|
|
|
<th></th>
|
|
|
|
<th></th>
|
|
|
|
<th></th>
|
|
|
|
<th></th>
|
2021-03-20 10:52:41 +00:00
|
|
|
<th></th>
|
2021-03-18 21:02:04 +00:00
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
<tr>
|
|
|
|
<td className="row-label">Authentication</td>
|
2022-05-09 19:22:41 +00:00
|
|
|
<td className="result passed authentik">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
2021-03-18 21:02:04 +00:00
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td className="row-label">Enrollment</td>
|
2022-05-09 19:22:41 +00:00
|
|
|
<td className="result passed authentik">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
2021-03-18 21:02:04 +00:00
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td className="row-label">Self-service</td>
|
2022-05-09 19:22:41 +00:00
|
|
|
<td className="result passed authentik">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
2023-01-25 13:49:07 +00:00
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
2022-05-09 19:22:41 +00:00
|
|
|
</td>
|
2021-03-18 21:02:04 +00:00
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
<thead className="group">
|
|
|
|
<tr>
|
|
|
|
<th>Features</th>
|
|
|
|
<th></th>
|
|
|
|
<th></th>
|
|
|
|
<th></th>
|
|
|
|
<th></th>
|
|
|
|
<th></th>
|
|
|
|
<th></th>
|
2021-03-20 10:52:41 +00:00
|
|
|
<th></th>
|
2021-03-18 21:02:04 +00:00
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
<tr>
|
|
|
|
<td className="row-label">MFA</td>
|
2022-05-09 19:22:41 +00:00
|
|
|
<td className="result passed authentik">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
2021-03-18 21:02:04 +00:00
|
|
|
</tr>
|
|
|
|
<tr>
|
2022-05-09 19:22:41 +00:00
|
|
|
<td className="row-label">
|
|
|
|
Conditional Access
|
|
|
|
</td>
|
|
|
|
<td className="result passed authentik">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result warning">
|
|
|
|
<AlertTriangle></AlertTriangle>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result warning">
|
|
|
|
<AlertTriangle></AlertTriangle>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
2021-03-18 21:02:04 +00:00
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td className="row-label">Open-source</td>
|
2022-05-09 19:22:41 +00:00
|
|
|
<td className="result passed authentik">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
2021-03-18 21:02:04 +00:00
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td className="row-label">Application Proxy</td>
|
2022-05-09 19:22:41 +00:00
|
|
|
<td className="result passed authentik">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result warning">
|
|
|
|
<AlertTriangle></AlertTriangle>
|
|
|
|
</td>
|
|
|
|
<td className="result warning">
|
|
|
|
<AlertTriangle></AlertTriangle>
|
|
|
|
</td>
|
|
|
|
<td className="result passed">
|
|
|
|
<Check></Check>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result failed">
|
|
|
|
<X></X>
|
|
|
|
</td>
|
|
|
|
<td className="result warning">
|
|
|
|
<AlertTriangle></AlertTriangle>
|
|
|
|
</td>
|
2021-03-18 21:02:04 +00:00
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</section>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
export default Comparison;
|