SlideShare a Scribd company logo
msgraph-sshpubkey
2019-11-09 Takeshi Yaegashi
第三十七回Azureもくもく会@品川
自己紹介
八重樫 剛史 Takeshi Yaegashi
● 株式会社バンダイナムコスタジオ所属
● Linux・Unix・OSS・低レベルなことが好きなエンジニア
● ホームページ・ブログ https://l0w.dev
● 最近の仕事
○ Raspberry Pi を使った IoT 案件 (Go)
○ スマホゲームアプリのサーバ (Go)
○ Azureによる開発者向けインフラ構築 (Python, Ansible, etc.)
● 最近の登壇
○ Microsoft de:code 2019「DT01 ゲームメーカー目線でAzureを(略)」
○ Go Conference 2019 Autumn「Microsoft Graph API Library for Go」
msgraph.go
● Microsoft Graph Client Library for Go
https://github.com/yaegashi/msgraph.go
● Microsoft Graph の各種リソースをGo言語で操作できるライブラリ
○ Azure Active Directory: User, Group, ...
○ Office 365: OneDrive, SharePoint, Outlook, Teams, Excel Workbook, ...
● 様々なGo製インフラツールをMicrosoft Graph対応にできるかもしれない
○ oauth2_proxy, traefik, ...
○ HashiCorp Terraform,Vault, Consul, Packer, …
msgraph.go アプリの例:msgraph-sshpubkey
● https://github.com/yaegashi/msgraph.go/tree/master/cmd/msgraph-sshpubkey
● SSH 公開鍵を Azure AD に登録して Linux VM ログインの認証に利用できる
● 必要なものは 5.6MB の実行ファイルと設定ファイルのみ、導入が容易
/etc/ssh/sshd_config:
AuthorizedKeysCommand /usr/bin/msgraph-sshpubkey -config /etc/msgraph-sshpubkey.json -login %u
AuthorizedKeysCommandUser root
/etc/msgraph-sshpubkey.json:
{
"tenant_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"client_id": "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY",
"client_secret": "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ",
"login_map": {
"yaegashi": "yaegashi@l0wdev.onmicrosoft.com"
}
}
背景:Azure Linux VM のユーザー認証・認可
● Windows VM と比較して、認証統合機能が弱い
● Azure Active Directory 認証を使用してAzure の Linux 仮想マシンにログインする
https://docs.microsoft.com/ja-jp/azure/virtual-machines/linux/login-using-aad
● ユーザー名がUPNになる
yaegashi@l0w.dev
● ソースコードが
公開されていない?
● どうも使いづらい
(コレジャナイ感)
● VMのRBACでアクセス
制御できるのはよい
Package: aadlogin
Status: install ok installed
Priority: extra
Section: default
Installed-Size: 686
Maintainer: Azure AD <azuread@microsoft.com>
Architecture: amd64
Version: 1.0.009820001
Depends: uuid-runtime, libcurl4
Conffiles:
/etc/sudoers.d/aad_admins 108feed92ff2287593d22b83206b82ea
Description: AAD NSS and PAM extensions
License: MIT
Vendor: Microsoft
Homepage: https://azure.com
背景:Azure Linux VM に自分がほしい機能
● ユーザーログインの認証、SSH 公開鍵の管理
○ ユーザーの SSH 公開鍵を Azure AD で管理できる
○ VM ログインに Azure AD に登録した SSH 公開鍵が利用できる
○ ユーザーは自分の SSH 公開鍵の管理が Web や CLI で簡単にできる
● ユーザーログインのアクセス認可
○ Azure AD のグループによるアクセス認可
○ Linux VM RBAC 設定によるアクセス認可
● 類似のソフトウェア http://linyo.ws/octopass
○ GitHub のユーザー・組織情報を利用する
msgraph-sshpubkey もくもく進捗
● 今日できたこと
○ WIP: ユーザーが自分の SSH 公開鍵を管理できる Web アプリの開発
■ React フロントエンドと Go バックエンド、CLIの雛形作成
○ msgraph-sshpubkey リポジトリの公開
https://github.com/yaegashi/msgraph-sshpubkey
● 次にやりたいこと
○ CLI と Web アプリの完成
○ Azure AD グループや RBAC などを利用した認可機能
おわり

