SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ASP.NET Identity入門

外部アカウントを使ったログインをASP.NET Identityで実現する

ASP.NET Identity入門 第9回

  • X ポスト
  • このエントリーをはてなブックマークに追加

Twitterの設定

 次はTwitter側で外部ログインを使うための準備を行います。Twitterの連携アプリケーションを管理するためのページである、「Twitter Application Management」を開きます(ログインを求められたら、自分のTwitterアカウントを使ってログインします)。

 すると、自分が管理しているアプリケーションの一覧が表示されます。この画面の右上にある「Create New App」ボタンをクリックします(図3)。

図3 Twitterアプリケーション作成
図3 Twitterアプリケーション作成

 作成するアプリケーションの情報を入力する画面が表示されるので、次のように入力します(図4)。

図4 Twitterアプリケーション設定
図4 Twitterアプリケーション設定
Name

 アプリケーション名(例:ExternalLoginSample)を入力します。

Description

 Twitterの認証画面に表示されるアプリケーションの説明を入力します。

Website

 アプリケーションの公式WebページのURLを入力します。サンプルではひとまず前項で控えておいた「開発サーバーのURL」を入力しておきます。この時、"localhost"は"127.0.0.1"(ループバックアドレス)に変更しておきましょう。

Callback URL

 Twitterの認証後に呼び出されるURLを入力します。サンプルでは、「開発サーバーのURL」で始まる"http://127.0.0.1:xxxx/Account/RegisterExternalLogin.aspx"を入力します。

 入力したらページ下部の「Developer Agreement」を読み、同意するために「Yes, I agree」にチェックを入れ、「Create your Twitter application」ボタンをクリックして、Twitter側の設定は完了です(図5)。

図5 Twitterアプリケーション使用の同意確認
図5 Twitterアプリケーション使用の同意確認

認証にTwitterを使用する

 今度は、実際にTwitterを使用して認証を行うよう、コードを変更していきましょう。必要なコードはテンプレートにより、App_Start/Startup.Auth.csファイルのConfigureAuthメソッドにコメントアウトされた状態で生成されています。このコードをコメントアウトし、Twitterを使用するのに必要な情報に変更します(リスト1)。

リスト1 Twitterを認証に使用する(App_Starup/Startup.Auth.csより)
using System;
~(略)~
using System.Configuration;

namespace ExternalLoginSite
{
  public partial class Startup
  {
    // 認証の構成の詳細については、http://go.microsoft.com/fwlink/?LinkId=301883 を参照してください。
    public void ConfigureAuth(IAppBuilder app)
    {
      ~(略)~

      // 次の行のコメントを解除して、サード パーティ ログイン プロバイダーを使用したログインを有効にします
      //app.UseMicrosoftAccountAuthentication(
      //    clientId: "",
      //    clientSecret: "");

      // Twitterを認証に使用する
      app.UseTwitterAuthentication(
         consumerKey: ConfigurationManager.AppSettings["TwitterKey"],
         consumerSecret: ConfigurationManager.AppSettings["TwitterSecret"]);

      ~(略)~
    }
  }
}

 「app.UseTwitterAuthentication」メソッド呼び出しのコメントを解除し、consumerKey、consumerSecretを引数に渡します。サンプルではExternalLogin.configファイルで定義し、ConfigurationManagerクラスを使って読み込んでいます。ダウンロードできるサンプルコードでは、ExternalLogin.config.sampleファイルとして含めていますので、内容を変更してExternalLogin.configにリネームしてください(リスト2)。

リスト2 Twitterの認証用キー等の定義(ExternalLogin.config.sample)
<?xml version="1.0" encoding="utf-8"?>
<!--
  https://apps.twitter.com/ で登録したアプリケーションのkey、secretに変更後、
  ExternalLogin.configにリネームしてください。
-->
<appSettings>
  <add key="TwitterKey" value="key"/>
  <add key="TwitterSecret" value="secret"/>
</appSettings>

 設定するkeyとsecretは、Twitterのアプリケーションの設定から取得して設定します。Webブラウザーで「Twitter Application Management」を開き、先ほど作成したアプリケーションプリケーション名をクリックしてください(図6)。

図6 Twitterアプリケーション選択
図6 Twitterアプリケーション選択

 アプリケーション設定画面が表示されたら、「Keys and Access Tokens」タブを選択し、表示された「Consumer Key(API Key)」と「Consumer Secret(API Secret)」を確認し、ExternalLogin.configファイルの対応するadd要素のvalue属性に設定します(図7)。

図7 TwitterアプリケーションのConsumer Key、Secret
図7 TwitterアプリケーションのConsumer Key、Secret

次のページ
外部ログインサイトの表示

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
ASP.NET Identity入門連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 高野 将(タカノ ショウ)

<個人紹介>新潟県長岡市在住の在宅リモートワークプログラマー。家事や育児、仕事の合間に長岡IT開発者勉強会(NDS)、Niigata.NET、TDDBCなどのコミュニティに関わったり、Web記事や書籍などの執筆を行ったりしている。著書に『アプリを作ろう! Visual C#入門 Visual C# 2017対応』(日経BP社、2017)など。<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8463 2015/03/04 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング