昨今認証認可のニーズが高まってきている感じがします。
先に結論
これはあくまでも私の見解なので、参考としてご覧ください。
もしこれから比較される方おられれば、最新の一次情報を参照した上での判断が絶対に必要になります。
- スケジュール優先
Auth0 - 機能優先
Auth0
authlete(+keycloak) - コスト優先(短期
cognito or authlete(+keycloak) - コスト優先(長期
congito or authlete(+keycloak)
補足
※OpenAMに関してはOSSとして使いにくい状況なので選択肢から外しています。
※コストに関してはユーザ数次第なので、実際はケースバイケースかと思います。
プロダクト比較
cognito | auth0 | keycloak | authlete | |
---|---|---|---|---|
認証・認可方式 | Oauth2.0 Open ID Connect |
Oauth2.0 Open ID Connect |
SAML2.0 Oauth2.0 Open ID Connect |
Oauth2.0 Open ID Connect ※認可に特化 |
外部Idp認証連携 ※line/google/yahooなど |
〇 | 〇 | 〇 | - |
エンタープライズ認証連携 ※AD/LDAP/SAMLなど |
〇 | 〇 | 〇 | - |
実装コスト サンプル・ドキュメントから判断 |
△ | 〇 | △ | 〇 |
SLA | 99.90% | 99.90% | インフラ依存 | ? |
スケーラビリティ | 10tps (認証) |
100tps (認証/エンタープライズの場合) |
インフラ依存 | ? |
機能 | 〇 | ◎ | ◎ | 〇 |
イニシャルコスト | やすい | ? | OSS | ? |
プロダクト所感
-
cognito
外部IDPとはOpen ID Connect話せるが、自身がOIDCのIDPになるには独自にいろいろ作りこみが必要
Implicit Flowはなんとか標準機能で作れるか? -
auth0
実装は一番楽だと思う
ただし、ユーザの属性情報に住所氏名とか追加しようとすると難しくなる -
authlete
OIDC準拠といった部分では随一
標準に完全に乗る場合はほぼ唯一の選択肢か? -
keycloak
OSSなので、自由にできるのがメリット
機能も豊富
実装例
-
cognito
https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/cognito-user-identity-pools.html
※cognitoの説明だけはどうしてもわかりにくい・・・ -
authlete
https://github.com/authlete -
keycloak
https://github.com/keycloak/keycloak/tree/master/examples
参考
https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/limits.html
https://auth0.com/docs/policies/rate-limits