カスタムOAuth アプリの作成
ユーザー名やパスワードへのアクセスを保有していない場合や、それらを使いたくない場合にはOAuth 認証が使用できます。Backlog はOAuth 認証標準を使用しています。これには認証ユーザーがブラウザ経由でBacklog と通信する必要があります。このセクションで説明するとおり、本製品 はさまざまな方法でOAuth 交換をサポートします。
接続アプリケーションの作成
OAuth クライアントクレデンシャル、クライアントキー、およびクライアントシークレットを取得するには:
- backlog.com にログインし、backlog.com/developer/applications にアクセスします。
- アプリケーション管理ページから、新規登録をクリックします。
- ユーザーがアプリケーションにログイン認証をする際に表示されるアプリケーション名、説明、サイトURL を入力します。
- そして、コールバックURL ボックスに値を入力します。デスクトップアプリケーションを作成する場合は、コールバックURL を http://localhost:33333 か任意の別のポート番号に設定してください。Web アプリケーションを作成する場合は、コールバックURL をユーザーがアプリケーションを認可した後に表示したいWeb アプリケーションのページに設定してください。
- [作成]ボタンをクリックすると、OAuth クライアントクレデンシャル、クライアントID、およびクライアントシークレットが表示されます。
デスクトップアプリケーションからBacklog へ認証
次の接続プロパティを設定して、接続してください。
- OAuthClientId:アプリケーション設定のクライアントキーに設定。
- OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。
- CallbackURL:アプリケーション設定のコールバックURL に設定。
- InitiateOAuth:GETANDREFRESH に設定。InitiateOAuth を使って、OAuth 交換や、手動でのOAuthAccessToken 接続プロパティの設定の繰り返しを避けられます。
接続すると、本製品 はデフォルトブラウザでOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。本製品 が以下のOAuth プロセスを完了します。
- コールバックURL を取得して、アクセストークンを設定します。
- OAuthSettingsLocation にOAuth 値を保存し、接続間で永続化されるようにします。
- 返されたリフレッシュトークンと有効なアクセストークンとを交換します。
Web アプリケーションからBacklog へ認証
次の接続プロパティを設定し、アクセストークンを取得します。
- OAuthClientId:アプリケーション設定のクライアントキーに設定。
- OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。
- CallbackURL:アプリケーション設定のコールバックURL に設定。
Web アプリケーションから接続する場合、または本製品 にブラウザウィンドウを開く権限がない場合は、temporary verification value とアクセストークンを交換する必要があります。
- GetOAuthAuthorizationURL を呼び出します。ストアドプロシージャがOAuth エンドポイントのURL を返します。
- ログインして、アプリケーションを認可します。コールバックURL にリダイレクトされます。GrantType パラメータをImplicit に設定した場合、クエリ string パラメータにおいて、コールバックURL はOAuthAccessToken を保持します。GrantType パラメータを"code に設定した場合、クエリ string パラメータ "code" において、コールバックURL はverifier code を保持します。verifier code を取り出し、GetOAuthAccessToken を呼び出します。
次の接続プロパティを設定し、データに接続します。
- OAuthAccessToken
アクセストークンの期限が切れたときに自動でリフレッシュするには、InitiateOAuth をREFRESH に設定しOAuthRefreshToken を設定してください。あるいは、アクセストークンの期限が切れたときにRefreshOAuthAccessToken ストアドプロシージャを呼び出します。リフレッシュトークンが入力されると、プロシージャは有効なOAuth アクセストークンを返します。