認証

このセクションでは、ALM Octane REST APIおよびODataを使用する場合の認証、サインイン、およびサインアウトについて説明します。

概要

次の方法を使用してサインインできます。

サインイン方法 用途 説明
ユーザー資格情報またはAPIアクセスキーを使用したJSON認証
  • REST API

sign_inリソースを使用して、ユーザー資格情報またはAPIアクセスキーを使用して認証します。詳細については、JAON認証を参照してください。

注: SSOおよびSaaSフェデレーション認証は、APIキーでのみサポートされます。詳細については、SSO認証のセットアップ (オンプレミス)を参照してください。

基本認証
  • REST API

  • OData

基本認証を使用するには、基本認証を有効にして、リクエストごとにユーザー資格情報またはAPIアクセスキーを含むヘッダーを送信します。

詳細については、基本認証を参照してください。

注: SSOおよびSaaSフェデレーション認証は、APIキーでのみサポートされます。詳細については、SSO認証のセットアップ (オンプレミス)を参照してください。

インタラクティブツール認証

インタラクティブな統合とフロー

API呼び出しを通じて、インタラクティブツールはALM Octaneから一意のIDを受け取ります。ツールのエンドユーザーは、ブラウザを使用してALM Octaneに対して手動認証を実行するように求められます。インタラクティブツールは、アクセストークンを取得するために、ALM Octaneを一意のIDとエンドユーザーのユーザー名でポーリングします。詳細については、ALM Octaneインタラクティブな統合を参照してください。

非対話型ツールの場合は、APIキーでJSON認証を使用します。

トップに戻る

JSON認証

JSON認証はsign_inリソースを使用します。

このリソースは、将来のリクエストに必要な認証Cookieを設定します。

Content-Typeヘッダー application/json
URI http[s]://<server>:<port>/authentication/sign_in
サポートされているHTTPメソッド POST
ユーザー資格情報のペイロード

JSONオブジェクトに資格情報を提供します。

このタイプのペイロードを使用して、サイト管理者としてAPIを操作します。

{ 
     "user": "<username>", 
     "password": "<password>" 
}
APIキーのペイロード
{ 
     "client_id": "<client_id>", 
     "client_secret": "<client_secret>" 
}
Cookie

認証が成功すると、LWSSO_COOKIE_KEYCookieが応答に設定されます。

ステータスコード

  • 200 - 認証の成功
  • 401 (無許可) - 認証に失敗しました

トップに戻る

基本認証

ALM OctaneREST APIおよびODataには基本認証を使用できます。

基本認証を使用してALM Octaneクライアントにアクセスすることはできません。

基本認証の結果は2分間キャッシュされます。後続のリクエストは、キャッシュに対して検証されます。キャッシュ期間は、BASIC_AUTHENTICATION_CACHE_TTL_SECONDSサイトパラメーターによって構成できます。

前提条件
  • 基本認証を有効にします。

    サイト管理者またはスペース管理者が、各スペースのSUPPORTS_BASIC_AUTHENTICATION設定パラメーターの値を設定するよう要求します。詳細については、設定パラメーターを参照してください。

ヘッダー
  • 基本認証の仕様に従って、各要求が認証されていることを確認するために、各要求とともにAuthorizationヘッダーを送信します。

    Authorizationヘッダーには、ユーザー名とパスワードのエンコードに基づいて、コロン (:) で区切られたトークンがオクテットシーケンスとして含まれています。このoctet sequenceは、Base64としてエンコードされます。

    例: Authorization: Basic <token>

    基本認証仕様の詳細については、https://en.wikipedia.org/wiki/Basic_access_authenticationなどの他の外部リソースを参照してください。

  • ALM Octaneで基本認証を使用する場合は、パフォーマンスを向上させるためにLWSSO_COOKIE_KEYCookieを送信します。ALM Octaneは、認証が成功するたびに、応答としてLWSSO_COOKIE_KEYCookieを送信します。詳細については、LWSSO_COOKIE_KEY cookieを参照してください。

Cookie

認証が成功すると、LWSSO_COOKIE_KEYCookieが応答に設定されます。クッキーは返送されますが、使用する必要はありません。

ステータスコード

  • 200 - 認証の成功
  • 401 (無許可) - 認証に失敗しました

トップに戻る

Octane認証のためのインタラクティブな統合

インタラクティブなトークン共有認証には、tokensAPIを使用します。これは、Intelijなどの対話型ツールからオンプレミスSSOログインまたはSaaSのフェデレーションとALM Octaneにアクセスするために特に有用です。

トークン共有認証は、2つのREST呼び出しとユーザー対話型認証を使用します。

  • ステップ1: 統合ツールはREST呼び出しを送信して、識別子と認証URLを生成します。
  • ステップ2: エンドユーザーはブラウザに認証URLを入力し、通常の認証を実行します。その後、ブラウザを閉じることができます。
  • ステップ3: 統合ツールは、2番目のREST呼び出しを使用してOctaneをポーリングし、認証プロセスで受信したトークンを抽出します (ステップ2)。統合ツールは、トークンを使用してOctaneにアクセスします。

ステップ1 - 識別子を生成する

統合ツールは、次の内容のリクエストを送信します。

Content-Typeヘッダー application/json
URIを要求 http[s]://<server>:<port>/authentication/tokens
HTTPメソッド POST
応答本文

ブラウザログイン用の一意の識別子とURLを受け取ります。

{ 
     "id": "<identifier>", 
     "authentication_url": "<url>" 
}

例:

