api
apiconnect

API ConnectでLDAPを使ってみた

More than 1 year has passed since last update.

前提バージョン

IBM API Connect 5.0.6.3
Ubuntu 14.04LTS
※当記事ではVMware Workstation PlayerでAPI Connect, UbuntuがPC上に導入済みとします。

1 API Connect の認証について

API Connect では、APIの保護機能の基本機能として
①APIキー
②OAuth2.0
③基本認証
を提供します(他にもさまざまな保護機能があります)。

上記②や③ではほとんどの場合、API保護のためにユーザー認証処理を行うことになりますが、API Connect は基本的に外部の認証サーバーを用いて認証する必要があります。

この記事では、いくつかある認証方式のうちLDAP サーバーを用いた認証について紹介します。
(今回はAPI保護の設定は「③基本認証」で行います。「②OAuth2.0」のパターンでもLDAPで認証することは可能です)

1-1 ③基本認証の例

001.jpg

2 LDAP サーバーの準備

2-1 OS導入


OS : Ubuntu 14.04LTS
ホスト名 : host01
ドメイン名 : example.com

2-2 ldap導入

2-2-1 パッケージのインストール

$ sudo apt-get -y install slapd ldap-utils

2-2-2 初期設定

$ sudo dpkg-reconfigure slapd

ドメイン名 : example.com

image.png

2-2-3 base.ldif設定

$ sudo vi base.ldif

dn: ou=people,dc=example,dc=com
objectClass: organizationalUnit
ou: people
dn: ou=groups,dc=example,dc=com
objectClass: organizationalUnit
ou: groups

$ sudo ldapadd -x -D cn=admin,dc=example,dc=com -W -f base.ldif

2-3 LDAP管理ユーティリティのインストール

2-3-1 パッケージのインストール

$ sudo apt-get install phpldapadmin -y

2-3-2 config.php修正

$ sudo vi /etc/phpldapadmin/config.php

//  $servers->setValue('server','port',389);
↓
$servers->setValue('server','port',389);

$ sudo vi /usr/share/phpldapadmin/lib/TemplateRender.php

  $default = $this->getServer()->getValue('appearance','password_hash');
↓
  $default = $this->getServer()->getValue('appearance','password_hash_custom');

2-3-3 設定の反映

$ systemctl restart apache2

2-4 グループ、ユーザーの追加

ldapadminツールで、以下のグループ、ユーザーを追加します。
http://LDAPサーバーのホスト名/phpldapadmin/index.php

2-4-1 グループの追加

cn=group01,ou=groups,dc=example,dc=com
GID=500
Group=group01
objectClass=posixGroup

image.png

2-4-2 ユーザーの追加

cn=Tarou Test,ou=poeple,dc=example,dc=com
Common Name=Tarou Test
First Name=Tarou
GID Number=500
Home Directory=/home/users/ttest
Last Name=Test
Login shell=/bin/sh
objectClass=inetOrgPerson
            posixAccount
UID Number=1001
User ID=ttest

image.png

3 API Connect設定

3-1 APIConnect上の認証レジストリーの追加

API Manager ユーザーインターフェースにログイン
https://APIManagerサーバーホスト名/apim
image.png

管理を選択
image.png

ユーザーレジストリーを選択
image.png

追加をクリック
image.png

LDAPレジストリーを選択
image.png

以下を入力し、「バインドのテストと基本DNの取得」をクリック
表示名:ldapregistory01
名前:ldapregistory01
ホスト名:LDAPサーバーのIP
ポート:389
認証済みバインド
管理DN:cn=admin,dc=example,dc=com
パスワード:管理DNのパスワード

image.png

更に以下を入力し、「構成のテスト」をクリック
基本DN : dc=example,dc=com
接頭部 : (uid=
接尾部 : )

image.png

最後に接続テストするユーザー名、パスワードを入力し、「構成のテスト」をクリック
image.png

「成功 接続に成功しました」と表示されることを確認します。
image.png

3-2 基本認証で保護するAPI定義の作成

API Manager ユーザーインターフェースにログイン
https://APIManagerサーバーホスト名/apim
image.png

ドラフトを選択
image.png

APIを選択
image.png

追加→新規APIを選択
image.png

タイトル:testapi
名前:testapi
基本パス:/testapi
バージョン:1.0.0

と入力し、「APIの作成」をクリック
image.png

セキュリティー定義のセクションに移動
※デフォルトで、clientIdHeader(APIキー)による保護が設定されます。これはAPI保護の基本機能のうち、「①APIキー」に相当する設定になります。
image.png

セキュリティー定義の追加ボタンをクリック
image.png

「基本」を選択
image.png

名前 : basic01
認証に使用 : ユーザー・レジストリー
ユーザー・レジストリー : ldapregistory01

を入力
image.png

「セキュリティー」セクションで「basic01(基本)」にチェックを追加します。これにより、このAPIに対する保護として、「③基本認証」が追加されます。この設定では、「①APIキー」と「③基本認証」の両方を使って保護が行われます。
image.png

後は、「パス」セクション、「ポリシー・アセンブリー」セクションなど、API定義に必要な項目を設定し、製品に追加→デプロイします。
APIの実行時は以下のHTTPヘッダを指定してください。
・APIキー
 X-IBM-Client-Id: 開発者ポータルで発行するクライアントID
・基本認証
 Authorization: Basic 「ユーザーID:パスワード」をbase64エンコードした文字列

以上で、LDAPサーバーを使ったAPIの基本認証の設定例の紹介を終わります。

免責事項

この記事の内容は不正確である可能性があります。この記事の内容やその利用等によって生じた、いかなる損害に対しても責任は負いません。