まだプログラマーですが何か?

プログラマーネタ中心。たまに作成したウェブサービス関連の話も https://twitter.com/dotnsf

タグ:security

Github の認証をスマホアプリを使った2段階認証にするための手順を紹介します。対応したスマホアプリはいくつか存在しますが、このブログエントリでは IBM Security Verify アプリを使った設定手順を紹介します。

なお Github の2段階認証を有効にするには、ここで紹介する手順を実行する前に、Github の認証方法をベーシック認証ではなくパーソナルアクセストークン認証に切り替えておく必要があります。そちらの手順については以前のブログエントリを参照してください:
Github のベーシック認証が利用できなくなる前にパーソナルアクセストークンに対応する


【Github の2段階認証対応】
今回は IBM Security Verify アプリを使った Github の2段階認証対応手順を紹介します。まず iPhone や Android スマホでストアアプリを起動し、"IBM Security Verify" を検索して該当アプリをインストールします(無料です):
2021031307


そして起動します。下図は初回起動直後の画面です。この時点ではまだどのサービスとも連携できていないので、「アカウントの接続」ボタンが表示されます。このボタンをタップします:
IMG_3073


「コンピュータの QR コードをスキャンしてください」というメッセージが表示されます。この後 Github と連携するための QR コード読み取りを行います。スマホアプリ側はいったんこの状態にしたまま続けて Github 側の作業を行います:
IMG_3074


別の PC などで Github にログインし、"Settings" メニューから "Account security" を選択し、2段階認証を有効にするため、画面内の "Enable two-factor authentication" ボタンをタップします:
2021031301


次の画面で "Set up using an app" ボタンを選択します:
2021031302


すると以下のようなリカバリーコードが表示されます。リカバリーコードはアカウントにアクセスできなくなった場合に、再びアクセスできるようにするためのコードです。"Download" ボタンを押して内容を保存してから、"Next" ボタンをクリックして先に進みます:
2021031303


すると以下のように QR コードが表示されます。改めて先程起動したままだったスマホの IBM Security Verify アプリの画面から「QR コードのスキャン」を選択し、起動したカメラでこの QR コードを撮影します:
2021031304

するとアプリ側は「完了しました」と表示されます。"OK" をクリックします:
IMG_3075


Github との接続が完了した様子がわかります。この "Github" 部分をタップします:
IMG_3076


すると以下のような画面が表示されます。モザイクになっている箇所にはアクセスコードと呼ばれる6桁の数字が表示されており、約30秒ごとに異なる値に変更されます:
IMG_3077


この数字が変更になる前に Github 画面内の QR コード下部に6桁の数字を入力して、"Enable" ボタンをクリックします(作業途中で数字が切り替わってしまった場合、その6桁の数字は無効です。改めて有効な数字を入力して、切り替わる前に "Enable" ボタンを押してください):
2021031305


これで IBM Security Verify アプリを使った Github の2段階認証が有効になりました:
2021031306


うまく設定できているか、動作確認をしてみます。この状態で PC の Github からサインアウトし、再びサインインします:
2021031401


するとパスワード入力後に2段階認証のコード入力画面に切り替わります:
2021031402


スマホにインストールした IBM Security Verify アプリを起動して、先程と同様に Github アカウントを選択すると6桁の認証コードが表示されています:
2021031404


入力期限が切れる前にこの6桁の数字を正しく入力して "Verify" ボタンをクリックするとログインできます:
2021031403






 

Github の認証ルールが変わったらしく、最終的には 2021 年 8 月 13 日からベーシック認証を用いた利用ができなくなるようです:
Token authentication requirements for Git operations


普段から Github は頻繁に使っていて、しかも現在はベーシック認証中心に使っていました。突然利用できなくなると困るので、早めの対策を取っておきました。その手順を紹介します。 また合わせて Github の2段階認証を利用すべく、IBM Security Verify アプリを使った2段階認証対応手順を紹介します。

【Github のパーソナルアクセストークン認証】
Github のベーシック認証の利用ができなくなる前にパーソナルアクセストークンと呼ばれるトークンを使った認証に切り替える必要があります。まずはその手順を紹介します。

Github ページにログインし、画面右上のアイコンをクリックして "Settings" を選択します:
2021031301


プロフィールページが表示されるので、画面左のサイドメニューから "Developer settings" を選択します:
2021031302


