[[TranslatedPages(revision=30)]] [[PageOutline(1-10,目次)]] = OAuth認証ウィザード = == OAuthとは == [http://oauth.net/ OAuth]はデスクトップ環境やWebアプリケーションに対して、シンプルで標準的な手順を使ってセキュアなAPIベースの認証を可能にするオープンなプロトコルです。 === 標準的なユースケース - OSMパスワードを秘密にしておく === OSMでのOAuthの標準的なユースケースは、Basic認証を使う場合よりもOSMパスワードを隠しておきたい場合です。 OAuthにはBasic認証に比べて主に二つの長所があります: 1. OSMパスワードを平文でJOSMの設定ファイルに格納することがありません。 1. OSMパスワードはインターネット経由の'''安全な接続'''を通じて'''一回だけ'''送られます。 Basic認証の場合にはJOSMからOSMサーバへの全てのリクエストに含まれる形で平文のOSMパスワードが送信されます。 OAuthの用語で言うと、JOSMがOSMサーバにアクセスすることをユーザが認可します。 認可のプロセスにおいてJOSMを完全に信用できない場合、OSMパスワードをJOSMのダイアログに入力する必要はありません(簡単に進めたい場合を除きます。 [wikitr:/Help/Dialog/OAuthAuthorisationWizard#FullyAutomaticAuthorisation 詳細はこちらを参照])。 正確に言うと、OSMサーバはアクセストークンを発行し、JOSMはユーザの代わりにデータをアップロードするときにそのトークンをサーバに提示します。 アクセストークンからユーザのパスワードが割り出されることはありません。トークンはいつでも無効化することができます。 === 高度なユースケース - 他のマッパーに代理アクセスをさせる === もっと高度なOAuthの使い方として、他のマッパーに自分のOSMアカウントを代理で使わせるというものがあります。 OAuthによって他のユーザに制限付きのアクセスを必要に応じて許可することができます。 例: マッパーAさんはマッパーBさんに非公開のGPSトレースをOSMウェブサイトからダウンロードさせることができます。 AさんはOAuthのアクセストークンを生成して"非公開のGPSトレースのダウンロード"の制限付き権限を与えます。 AさんはこのアクセストークンをメールでBさんに送ります。 BさんがJOSMにこのアクセストークンを入力すると、Aさんの非公開のGPSトレースをOSMサーバからダウンロードすることができます。 BさんはAさんの代わりにデータをアップロードすることはできないし、AさんのOSMパスワードを知ることもできません。 AさんはBさんに発行したアクセストークンをいつでも無効にすることができます。 == OAuth認証ウィザード == OAuth認証ウィザードは[wikitr:/Help/Preferences/Connection コネクション設定]の中にあります。 === 認証/認可とは? === OSMサーバにデータをアップロードする際には、自分が誰なのかをサーバに伝える必要があります。 OSMサーバはアップロードしようとするマッパーにOSMユーザー名を聞いて'''識別(identify)'''しています。 OSMサーバはさらにこの識別情報を'''認証(authenticate)'''する必要があります。 これはマッパーが名乗っているユーザ自身であるかどうかを確定させることです。 その判断をするために、ユーザー名に加えてパスワードを聞きます。 サーバは、ユーザー名xyzに対応する秘密のパスワードを知っている者はxyz''である''と判断して良い、という前提で処理します。 ユーザー名とパスワードで認証されログインしたマッパーには、サーバ上で幅広い操作の権限を与えられます。マッパーは、データのアップロードやチェンジセットの作成、チェンジセットのクローズ、GPSトレースのアップロード、サーバに保存した個人設定の読み出しと変更、他のユーザをフレンドとして招待すること、他のユーザにメールを送ること、などの操作を'''認可(authorised)'''されます。 今のところOSMユーザー名とパスワードを持った制限付き権限を付与したOSMアカウントというものは作れません。 例えばGPSトレースはアップロードできるがマップデータはアップロードできないアカウントなどです。 OSMユーザー名とOSMパスワードで'''認証'''されたユーザーは、通常サーバ上でOSMユーザが実行できる'''全権限の認可'''を受けた者とみなされます。 ここがOAuthが有効に働くところです: OAuthによって、あなたの代わりに別のだれかが制限された形で振舞うことを'''認可'''させることができます。 OSMユーザ名とOSMパスワードを引き渡して、OSMサーバ上で全ての権限をあなたに成り代わって他の人に使わせる代わりに、許可された権限の一覧を含む"チケット"だけを渡します。 このチケットのことを'''アクセストークン'''と呼びます。 アクセストークンに適用される制限は次の通りです: * アクセストークンは特定のクライアント(OAuthの用語ではConsumerと呼ぶ)においてのみ有効。 例: JOSMのみ有効でOpenStreetBugsは対象外 * アクセストークンは特定の操作のみ有効。 例: GPSトレースのアップロードは許可、マップデータのアップローは不可 * アクセストークンは特定の期間だけ有効にすることも可能。 例: 当日のみ有効。※OSMサーバでは未サポート OSMサーバはユーザ認証と認可を行なうためにユーザ名/パスワードの組み合わせに加えて、OAuthのアクセストークンも受け付けます。 より詳細に言うと"トークンでサインされた"リクエストを受け入れる、ということになりますが、これはこのオンラインヘルプの範囲を超えてしまいます。 OAuth認証ウィザードを使うことで、OSMユーザ名とOSMパスワードによって有効なOAuthアクセストークンを取得したり、だれか別の人のOSMユーザ名とOSMパスワードによって取得してもらったOAuthアクセストークンをJOSMに入力して使ったりすることができます。 === 完全に自動化された認証処理 ===#FullyAutomaticAuthorisation アクセストークンを入手する一番簡単な方法は、JOSMにOSMサーバから完全に自動的に取得させるものです。 1. '''ステップ 1/3''' - 設定ダイアログを開く ツールバーの'''設定'''ボタンをクリックします。 ダイアログ内の[wikitr:/Help/Preferences/Connection 接続設定]タブを選択します。 2. '''ステップ 2/3''' - アクセストークンを取得する OSMユーザ名とOSMパスワードを入力して'''Authorise now'''をクリックします。 [[Image(wiki:Help/Dialog/OAuthAuthorisationWizard:fully-authomatic-1.png)]] 3. '''ステップ 3/3''' - アクセストークンを受け入れる JOSMが取得したアクセストークンを表示します。 [[Image(wiki:Help/Dialog/OAuthAuthorisationWizard:fully-authomatic-2.png)]] * アクセストークンをJOSMの設定ファイルに保存したくない場合は「設定に保存する」のチェックボックスを外します。 保存しなかった場合、アクセストークンはJOSM終了時に消去されます。 後でJOSMを起動したときにOAuthベースの認証を使うには、再度新しいアクセストークンを取得する必要があります。 * トークンをテストするには"アクセストークンをテストする"をクリックします。 * '''アクセストークンを受入れる'''をクリックするとトークンを受け入れます。 ==== 許可する権限の制限 ==== アクセストークンの要求と認可をJOSMで完全に自動的に処理させた場合、次の五つの権限を許可します: * OSMサーバへのデータのアップロード * OSMサーバへのGPSトレースのアップロード * 非公開のGPSトレースのOSMサーバからのダウンロード * OSMサーバに格納した設定情報の読み出し * OSMサーバへの設定情報の書き込み これらはデフォルトの設定です。 許可する権限を制限したい場合は: 1. '''認められた権利'''のタブをクリックします 1. 要求されたアクセストークンに対して許可したくない権限の選択を外します [[Image(wiki:Help/Dialog/OAuthAuthorisationWizard:fully-authomatic-privileges.png)]] ==== 高度なOAuthパラメタ ==== #FullyAutomaticAdvanced ==== Advanced OAuth parameters ==== #FullyAutomaticAdvanced [https://oauth.net/core/1.0/#anchor3 アクセストークン]の要求と認可をJOSMで完全に自動的に処理させた場合、デフォルトのOAuthパラメタが利用されます。 以下のような使い方をする上級ユーザはこれらのパラメタを変更したいと思うでしょう: * (コンシューマキーとコンシューマシークレットから成る)別のコンシューマトークンを使うとき。 あなた自身のコンシューマトークンを作らせてJOSMで使うことができます。 * 標準のOSMサーバとは異なるサーバを使いたい場合。 例えば、開発用OSMサーバやローカル環境に構築したOSMサーバアプリケーションで使うことができます。 高度なOAuthパラメタを編集する方法は次の通りです。 1. '''高度なOAuthパラメタ'''をクリックします 1. '''デフォルト設定を使う'''のチェックを外します 1. 五つのOAuthパラメタに独自の値を入力します [[Image(wiki:Help/Dialog/OAuthAuthorisationWizard:fully-automatic-advanced.png)]] === 半自動の認証処理 === アクセストークンを半自動で取得することもできます。 このプロセスを使う場合、JOSMのダイアログとブラウザに表示されるOSMウェブサイトの両方を使ってアクセストークンを生成し認可する必要があります。 完全に自動化されたプロセスと違って、JOSMのダイアログにOSMのユーザ名やパスワードを入力する必要はありません。 したがってこのプロセスは、なんらかの理由でOSMパスワードをOSMウェブサイトのセキュアなログインページ以外では使いたくないというユーザに適しています。 完全に自動化されたプロセスも半自動のプロセスが手動で行うのとまったく同じステップを踏んでおり、違いはユーザの介入があるかどうかだけです。 1. '''ステップ 1/3''' - リクエストトークンの取得 '''リクエストトークンを参照'''をクリックしてOAuthリクエストトークンを取得します。 [[Image(wiki:Help/Dialog/OAuthAuthorisationWizard:semi-automatic-step-1.png)]] 2. '''ステップ 2/3''' - 外部ブラウザでリクエストトークンを認可 JOSMによりOSMウェブサイトを表示する外部ブラウザが起動されます。 ログインして表示される手順に従ってください。 完了したらOAuth認可ウィザードに戻って'''アクセストークンを参照'''をクリックします。 [[Image(wiki:Help/Dialog/OAuthAuthorisationWizard:semi-automatic-step-2.png)]] 3. '''ステップ 3/3''' - アクセストークンの受け入れ JOSMは取得したアクセストークンを表示します。 '''アクセストークンを受け入れる'''をクリックして受け入れます。 [[Image(wiki:Help/Dialog/OAuthAuthorisationWizard:semi-automatic-step-3.png)]] ==== 高度なOAuthパラメタ ==== #AdvancedOAuthparameters アクセストークンの要求と認可をJOSMの半自動処理で行う場合、デフォルトのOAuthパラメタが利用されます。 以下のような使い方をする上級ユーザはこれらのパラメタを変更したいと思うでしょう: * (コンシューマキーとコンシューマシークレットから成る)別のコンシューマトークンを使うとき。 あなた自身のコンシューマトークンを作らせてJOSMで使うことができます。 * 標準のOSMサーバとは異なるサーバを使いたい場合。 例えば、開発用OSMサーバやローカル環境に構築したOSMサーバアプリケーションで使うことができます。 高度なOAuthパラメタを編集する方法は次の通りです。 1. '''高度なOAuthパラメタ'''をクリックします 1. 五つのOAuthパラメタに独自の値を入力します [[Image(wiki:Help/Dialog/OAuthAuthorisationWizard:semi-automatic-advanced.png)]] === 手動の認証処理 === 手動の認証処理では任意のアクセストークンを入力できます。 次のような場面でこの方法を利用できます: * 認証情報のセキュアな格納場所などに保存しているアクセストークンを入力させたいとき * 他のマッパーから制限付きのアカウントアクセスを許可してもらうときなど、他人から受け取ったアクセストークンを入力したいとき 1. '''ステップ 1/1''' - アクセストークンの入力と受け入れ アクセストークンを入力して'''アクセストークンを受け入れる'''をクリックします。 [[Image(wiki:Help/Dialog/OAuthAuthorisationWizard:manual.png)]] ==== 高度なOAuthパラメタ ==== * [#FullyAutomaticAdvanced 完全に自動化された認証処理の高度なOAuthパラメタ]を参照してください。 == トラブルシューティング == * 大学や企業のネットワークを使っている場合、ファイアウォールによってOAuth認証要求が制限されていることがあります。[[BR]] 関連する接続についてネットワーク管理者に確認してください。 ---- [wikitr:/Help/Preferences/Connection 接続設定]へ戻る[[BR]] [wikitr:/Help ヘルプ]へ戻る