OAuth 2認証
別のサイトのアカウントを使用してログイン
OAuth 2認証プラグインを使用すると、ユーザはログインページのボタンからGoogle、Microsoft、Facebookのアカウントを使用してログインできます。
アカウントの作成が有効になっている場合、ユーザが初めてログインすると、新しいアカウントが作成されます。それ以外の場合は、同じメールアドレスで既存のアカウントにリンクするように求められます。
OAuth 2認証を有効にする
OAuth 2認証を使用するには、管理者は最初に必要なOAuth 2サービスを作成する必要があります。
- [サイトの管理] > [サーバ]の[OAuth 2サービス]に移動し、ボタンをクリックして新しいサービスを作成します。
- OAuth 2 Google service、OAuth 2 Microsoft service、またはOAuth 2 Facebook serviceの指示に従って、クライアントIDとシークレットを取得します。
- クライアントIDとシークレットを入力し、[ログインページに表示]がチェックされていることを確認して、変更を保存します。
必要に応じて、[メールの確認が必要]チェックボックスをオフにすると、確認メールが送信されません。これは、ドメインにGoogleを使用している教育機関に役立ちます。 Google OAuthプロバイダーは、そのドメインに対して信頼されていると見なすことができます。
必要に応じて、追加のサービスについて繰り返します。 OAuth 2認証の場合、システムアカウントに接続する必要はありません。
次:
- サイト管理の「認証の管理」に移動し、OAuth 2認証プラグインを有効にします。
- オプション:OAuth 2設定で、選択したユーザデータフィールドをロックし、変更を保存します。
新しいアカウントの作成を防止する
ユーザがOAuth 2サービスでログインするときに新しいアカウントを作成したくない場合:
- サイト管理の「認証の管理」に移動し、「認証時にアカウントの作成を禁止する」(authpreventaccountcreation)ボックスにチェックを入れます。
- [変更を保存]ボタンをクリックします。
トラブルシューティング
[OAuth 2サービス]ページに、[ログインを許可]の赤い十字があります
ログインを許可するための緑色のチェックマークを取得するには、OAuth 2サービスを編集し、「ログインページに表示」の設定がチェックされていることを確認します。
OAuth 2認証を有効にした後、コーディングエラーが発生します
サイトにインストールされている以前のバージョンのOAuth 2プラグインはありますか?その場合、標準のOAuth 2認証を使用するには、プラグインのアンインストールが必要です。
Facebookを使用してログインしようとすると、エラーメッセージが表示されます
「返されたユーザ情報にユーザ名とメールアドレスが含まれていませんでした。 OAuth 2サービスが正しく構成されていない可能性があります。ほとんどの場合、ユーザのFacebookアカウントは携帯電話番号を使用して作成されています。
解決策は、ユーザが最初にFacebookにログインし、そこにユーザ名とメールアドレスを追加することです。
OAuth 2サービスにログインした後、「必要なパラメーター(コード)がありませんでした」というエラーが表示されます
「必須パラメーター(コード)がありませんでした」というエラーメッセージは、ウェブサーバの設定ミスが原因である可能性があります。 OAuth 2は、URLパラメーターとして渡される長いトークンに依存しており、一部のWebサーバ構成ではこれが機能しません。 1つの可能な解決策については、http://www.php.net/manual/en/reserved.variables.get.php#101469を参照してください。
GoogleとFacebookの/admin/tool/oauth2/issuers.phpページにすべて緑色のチェックマークがありますが、サーバのログインページにボタンが表示されません
(おそらくセキュリティ上の理由から)Moodle 3.4の新規インストールで、OAuth2のプラグイン設定が無効な状態であることが発見されました。サイト管理-プラグイン-認証-認証の管理(/admin/settings.php?section=manageauths)のページに移動し、OAuth2のレコードを有効にしてから、オプションでそのレコードの設定を微調整します。 [[de:OAuth2 Authentifizierung]