treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

OneDriveのWinSCPでアプリパスワードが必要

OneDriveのWinSCPでMicrosoftアカウントの登録をしていたら、一点注意点があるのを忘れていました。
前回の続きで2段階認証が必要なMicrosoftアカウントでWinSCPでOneDriveの利用をご報告します。
自分向けの備忘録です。

2段階認証が必要なMicrosoftアカウントの場合

outlook.comのMicrosoftアカウントのOneDriveにWinSCPで接続設定をしていると、エラーが。

f:id:treedown:20170924135049p:plain
「Could not authenticate to server: Missing Authentication-Info header
接続に失敗しました。」
と表示。
あれ、他はうまくいくけどなぁ、何か違うかなぁ…、と思っていたら、このアカウントは2段階認証が必要なMicrosoftアカウントでした。
よくよく考えたら「Microsoft Authenticator」アプリでスマートフォンなどで二段階認証をしています。

アプリパスワードの作成

このMicrosoftアカウントの場合にはアプリケーションパスワードの発行が必要になります。さっそくサイトにアクセスして…

https://account.microsoft.com/security?lang=ja-jp

f:id:treedown:20170924135140p:plain
ページ下部にある「 その他のセキュリティ オプション 」というリンクをクリックします。

「追加のセキュリティ オプション」という画面が表示されると、ちょっと下の方に「アプリ パスワード」という箇所があります。

f:id:treedown:20170924135156p:plain
これだ、「新しいアプリ パスワードの作成」というリンクをクリックして、さっそくアプリパスワードを生成します。

新しいアプリ パスワードが生成されて、画面いっぱいに表示されますので、そのアプリパスワードの文字列をWinSCPのパスワード箇所に入力します。

f:id:treedown:20170924135214p:plain
生成されたアプリパスワードを使ってWinSCPでOneDriveに接続すると、うまく接続できました。
2段階認証が必要なMicrosoftアカウントのOneDriveでは「アプリパスワードを生成する」という動作が必要になる、ってことです。そして使うのはサインインのパスワードではなく「生成したアプリパスワードを利用する」ということですね。

Office365のOneDriveはできない?

そういや、本題と関係ない話ですが、Office365のOneDriveが使えないかも確認。
結論から言いますと、同じ原理でできるだろう、と思っていたらこれが一筋縄ではいかぬ模様で、あきらめました。
ホスト名は自ドメイン(テナント名)を含む「XXX-my.sharepoint.com」と指定して、その配下のURLをリモートディレクトリに登録すればいい、と単純に考えたのですが、どうもちょっと違うようで。
例えばURLが
https://XXX-my.sharepoint.com/personal/%USERNAME%_XXX_onmicrosoft_com/_layouts/XX/onedrive.aspx
となっていると、ホスト名が「XXX-my.sharepoint.com」リモートディレクトリの設定値は「/personal/%USERNAME%_XXX_onmicrosoft_com」となりそうな感じですが、これだと「403 FORBIDDEN」エラーとなり「接続に失敗しました」とメッセージが表示されて接続されないです。

Office365のOneDrive for Businessはちょっと違うってことですね。そもそも同じOneDriveという名称でも今回成功したほうとOffice365のOneDriveはクライアントアプリ(同期するやつ)も違いますし、Office365のOneDriveはSharePoint Onlineベースのオンラインストレージですからやり方が違いますよ、ってことは考えられます。
また別の機会にでも試してみよう、と棚上げしておきます。