ANNAIマガジン
Open ID Connectを用いて、GoogleアカウントでDrupalにログインする
この記事の目次

Drupalでは、Open ID Connectモジュールを用いることで、GoogleやFacebookなどのアカウントから管理画面へログインすることができます。今回はGoogleアカウントでのログイン方法を紹介します。

Open ID Connectモジュールを入れる

まずはDrupalにOpen ID Connecctモジュールを入れましょう。
モジュールのURLは https://www.drupal.org/project/openid_connectです。Drupal8の場合、Downloadsから「8.x~」と書かれている方の.tar.gzファイルのURLをコピーしましょう。

Open ID Connectモジュールを入れる

[機能拡張>新しいモジュールをインストール]から、先ほどコピーしたURLを入力してインストールしましょう。

openid02

インストールに成功すると、[機能拡張]の[その他]に[OpenID Connect]が表示されます。これを有効化すれば準備OKです。

openid03

Google側でOpen ID Connectの準備をする

続いてGoogleのアカウント情報をDrupalで使うための設定をしましょう。

必要なライブラリを有効化する

まずはGoogle API Consoleへ移動します。
https://console.cloud.google.com/apis/library?hl=ja

openid04

検索フォームから、[Google+ API]を検索しましょう。

openid05

表示されたライブラリを有効にしましょう。同様の手順で[Identity Toolkit API]についても有効化します。

認証情報を取得する

Google API Consoleに戻り、左上にある、[APIライブラリ]をクリックしましょう。
https://console.cloud.google.com/apis/library?hl=ja
左メニューから[認証情報]をクリックします。
その後[認証情報を作成]をクリックすると、認証方法の確認画面がでます。

openid06

[OAuthクライアントID]を選びましょう。

openid07

同意画面を設定していない場合は作成します。

openid08

同意画面の設定ができていれば、OAuthクライアントIDの作成画面がでます。
アプリケーションの種類を[ウェブアプリケーション]に設定し、名前を入れましょう。

openid09

[承認済みのリダイレクトURI]には、Drupal管理画面の[ホーム>管理>環境設定>ウェブサービス>OpenID Connect]から取得できます。

openid10

入力すると、クライアントID / シークレットが入ってきます。

openid11

DrupalでGoogleログインフォームを表示する

先ほど取得したクライアントIDとクライアント シークレットをDrupal側に設定すれば準備OKです。[ホーム>管理>環境設定>ウェブサービス>OpenID Connect]から、[Cliend ID]に[クライアントID]を、[Client secret]に[クライアント シークレット]を入力して保存しましょう。

openid12

あとは[OpenID Connect Login]というブロックが追加されていますので、それを`/user/login`で表示するように配置すればOKです。

openid13

[Log in with Google]という項目が追加されました。

openid14

アカウントがない状態でGoogleログインすると、「管理者からの承認待ちです」というメッセージが表示されます。

openid15

ユーザーの状態が[ブロック]となっておりますので、これを[アクティブ]にすることで有効化できます。

openid16

おわりに

OAuthやOpenID Connectに触れる機会がないとすこし設定に戸惑うかもしれません。しかし一度設定してしまえば、GoogleやFacebook、またはOpenID Connectに対応しているサービスのユーザー情報を使ってログインすることができます。

 
フッターの採用情報
 
Kentaro Inoueの写真

この記事を書いた人: Kentaro Inoue

ANNAI株式会社
マーケティングマネージャー
サービスの設計・企画、マーケティング、採用戦略の立案などを担当。普段は新潟で猫と一緒に、時々海外からリモートで働いています。好きなモジュールはRulesとFlagです。

関連コンテンツ