{ 
     "id": "98f5d0cf-7289-4ec2-…", 
     "authentication_url": "http://acme.net:8080/authentication/store_tool_token?id=98f…" 
}
ステータスコード 識別子を正常に作成するための200。

注: 応答のauthentication_urlが誤ったホストを指している場合は、SERVER_BASE_URLサイトパラメーターを検証します。

ステップ2 - ブラウザ認証を実行します

このエンドユーザーは、上記で取得したURLを使用してブラウザ経由でログインします。

URL http [s] ://<server>:<port>/authentication/store_tool_ token?TENANTID=1&id =<id>

 

ステップ1で応答として受け取った上記のURLを使用して、ブラウザを開きます。ブラウザは、クレデンシャルを入力するように要求します。認証後、ブラウザはブラウザを閉じることができることを示すメッセージを発行します。

ステップ3 - トークンを抽出する

統合ツールは、2番目のRESTリクエストでOctaneをポーリングします。このリクエストは、次のコンテンツを使用して、ブラウザ認証で受信したトークンを抽出します。

idの場合、ステップ1で応答として受信した識別子の値を使用します。

ユーザー名の場合、ステップ2でブラウザで認証するときに使用したのと同じユーザー名を入力します。SSO認証の場合は、IDPからSAMLアサーションで送信されたものと同じユーザー名を指定します。安全な環境を維持するには、同じユーザー名を使用することが不可欠です。

注: デフォルトでは、ユーザー名では大文字と小文字が区別されます。大文字と小文字を区別しないように変更するには、サイトパラメーターCASE_INSENSITIVE_USER_NAME_IN_INTERACTIVE_AUTHENTICATIONをtrueに設定します。

Content-Typeヘッダー application/json
URIを要求 http[s]://<server>:<port>/authentication/tokens/<id>?userName=<user name>

 

HTTPメソッド GET
応答本文

正常に応答すると、200と次の本文が返されます。これは、ステップ1で応答として受信したのと同じid値です。このaccesss_tokenを使用して、 Octaneにアクセスします。

{ 
  "access_token": "<access token>", 
  "id": "<id>", 
  "cookie_name": "<cookie name>" 
} 
  • access_token –認証に必要なトークン。<access token>値を<cookiename>という名前のCookieに配置し、それを今後のすべてのリクエストに追加します。
  • id-インタラクティブツール識別子。
  • cookie_name -Octaneへのリクエストのトークン値を格納するCookieの名前。
例: 
{ 
  "access_token": "THIgSzVsGHJ9p3YeG33...Le8U0VeF3T6DxPbv-9DAzU_RjPg..", 
  "id": "123456", 
  "cookie_name": "LWSSO_COOKIE_KEY" 
} 
ステータスコード

アクセストークンを正常に作成するための200。

次のいずれかの理由でトークンの作成に失敗した場合は404。

  • ステップ2からのユーザーインタラクティブ認証はまだ完了していません。
  • 送信されたidが間違っているか、無効になっています (表の下のコメントを参照)。
  • 送信されたユーザー名が、ステップ2でユーザーが使用したものと一致しませんでした。

注: アクセストークンは、ツールによって取得されるまでOctaneに保存されます。3分 (180秒) 以内に取得されない場合、IDはタイムアウトになり、関連するトークンとともに削除されます。タイムアウトを変更するには、サイトパラメーターの値TOOLS_ACCESS_TOKEN_STORAGE_TTL_SECONDSを変更して、再起動を実行します。

トップに戻る

認証Cookie

認証Cookieは、認証トークンを保存するために使用されます。 

access_tokenCookieはSSO認証に使用され、LWSSO_COOKIE_KEYは他のすべての認証タイプに使用されます。

LWSSO_COOKIE_KEY cookie

認証が成功すると、LWSSO_COOKIE_KEYCookieが応答に設定されます。

後続の各リクエストでこのCookieを送信します。

Cookieのタイムアウトは3時間です。

LWSSO_COOKIE_KEYCookieを更新する

3時間のタイムアウト期間が経過した後、Cookieを再送信することでタイムアウトを延長できます。Set-Cookie」ヘッダーを使用して、前の応答でサーバーから受信したすべてのCookieを送り返します。詳細については、Cookieの再送信を参照してください。

サーバーから受信した再送されたCookieを常に使用している場合は、元の認証後24時間タイムアウトを延長し続けることができます。

24時間後、Cookieの有効期限が切れ、リクエストに応じて401エラーが発行されます。この場合、続行するには再認証してください。

access_tokencookie

SSO認証が成功すると、access_token認証Cookieが応答に設定されます。

access_tokenCookieを更新する

access_tokenCookieは更新できません。デフォルトのタイムアウトは3時間です。この期間が過ぎると、新しい認証が必要になります。タイムアウトは、サイト設定の変更の説明に従って、sso.oauth.authentication.timeout.secondsパラメーターを変更することで変更できます。

トップに戻る

サインアウト

sign_outリソースは、ユーザーをセッションからログオフし、認証Cookieをキャンセル (期限切れ) します。

このリソースは、すべての認証方法に使用できます。

URI

/authentication/sign_out

サポートされているHTTPメソッド POST

POST http[s]://<server>:<port>/authentication/sign_out
HTTP/1.1 200 OK

Set-Cookie: LWSSO_COOKIE_KEY="";Version=1;Path=/;Expires=Thu, 01-Jan-1970 00:00:00 GMT;Max-Age=0 Expires: Thu, 01 Jan 1970 00:00:00 GMT

Cache-Control: no-cache, max-age=0 Pragma: no-cache
Content-Length: 0
Server: Jetty(9.1.3.v20140225)

トップに戻る

参照情報: