秘密鍵を指定。
サーバー証明書を指定。
IDGにて自己署名証明書を生成可能
「管理」 > 「その他」 > 「暗号 ツール」
(参考) サーバー証明書および秘密鍵の作成
© 2016 IBM Corporation 58
アクセス許可要求 (Basic認証)
Webブラウザーにて以下のURLにアクセス
https://<IDG_IPAddress>:5070/oauth/authz?response_type=code&client_i d=OAuthClient01&redirect_uri=https://localhost&scope=/getAccountInfo
%20/getCustomerInfo&state=MyTest
実行結果例 (1/6)
リソース・オーナーは許可サーバー上のユーザー名/パスワードを入力して認証
認証後、リソース・オーナーは許可するスコープを選択してSubmit
許可コード取得
アクセス許可要求 (Form認証)
Webブラウザーにて以下のURLにアクセス
https://<IDG_IPAddress>:5070/form/oauth/authz?response_type=code&cli ent_id=OAuthClient01&redirect_uri=https://localhost&scope=/getAccoun tInfo%20/getCustomerInfo&state=MyTest
実行結果例 (2/6)
リソース・オーナーは許可サーバー上のユーザー名/パスワードを入力して認証
認証後、リソース・オーナーは許可するスコープを選択してSubmit
許可コード取得
© 2016 IBM Corporation 60
実行結果例 (3/6)
アクセス・トークン発行
cURLにて以下のコマンドを実行
curl -k https://<IDG_IPAddress>:5070/oauth/token -d
"grant_type=authorization_code&code=<Authorization_Code>&redirect_ur i=https://localhost" --user OAuthClient01:passw0rd
応答電文:
{ "token_type":"bearer",
"access_token":"AAENT0F1dGhDbGllbnQwMRGCj7LJVASb6cEx82JLcoSVw3qEgYXI 1W3340IktnooV02aDzKZ6mLFkV3x88HpPz17_GKlqSvN3SFcLJd3YR94GKM8tpp8omrs -yTyQQGLgwUOZy_sz3n44XgPv4VAOQ", "expires_in":3600,
"scope":"/getAccountInfo /getCustomerInfo",
"refresh_token":"AAEHtq9c8-YLOKSkQaxgyIW0VQ1uQ-UF7FfEtLG8hf8sEckgbLTakJd8a1CgRP8O5dh1fcG05MIMv3qp53W_y6TpygthAtv87O
mdjLM_i5U23Kf828-qWaJXa_R_B8UONFQ" }
実行結果例 (4/6)
リソース・アクセス
cURLにて以下のコマンドを実行
/getAccountInfo
curl -k https://<IDG_IPAddress>:5070/getAccountInfo -H
"Authorization:Bearer <Access_Token>"
応答電文:
{ "name": "myAccount",
"balance":1.00 }
/getCustomerInfo
curl -k https://<IDG_IPAddress>:5070/getCustomerInfo -H
"Authorization:Bearer <Access_Token>"
応答電文:
[ { "id":0, "name":"USER01",
"access_token":"AAENT0F1dGhDbGllbnQwMRGCj7LJVASb6cEx82JLcoSVw3qEgYXI1W3340IktnooV
02aDzKZ6mLFkV3x88HpPz17_GKlqSvN3SFcLJd3YR94GKM8tpp8omrs-yTyQQGLgwUOZy_sz3n44XgPv4VAOQ" } ]
© 2016 IBM Corporation 62
実行結果例 (5/6)
アクセス・トークンの検査
cURLにて以下のコマンドを実行
curl -k https://<IDG_IPAddress>:5070/oauth/token -d
"grant_type=urn:ibm:datapower:validate&access_token=<Access_Token>"
--user OAuthClient01:passw0rd
応答電文:
OK (トークンが有効な場合)
{ "valid":true, "token_type":"bearer", "client_id":"OAuthClient01",
"not_after":"133528131", "not_after_text":"2016-03-25T11:08:51Z",
"not_before":"133524531", "not_before_text":"2016-03-25T10:08:51Z",
"resource_owner":"USER01", "scope":"/getAccountInfo /getCustomerInfo" }
NG (トークンが期限切れの場合)
{ "valid":false }
実行結果例 (6/6)
リフレッシュ・トークンによるアクセス・トークンの再発行
cURLにて以下のコマンドを実行
curl -k https://<IDG_IPAddress>:5070/oauth/token -d
"grant_type=refresh_token&refresh_token=<Refresh_Token>&scope=/getAc countInfo%20/getCustomerInfo" --user OAuthClient01:passw0rd
応答電文:
{ "token_type":"bearer",
"access_token":"AAENT0F1dGhDbGllbnQwMX0mij_6CZvofVbL87RvVxhHPYOiNZiy
xpnm9eO-7Xz86MzeNw11_XBOYqTXezw5NobD_AIhV-OHeEN8pS1HhzEvZONpVSvXghHPzmXJVf9t-FAfy10UPasIawztAZH0xg",
"expires_in":3600, "scope":"/getAccountInfo /getCustomerInfo",
"refresh_token":"AAG6viMfP_kwEE0YObrBuWju0bFpV9fnOA-
1lQdBPjgBiESyKld0fSBO5iU2pAMr-jGcuGdW1BXd6Fe3jm5SeVWgsOToS4O1Pur6Ukq0BisnOtMqCR83lw92gp1LMNrBFvs"
}
© 2016 IBM Corporation 64
(参考) バックエンド・サーバーへの情報連携
HTTPヘッダーにリソース・オーナー、クライアントID、スコープを付 加することが可能
OAuthクライアント・プロファイルの「拡張」タブ > 「HTTPヘッダーの作
成対象」にて設定
Tips:
許可コード
アクセストークン発行後は、同じ許可コードは有効期限内であっても再利用不可
ただし、冗長構成の場合は注意が必要です。詳細は当資料「IDGの冗長構成について」を参照 してください。
リフレッシュトークン
有効なアクセストークンがある場合でもリフレッシュトークンで新規アクセストーク ンを発行可能。その際、古いアクセス・トークンは失効されない。
そのため、有効なアクセストークンが複数できてしまうことが考えられます。
アクセストークン再発行に使用したリフレッシュトークンは、有効期限内であっても 再利用不可。
ただし、冗長構成の場合は注意が必要です。詳細は当資料「IDGの冗長構成について」を参照 してください。
スコープ
IDGではスコープを厳密にチェックするため、正確に定義する必要がある。
例えば、許可スコープが「/getAccountInfo」の場合、「/getAccountInfo/xxxx」はスコー プ検査により拒否される
許可スコープを「/getAccountInfo*」とすることで、「/getAccountInfo/xxxx」へのアクセ
スも許可される
© 2016 IBM Corporation 66