はじめに
AAAとは
・Authentication: 認証(信頼できるかどうか。本人であるかを確かめる。)
・Authorization: 認可(サービス利用の権限を持っているか。ユーザごとに制限する。)
・Accounting: 課金(ユーザ情報を収集する。ログに記録する。)
セキュリティ上に考慮するものが多く、特にアカウントの安全管理は大事です。
モダンなシステムでは単一のログイン方式はあまりないと思います。ソーシャルIDでログインできるのは多いです。
AAAを考慮したサービス独自で対応するのは面倒なので、いくつかのサービスを使って構築でよいかと思います。
Google Firebaseサービスを利用
主流SNSなどは対応しており、便利ですね。
ただし、日本のLineなどを使いたい場合は別途対応する必要があります。
ほかのサービスと簡単に連携できる
Slack、Jiraなど
Amazon Cognito
Firebaseと同じく主流のプロバイダーが対応しております。
SAML、OpenIDも対応していますので、もっと利用できるサービスは多いですね。
認証サーバ自ら作成
SSOの実装に、OpenAMなどは有名ですが、比較的に新しいKeyCloakはよいですね
KeyCloak: https://www.keycloak.org/
KeyCloakとは
Open Source Identity and Access ManagementFor Modern Applications and Services
できるものは多いです。
ニーズに応じて適切なサービスを選択する必要があります。
以上