ログインとログアウトの問題を確認する
ログインやログアウトで問題が発生した場合には、以下を確認して原因を絞り込みます。
ログインの問題
ユーザーがログイン資格情報を求められたのか
認可サーバー(
/authorize
エンドポイント)への呼び出しがHARファイルに記録されているかを確認します。接続がアプリケーションに有効化されているかを確認します。
リモート認可サーバーが使用できるかを確認します。
Auth0のユニバーサルログインページを使用している場合には、カスタマイズをオフにして、認証が動作するかを確認します。カスタマイズがなければログインが動作する場合には、ユニバーサルログインページのカスタマイズコードを見直します。
資格情報の入力後にエラーメッセージが表示される
別の方法でログインをテストして、資格情報が正しいことを確認します。
1つの可能性としてはパスワードの有効期限が考えられます。パスワードが失効していないかを確認してください。
ブラウザーの開発者ツールやWeb検査コンソールを使用して、Auth0に戻る前のフローにエラーがないかを確認します。
HARファイルでAuth0(
/login/callback
エンドポイント)に戻ったことが記録されているかを確認します。記録がない場合には、IDプロバイダーがAuth0の正しいコールバックURLを待機しているかを確認します。
認可サーバーでユーザーにログインセッションが確立されているのか
これをテストするには、同じブラウザーで別のタブを開いて、同じURLのページを表示します。ログインが再度求められるかを確認します。
ログインが求められなかった場合には、セッションが存在します。
Auth0ログにログエントリが作成されているのか
ログエントリが作成されなかった場合には、認証トランザクションが未完了で、Auth0にも戻されません。
認可サーバーからの応答でエラーメッセージを確認します。
(可能であれば)認可サーバーのログでエラーを確認します。
Auth0ユーザーの画面にすべての正しいプロファイル情報でエントリが作成されているのか
作成されていない場合には、HARファイルで認可サーバーからの応答を確認します。ユーザーについての情報が返されていない可能性があります。
ルールを使用している場合には、ルールのスクリプトで問題を確認します。
カスタムデータベース接続を使用している場合には、データベースのアクションスクリプトで問題を確認します。
LDAPを使用している場合には、プロファイルのマッピングスクリプト(
profileMapper.js
)で問題を確認します。ソーシャル接続の構成で、どのプロファイル情報が要求されているのかを確認します。
トークンやアサーションがアプリケーションに返されたことがHARファイルに記録されているのか
HARファイルでアプリケーションのコールバックURLへの呼び出しを確認します。
IDトークン(
id_token
)を見つけて、アプリケーションに必要な情報があることを確認します。
期待する情報が復号化したトークンやアサーションに含まれているのか
JWT.ioを使用してJWTを表示します。
SAMLTool.ioを使用してSAMLアサーションを表示します。
ログインしたユーザーがシングルサインオンで別のアプリケーションにアクセスできるのか
ユーザーが当初のログインで使用したのと同じブラウザーを使って、2つ目のアプリケーションにログインしようとしたかを確認します。
[Tenant Settings(テナントの設定)]>[Advanced Settings(詳細設定)]」に移動して、[Log In Session Management(ログインセッションの管理)]の設定を確認します。2つ目のログイン試行がタイムアウト制限内であったかを確認します。
prompt
パラメーターを使って/authorize
呼び出しで渡された値を確認します。当初のアプリケーションへのログインに使用された接続が、2つ目のアプリケーションにも有効かを確認します。
必要なすべてのユーザープロファイル情報を2つ目のアプリケーションが受け取ったかを確認します。
モバイルデバイスの場合には、ブラウザーベースのフローを使用する必要があります。詳細については、「ベストプラクティス」を参照してください。
アプリケーションのログを確認する
アプリケーションのログにエラーが記録されているかを確認します。
グループやユーザーのプロファイル属性など、必要なすべての情報をアプリケーションが受け取ったかを確認します。
ログアウトの問題
ログアウトのリダイレクトURLが許可リストに追加されているかを確認します。ログアウト呼び出しにリダイレクトURLを使用している場合には、テナントまたはアプリケーションの設定に登録する必要があります。
フェデレーションログアウトが必要な場合には、ログアウト呼び出しに
?federated
パラメーターが追加されているかを確認します。ログアウトのリダイレクトURLがログインのコールバックURLと異なることを確認します。
ユーザーが混乱しないように、ログアウトのリダイレクトURLを無名ページ(ログインでは保護されない)にして、ログアウトのリダイレクトURLへのリダイレクトが即座にログインをトリガーしないようにします。