未分類
PR

Github の Organizationに所属するユーザの二要素認証状態を取得する

kawa.xxx
記事内に商品プロモーションを含む場合があります

環境、使用ライブラリ

  • VisualStudio 2013 Pro
  • C#
  • Octokit.net
  • Slack.Webhook

二要素認証って?

通常のIDとパスワード以外にもう一つ認証要素を使う方式のことです。リスト型アカウントハッキングなどが流行しているので、オンにできるサービスは自衛のために有効にすべきですね。

二要素認証の設定状況を定期的に確認する

特定の Organization に所属するメンバーの二要素認証の設定状況を定期的に確認したかったのですが、web インターフェイスに毎回アクセスしてチェックするのは忘れるし、めんどくさい。そこで、プログラムで定期的に確認して、slack とかに通知できるようにしようと思いました。

今回主に使用したライブラリは Octokit.net です。これは Github が公式で出している Github API の .net のラッパーです。
最初は User に個別に 2FA の情報を持っているものかと思ってコードをにらめっこしていたけど、それらしきプロパティは見つからず。ぐぐってみたらこの記事が出てきて、取得時に絞れば良さそうということで、 GetAll() のオーバーロードを調べてみたらありました。以下のような感じでいけます。

var users = await github.Organization.Member.GetAll("yourOrganization", OrganizationMembersFilter.TwoFactorAuthenticationDisabled);

コード全体は Github に公開しています。
上記のコードにてコンソールアプリを作成して常時起動している Windows サーバのタスクスケジューラに登録して毎朝確認できるようにしました。毎朝こんな感じで Slack にポストされます。

f:id:kawa_xxx:20150906172952j:plain

だれだ!二要素認証無効なのは!!

参考文献

ABOUT ME
kawa.xxx
都内のIT系企業に勤める会社員。自分の備忘録的なアウトプット用の場所で、ボルダリングやガシェッド、セキュリティ、カメラの話題が中心です。
記事URLをコピーしました