開発者向け設定ページが表示されます。ここでも画面左のサイドメニューから "Personal access tokens" を選択します:
2021031303


設定済みのパーソナルアクセストークン一覧画面が表示されます。新しいパーソナルアクセストークンを作成するために "Generate new token" を選択します:
2021031304


新たに作成するパーソナルアクセストークンの説明(名前)を Note に入力し、スコープは全てにチェックを入れます:
2021031305


最後に "Generate token" ボタンをクリックしてパーソナルアクセストークンを作成します:
2021031306


新しいパーソナルアクセストークンが生成されました。このトークン文字列はこの作成直後のタイミングのみ表示されます(別のページに推移したら2度と表示できません)。このタイミングでコピーするなどして値を保存しておくことを推奨します:
2021031307


これでパーソナルアクセストークンを生成することができました。これ以降で git push するなど認証が必要になった場合は、ID としてユーザー名、パスワードとして(これまでのログインパスワードではなく)パーソナルアクセストークン文字列を指定して認証することができるようになります。また 2021 年 8 月 13 日以降は(ベーシック認証が利用できなくなるため)このパーソナルアクセストークン文字列を使った認証のみがサポートされるようになります:
2021031308


【Github の2段階認証】
記事を分けて紹介することにしました。こちらを参照ください:
IBM Security Verify アプリを使って Github の2段階認証を設定する


BMXUG(IBM Cloud ユーザー会)の勉強会がきっかけで知り合いになる機会のあった MonAmie さんが今月出版した SF 小説、「H -アッシュ- 仮想通貨BLOODとAIになった歌姫」を読了しました:



近未来である西暦 2025 年、ブロックチェーンと AI の技術が普及した東京を舞台としています。この作品最大の特徴の1つ(と思っている)血液と交換可能な仮想通貨 "BLOOD" を巡るストーリーです。ここでは世の中のいたるところに AI が活用されていて、またそのセキュリティシステムにも話が及び、ひとりの IT エンジニアとして読んでいても興味深い内容でした。

感想として、まず何よりもこれを伝えたいのですが、血液という(現代の日本では法律でお金との交換が禁じられているものの)非常に高価なアイテムを電子的に取引する、というブロックチェーンのユースケースが非常にユニークであり、かつ技術的には実現が不可能と思えるほどでもなく、いろいろな意味で興味深い仕組みが描かれていました。「そうか、血液が扱えるなら○○だって・・・」とブロックチェーンの応用アイデアを刺激される内容でした。

次にこの小説の中では「ブロックチェーン」、「人工知能」、「セキュリティ」という IT の中でも比較的ホットな3つの分野がテーマとして描かれています。この3つの分野全てに精通したエンジニアの存在だけでも珍しいのではないかと思っていますが、(フィクションとはいえ)それらの近未来ユースケースと考えると IT の読み物としても先進的で面白いと感じる人が多くいるのではないかと思いました。

また西暦 2025 年の東京という舞台から見た、現在である西暦 2018 年がブロックチェーンや仮想通貨の黎明期として描かれていて(どこかで聞いたような流出事件が過去事例になっていたりして)、タイムリーな話題が物語の中で自然に取り込まれて紹介されていました。この点も面白く読み進められた理由だったと感じています。気の早い話かもしれませんが、次回作を読んでみたいと思いました。


ブロックチェーンに携わる機会のあるエンジニアや、ブロックチェーンで新しいビジネスを興そうと考えている人にとっては興味深い近未来のユースケースとしても是非読んでいただきたいと感じた一冊でした。


最近は少なくなりましたが、一部のウェブアプリではまだ Java アプレットが使われていることもあります。で、現在は作成当時のセキュリティとは違う要素を考慮する必要があったりして、アプレットがそのままでは動かない、ということが出てきます。

例えばこんな感じ。Java アプレットを実行しようとしてこのような警告メッセージが出てブロックされてしまう、というものです:
20160517


このブロックを回避するには Java のセキュリティ設定でこのサイトを例外として扱うよう指定する必要があります。コントロールパネルの Java を選び、そのセキュリティタブにおいて「サイトリストの編集」をクリックし、この警告メッセージが表示されるサイトの URL(のホスト名部分まで)を登録します。これでこのサイトに関してはセキュリティ上の例外として処理されるようになります:
2016051701


(参考)
https://www.java.com/ja/download/help/jcp_security.xml

このページのトップヘ