More Related Content

PDF
Terraforming Windows Virtual Desktop Infrastructure on Azure
PPTX
Goで作って配布するAzureコマンドラインユーティリティ
PDF
Customazed CLI: カスタムVMイメージ作成支援ツール
PDF
アカツキはどのようにAWSを活用しているか #jawsug
PDF
すぐにでも使える Windows Virtual Desktop
PDF
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
PPTX
NoOps Japanサイトの紹介
PDF
msgraph: Terraform provider for Microsoft Graph
Terraforming Windows Virtual Desktop Infrastructure on Azure
Goで作って配布するAzureコマンドラインユーティリティ
Customazed CLI: カスタムVMイメージ作成支援ツール
アカツキはどのようにAWSを活用しているか #jawsug
すぐにでも使える Windows Virtual Desktop
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
NoOps Japanサイトの紹介
msgraph: Terraform provider for Microsoft Graph

What's hot (20)

PDF
Azure DevOps で実現する Unity アプリのハイパフォーマンス CI/CD
PPTX
Shiva 〜Nextremerをscale upする機械学習環境〜
PDF
Dokku の紹介
PPTX
JAWS-UG HPC #0 LT資料
PDF
LocalStack
PDF
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
PPTX
KubernetesでGPUクラスタを管理したい
PDF
一番簡単なWebSocketの試し方
PDF
Windows Azureで Webサーバーを再発明してみる
PDF
Next30 wg 2
PDF
Node red basic & node-red-ug-japan
PDF
Eureka go 2015_12_12
PDF
マイクロソフトの提供するMA6向けAPIのご紹介
PPTX
CCCEU Feedback
PDF
Node-RED on SAKURA cloud
PDF
FirebaseとNuxtでLPを作って見た
PDF
Capistrano紹介 at kawasaki.rb #002 #kwskrb
PPTX
EC2に対するcloudwatchのアクション設定がポリシーで使えないときの代替策
PDF
Dockerで楽しむ自宅サーバ
PDF
GR-CITRUSハンズオン
Azure DevOps で実現する Unity アプリのハイパフォーマンス CI/CD
Shiva 〜Nextremerをscale upする機械学習環境〜
Dokku の紹介
JAWS-UG HPC #0 LT資料
LocalStack
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
KubernetesでGPUクラスタを管理したい
一番簡単なWebSocketの試し方
Windows Azureで Webサーバーを再発明してみる
Next30 wg 2
Node red basic & node-red-ug-japan
Eureka go 2015_12_12
マイクロソフトの提供するMA6向けAPIのご紹介
CCCEU Feedback
Node-RED on SAKURA cloud
FirebaseとNuxtでLPを作って見た
Capistrano紹介 at kawasaki.rb #002 #kwskrb
EC2に対するcloudwatchのアクション設定がポリシーで使えないときの代替策
Dockerで楽しむ自宅サーバ
GR-CITRUSハンズオン
Ad

More from yaegashi (8)

PDF
go generate 完全入門
PPTX
msgraph.go: Go言語で Microsoft Graph プログラミング
PDF
AnsibleでAzureの インフラを管理する話 + α
PDF
Microsoft Graph API Library for Go
PDF
Raspberry Pi + Go で IoT した話
PDF
golang binary hacks
PDF
StackExchangeで見たシステムプログラミング案件
PDF
Ansible モジュール 作成・配布・貢献
go generate 完全入門
msgraph.go: Go言語で Microsoft Graph プログラミング
AnsibleでAzureの インフラを管理する話 + α
Microsoft Graph API Library for Go
Raspberry Pi + Go で IoT した話
golang binary hacks
StackExchangeで見たシステムプログラミング案件
Ansible モジュール 作成・配布・貢献
Ad

msgraph-sshpubkey

  • 2. 自己紹介 八重樫 剛史 Takeshi Yaegashi ● 株式会社バンダイナムコスタジオ所属 ● Linux・Unix・OSS・低レベルなことが好きなエンジニア ● ホームページ・ブログ https://l0w.dev ● 最近の仕事 ○ Raspberry Pi を使った IoT 案件 (Go) ○ スマホゲームアプリのサーバ (Go) ○ Azureによる開発者向けインフラ構築 (Python, Ansible, etc.) ● 最近の登壇 ○ Microsoft de:code 2019「DT01 ゲームメーカー目線でAzureを(略)」 ○ Go Conference 2019 Autumn「Microsoft Graph API Library for Go」
  • 3. msgraph.go ● Microsoft Graph Client Library for Go https://github.com/yaegashi/msgraph.go ● Microsoft Graph の各種リソースをGo言語で操作できるライブラリ ○ Azure Active Directory: User, Group, ... ○ Office 365: OneDrive, SharePoint, Outlook, Teams, Excel Workbook, ... ● 様々なGo製インフラツールをMicrosoft Graph対応にできるかもしれない ○ oauth2_proxy, traefik, ... ○ HashiCorp Terraform,Vault, Consul, Packer, …
  • 4. msgraph.go アプリの例:msgraph-sshpubkey ● https://github.com/yaegashi/msgraph.go/tree/master/cmd/msgraph-sshpubkey ● SSH 公開鍵を Azure AD に登録して Linux VM ログインの認証に利用できる ● 必要なものは 5.6MB の実行ファイルと設定ファイルのみ、導入が容易 /etc/ssh/sshd_config: AuthorizedKeysCommand /usr/bin/msgraph-sshpubkey -config /etc/msgraph-sshpubkey.json -login %u AuthorizedKeysCommandUser root /etc/msgraph-sshpubkey.json: { "tenant_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "client_id": "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY", "client_secret": "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ", "login_map": { "yaegashi": "yaegashi@l0wdev.onmicrosoft.com" } }
  • 5. 背景:Azure Linux VM のユーザー認証・認可 ● Windows VM と比較して、認証統合機能が弱い ● Azure Active Directory 認証を使用してAzure の Linux 仮想マシンにログインする https://docs.microsoft.com/ja-jp/azure/virtual-machines/linux/login-using-aad ● ユーザー名がUPNになる yaegashi@l0w.dev ● ソースコードが 公開されていない? ● どうも使いづらい (コレジャナイ感) ● VMのRBACでアクセス 制御できるのはよい Package: aadlogin Status: install ok installed Priority: extra Section: default Installed-Size: 686 Maintainer: Azure AD <azuread@microsoft.com> Architecture: amd64 Version: 1.0.009820001 Depends: uuid-runtime, libcurl4 Conffiles: /etc/sudoers.d/aad_admins 108feed92ff2287593d22b83206b82ea Description: AAD NSS and PAM extensions License: MIT Vendor: Microsoft Homepage: https://azure.com
  • 6. 背景:Azure Linux VM に自分がほしい機能 ● ユーザーログインの認証、SSH 公開鍵の管理 ○ ユーザーの SSH 公開鍵を Azure AD で管理できる ○ VM ログインに Azure AD に登録した SSH 公開鍵が利用できる ○ ユーザーは自分の SSH 公開鍵の管理が Web や CLI で簡単にできる ● ユーザーログインのアクセス認可 ○ Azure AD のグループによるアクセス認可 ○ Linux VM RBAC 設定によるアクセス認可 ● 類似のソフトウェア http://linyo.ws/octopass ○ GitHub のユーザー・組織情報を利用する
  • 7. msgraph-sshpubkey もくもく進捗 ● 今日できたこと ○ WIP: ユーザーが自分の SSH 公開鍵を管理できる Web アプリの開発 ■ React フロントエンドと Go バックエンド、CLIの雛形作成 ○ msgraph-sshpubkey リポジトリの公開 https://github.com/yaegashi/msgraph-sshpubkey ● 次にやりたいこと ○ CLI と Web アプリの完成 ○ Azure AD グループや RBAC などを利用した認可機能